Назад | Перейти на главную страницу

Как изменить оболочку по умолчанию в учетной записи домена

Я использую учетную запись домена samba4 для входа на моем ноутбуке. Я хотел попробовать zsh вне, но поскольку мой пользователь не проживает в /etc/passwd я нашел это chsh не могу найти своего пользователя. Кто-нибудь может посоветовать, как я могу изменить свой login_shell?

Я ничего не видел в своем ldap.conf, nssswitch.conf или что-нибудь в /etc/pam.d это помогло ...

Глядя на контроллер домена, я подумал, что, может быть, я мог бы использовать samba-tool, но я не увидел ничего в справке, которая указала бы мне в правильном направлении ...

Я спросил об этом в канале #suse на Freenode, и Миуку предложил то же, что и Арул, однако он упомянул две вещи: если бы я использовал домен Windows, я мог бы установить атрибут loginShell.

К сожалению, я использую домен самбы, так что это не помогло. Но его последнее предложение было идеальным, получите результат:

getent passwd USERNAME

Это будет иметь действительный эквивалент записи для вашего пользователя в / etc / passwd, возьмите его, вставьте в / etc / passwd и обновите оболочку в конце для правильного пути оболочки, которую вы хотите использовать. Таким образом, он не меняет его для всех пользователей, и вы можете убедиться, что оболочка находится на машине, на которой вы настраиваете это, прежде чем вносить изменения.

У меня была точно такая же проблема. Поскольку не на всех машинах в моем домене установлен zsh, и поскольку я не хотел влиять на всех пользователей, я в конечном итоге поместил свой .bashrc:

if [ -x /usr/bin/zsh ]; then
  echo 'starting zsh'
  # export SHELL=/bin/zsh #edit: this is probably not what you want, see the comment.
  exec /usr/bin/zsh
fi

Это может показаться неэлегантным, но, по крайней мере, выполняет свою работу.

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

template shell    = /bin/zsh

Не уверен, что произойдет, если вы войдете в систему на машине, на которой не установлен zsh (не все дистрибутивы имеют установленный zsh по умолчанию), но я предполагаю, что он вызовет оболочку дистрибутива по умолчанию.

Если вы просто хотите попробовать, просто введите zsh, чтобы получить подоболочку, о которой, я уверен, вы уже знаете.