如何更改域帐户的默认外壳程序


13

我使用samba4域帐户登录笔记本电脑。我想尝试zsh一下,但是由于我的用户不在,/etc/passwd所以我找不到该chsh用户。谁能建议我如何改变我的login_shell

我看不到我的任何东西ldap.confnssswitch.conf或任何/etc/pam.d有帮助的东西...

在域控制器上,我以为我可以使用samba工具,但是在帮助中我什么也没看到,没有向我指出正确的方向...

Answers:


24

我在Freenode的#suse频道中问了这个问题,而Miuku提出了与Arul相同的建议,但是他提到了两件事,如果我使用的是Windows域,则可以设置loginShell属性。

可悲的是,我在samba域中,所以没有帮助。但是他的最终建议是完美的,得到以下输出:

getent passwd USERNAME

这将在/ etc / passwd中为您的用户提供等效的有效条目,然后将其粘贴到/ etc / passwd中,并在末尾更新Shell以获取要使用的Shell的有效路径。这样,它不会为所有用户更改它,并且可以在进行更改之前确保外壳程序位于要配置它的计算机上。


如果您不想复制和粘贴,可以使用:getent passwd `id -un` | sudo tee -a /etc/passwd。不确定它是否在所有shell中都有效,但至少bash和tcsh可以。
汤姆·萨利巴'18

在连接到Windows AD域的RHEL 7盒上执行此操作,导致我被锁定在服务器之外,直到从/ etc / passwd文件中删除该
行为止

感谢您提供@Taegost的信息,我没有尝试过RHEL
Rumbles '18

5

我有完全一样的问题。由于不是我域中的所有机器都安装了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

这可能不太优雅,但至少可以完成工作。


我的工作人员最近在做类似的事情,他的方法无法加载.zshrc文件时遇到问题。我不知道您的方法是否可以在这方面起作用,您是否尝试过?另外,您的SHELL变量与zsh bin的路径不同,对吗?我将其配置更改为在passwd文件中进行设置的方法
Rumbles '18

有趣-我的.zshrc已正确读取。关于你的第二点,谢谢你的帮助,这是我的错误。看到这里的答案:unix.stackexchange.com/questions/330233/...
利玛窦吉亚尼

好吧,这绝对是一种实现方式,我仍然喜欢在/ etc / passwd文件中将其设置为与我接受的答案一样,因为您不调用bash然后使用bash加载zsh(加上我猜如果您按ctrl-D您的设置是否落在bash shell上?)-它确实需要用户确保您已安装zsh,并需要管理员进行更改
Rumbles

而不是使用/usr/bin/zsh,而不是使用exec /usr/bin/zshbashshell进程代替shell进程会更好zsh吗?
Tripp Kinetics

我认为您可能是正确的@TrippKinetics。
Matteo Giani

2

如果您有权编辑samba域控制器配置,则可以设置以下属性,该属性允许您在smb.conf中设置外壳程序。

template shell    = /bin/zsh

不知道如果登录未安装zsh的计算机会发生什么情况(默认情况下并非所有发行版都安装了zsh),但是我猜测它会调用发行版默认shell。

如果您只是想尝试,只需键入zsh即可得到一个子shell,我相信您已经知道了。


谢谢,但这不会影响到所有用户,而不仅仅是我吗?
2015年

是的,它是一个影响所有用户的全局参数。在这种情况下,所有已zsh安装的用户。我不确定您是否可以将其限制为特定用户,但是我会检查idmap uid可能允许您执行此操作的参数。
Arul Selvan 2015年

谢谢,但是那不是我想要的。我不想更改每个人的外壳,我只想更改我的外壳。我尝试在本地smb.conf中更改此设置,然后重新启动后无效
Rumbles 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.