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

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

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

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

13
задан 17 February 2017 в 18:30
3 ответа

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

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

getent passwd USERNAME

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

23
ответ дан 2 December 2019 в 21:20

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

template shell    = /bin/zsh

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

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

2
ответ дан 2 December 2019 в 21:20

У меня была точно такая же проблема. Поскольку не на всех машинах в моем домене установлен 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

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

3
ответ дан 2 December 2019 в 21:20

Теги

Похожие вопросы