Почему я не могу изменить домашний каталог на TrueNAS?

Вопрос или проблема

Когда я захожу по 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 не соответствует ожидаемому значению из-за дополнительных настроек в системе:

  1. Конфигурации SSH. В файле конфигурации сервера SSH (/etc/ssh/sshd_config) могут быть определены настройки, которые изменяют параметры окружения для сеансов SSH.
  2. Скрипты инициализации. Переменные окружения могут быть изменены скриптами инициализации, такими как .bashrc, .zshrc и другими, которые запускаются при входе в систему. В случае с оболочкой zsh, особое внимание стоит уделить файлу .zshrc.

Пример (Example)

Ваше описание проблемы указывает, что домашний каталог в /etc/passwd соответствует правильному значению /mnt/data0/userx. Однако, при подключении через SSH, значение переменной $HOME отличается. Это может говорить о том, что указанные выше причины вмешиваются в процесс установки переменных окружения.

Применение (Application)

Для решения проблемы выполните следующие шаги:

  1. Проверьте конфигурацию SSH. Откройте файл /etc/ssh/sshd_config и найдите настройки, относящиеся к изменению переменных окружения, такие как PermitUserEnvironment. Если данная опция включена (PermitUserEnvironment yes), это может позволять другим пользовательским скриптам переписывать переменную $HOME.

  2. Проанализируйте скрипты инициализации. Просмотрите файлы .profile, .bashrc, и особенно .zshrc для вашего пользователя (userx) на предмет строк, которые могли бы изменять переменную $HOME. Убедитесь, что там нет строк типа export HOME=/mnt/data0.

  3. Перезапустите SSH и попробуйте снова. После внесения изменений перезапустите SSH-демон командой systemctl restart sshd (или используйте аналогичную команду для системы управления демонами, используемой в вашей ОС).

Если проблема сохраняется, рассмотрите возможность дополнительных тестов, таких как временное создание нового пользователя с аналогичной конфигурацией и проверка, появится ли у нового пользователя аналогичная проблема. Это поможет определить, проблема системного уровня или специфична для вашего текущего пользователя.

Оцените материал
Добавить комментарий

Капча загружается...