我希望从现在开始每个新用户都默认使用 bash 作为他们的 shell。
我知道要将自己的 shell 更改为 bash,可以使用命令“chsh -s /bin/bash”,但如何自动将所有未来用户的 shell 默认设置为 bash?
答案1
添加用户
默认adduser
文件为。变量/etc/adduser.conf
定义的默认shell为 default。DSHELL
/bin/bash
用户添加
您很可能不需要这个,因为 useradd 是一个非常低级的实用程序,并且几乎从未直接使用过。
如果您使用 useradd,请编辑/etc/default/useradd
骨架文件(但不要忘记进行备份)。
将变量设置SHELL
为/bin/bash
而不是/bin/sh
。
现在每次你使用useradd
添加新用户时bash
都会自动添加他们的默认shell。
已有用户
如果您想更改已经存在用户的 shell,您必须编辑该/etc/passwd
文件(请确保备份该文件)。
以下是列的描述
- 登录名
- 可选加密密码
- 数字用户ID
- 数字组ID
- 用户名或评论字段
- 用户主目录
- 可选的用户命令解释器
按照该顺序用冒号(:) 分隔,就像这样。
root:x:0:0:root:/root:/bin/bash
有关该文件的更多信息,请参阅手册页man 5 passwd
。
答案2
正如 Octavian 指出的那样,更改默认值的方式取决于您创建用户的方式。我刚刚尝试通过 Gnome 设置创建一个新用户,它似乎遵循/etc/default/useradd
,所以这可能是您最好的选择。对于现有用户,更改其他人的登录 shell 的最安全方法是使用用户模式:
usermod -s /bin/bash $USERNAME
如果你不是 root,你需要须藤另一种方法是须藤进入你想要修改的用户并运行奇什, 像这样:
sudo -u $USERNAME chsh -s /bin/bash
最好避免/etc/passwd
手动编辑,因为其中的错误可能会破坏各种各样的东西。
答案3
如果您确实希望服务器上的所有用户都拥有 bash(这是实际提出的问题),您可以运行以下命令:
sudo dpkg-reconfigure dash
然后选择 NOT dash。正如这个答案所解释的那样,
这不仅将 bash 设置为默认 shell,而且还正确地重新指向 sh 和手册页。
希望这可以帮助。