![root 和非 root 用户使用不同的 shell](https://linux22.com/image/1389/root%20%E5%92%8C%E9%9D%9E%20root%20%E7%94%A8%E6%88%B7%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E7%9A%84%20shell.png)
当我以 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
文件。