Я использую учетную запись домена 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, чтобы получить подоболочку, о которой, я уверен, вы уже знаете.