如何将所有用户的默认 shell 更改为 bash?

如何将所有用户的默认 shell 更改为 bash?

我希望从现在开始每个新用户都默认使用 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文件(请确保备份该文件)。

以下是列的描述

  1. 登录名
  2. 可选加密密码
  3. 数字用户ID
  4. 数字组ID
  5. 用户名或评论字段
  6. 用户主目录
  7. 可选的用户命令解释器

按照该顺序用冒号(:) 分隔,就像这样。

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。正如这个答案所解释的那样,

如何使 /bin/sh 指向 /bin/bash?

这不仅将 bash 设置为默认 shell,而且还正确地重新指向 sh 和手册页。

希望这可以帮助。

相关内容