root 和非 root 用户使用不同的 shell

root 和非 root 用户使用不同的 shell

当我以 root 身份 ssh 时,我的 shell 是bash,但当它是非 root 用户时,它是sh。我怎样才能让它们都使用bash?这实际上违背了这个问题的逻辑:为什么 root 的默认 shell 的配置与其他普通用户帐户的默认 shell 不同?

答案1

请参见man usermod

一个例子是sudo usermod -s /bin/bash username

答案2

据我所知,您的默认 shell 是在/etc/passwd(在用户创建时决定的)中定义的。/etc/passwd在目标机器上进行更改以反映您的选择。

答案3

该命令chsh(1)用于更改用户的 shell。通过在 中列出允许的 shell,可以将系统设置为仅允许某些 shell /etc/shells。这不需要root权限,但用户只能更改他们的shell。

您将需要输入密码(不是 root)来更改 shell,除非您是 root,在这种情况下不需要密码,并且您可以设置任何程序用作用户的 shell(忽略/etc/shells)。

答案4

您可以在使用选项创建用户时执行此操作useradd -s /bin/bash,或者稍后使用usermod -s /bin/bash 正如可以建议的,或者通过修改/etc/passwd文件正如 asoundmove 所建议的。但如果您正在寻找其他解决方案,那么我建议查找该文件/etc/default/useradd并根据您的需要进行修改。如果您更改该行SHELL=/bin/bash,它将适用于每个新用户。还要看一下/etc/login.defs文件。

相关内容