我使用 samba4 域帐户登录我的笔记本电脑。我想尝试一下zsh
,但由于我的用户不位于,/etc/passwd
我发现chsh
无法找到我的用户。有人能建议我如何更改我的login_shell
吗?
我看不到我的任何东西ldap.conf
,nssswitch.conf
或者任何/etc/pam.d
有帮助的东西......
查看域控制器时,我认为也许我可以使用 samba-tool,但是在帮助中我没有看到任何可以指引我正确方向的内容......
答案1
我在 Freenode 上的 #suse 频道询问了这个问题,Miuku 的建议与 Arul 相同,但是,他提到了两件事,如果我使用 Windows 域,我可以设置 loginShell 属性。
遗憾的是,我使用的是 Samba 域,所以这没有帮助。但他的最终建议非常完美,得到了以下输出:
getent passwd USERNAME
这将在 /etc/passwd 中为您的用户提供有效条目,将其粘贴到 /etc/passwd 中,并在末尾更新 shell,以获取您要使用的 shell 的有效路径。这样它就不会为所有用户更改它,并且您可以在进行更改之前确保 shell 位于您正在配置它的机器上。
答案2
我遇到了完全相同的问题。由于我的域中并非所有机器都安装了 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
如果您有权编辑 Samba 域控制器配置,则可以设置以下属性,以便设置 shellsmb配置文件
template shell = /bin/zsh
不确定如果你登录到没有安装 zsh 的机器会发生什么(并非所有发行版都默认安装了 zsh),但我猜测它将调用发行版默认 shell。
如果您只是想尝试一下,只需输入 zsh 即可获得子 shell,我相信您已经知道这一点。