Вопрос или проблема
Когда я захожу по SSH на мой TrueNAS с моим пользователем (userx
в моем примере), переменная $HOME
не совпадает с той, которую я настроил для этого пользователя:
> echo $HOME
/mnt/data0
Но в моем /etc/passwd
папка указана другая:
userx:x:3000:3000:User X:/mnt/data0/userx:/usr/bin/zsh
Также в панели конфигурации TrueNAS папка тоже указана как /mnt/data0/userx.
Я попытался использовать эту команду:
usermod -d /mnt/data0/userx userx
Но это не сработало. Возможно, какая-то переменная перезаписывается в SSH?
Ответ или решение
Для решения проблемы с изменением домашнего каталога на TrueNAS, необходимо рассмотреть несколько аспектов. Проблема может быть связана либо с конфигурацией SSH-сервера, либо с самим управлением настройками пользователя в TrueNAS.
Теория (Theory)
Переменная окружения $HOME
определяет домашний каталог пользователя и обычно устанавливается на основе информации, заданной в файле /etc/passwd
. Когда вы подключаетесь через SSH, SSH-демон (sshd) должен использовать эту запись для инициализации окружения сеанса.
Однако, возможны ситуации, когда переменная $HOME
не соответствует ожидаемому значению из-за дополнительных настроек в системе:
- Конфигурации SSH. В файле конфигурации сервера SSH (
/etc/ssh/sshd_config
) могут быть определены настройки, которые изменяют параметры окружения для сеансов SSH. - Скрипты инициализации. Переменные окружения могут быть изменены скриптами инициализации, такими как
.bashrc
,.zshrc
и другими, которые запускаются при входе в систему. В случае с оболочкойzsh
, особое внимание стоит уделить файлу.zshrc
.
Пример (Example)
Ваше описание проблемы указывает, что домашний каталог в /etc/passwd
соответствует правильному значению /mnt/data0/userx
. Однако, при подключении через SSH, значение переменной $HOME
отличается. Это может говорить о том, что указанные выше причины вмешиваются в процесс установки переменных окружения.
Применение (Application)
Для решения проблемы выполните следующие шаги:
-
Проверьте конфигурацию SSH. Откройте файл
/etc/ssh/sshd_config
и найдите настройки, относящиеся к изменению переменных окружения, такие какPermitUserEnvironment
. Если данная опция включена (PermitUserEnvironment yes
), это может позволять другим пользовательским скриптам переписывать переменную$HOME
. -
Проанализируйте скрипты инициализации. Просмотрите файлы
.profile
,.bashrc
, и особенно.zshrc
для вашего пользователя (userx
) на предмет строк, которые могли бы изменять переменную$HOME
. Убедитесь, что там нет строк типаexport HOME=/mnt/data0
. -
Перезапустите SSH и попробуйте снова. После внесения изменений перезапустите SSH-демон командой
systemctl restart sshd
(или используйте аналогичную команду для системы управления демонами, используемой в вашей ОС).
Если проблема сохраняется, рассмотрите возможность дополнительных тестов, таких как временное создание нового пользователя с аналогичной конфигурацией и проверка, появится ли у нового пользователя аналогичная проблема. Это поможет определить, проблема системного уровня или специфична для вашего текущего пользователя.