如何更改域帐户上的默认 shell

如何更改域帐户上的默认 shell

我使用 samba4 域帐户登录我的笔记本电脑。我想尝试一下zsh,但由于我的用户不位于,/etc/passwd我发现chsh无法找到我的用户。有人能建议我如何更改我的login_shell吗?

我看不到我的任何东西ldap.confnssswitch.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,我相信您已经知道这一点。

答案4

这是一个主观的解决方案,可能对某些人有用。

由于我用摩巴Xterm,我的方法是配置我的会话设置并告诉它使用bash。右键单击您的特定会话>编辑会话,然后bash在执行命令输入框中键入。

由于我的帐户也是域帐户,因此我没有进入/etc/passwd,也不想修改任何可能破坏我的 shell 的环境设置。此方法简单且无损。然后,您可以创建文件~/.bashrc并按您想要的方式配置 shell。

MobaXterm 中的 bash 配置

相关内容