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

cof*_*der 46 command-line bash adduser

我希望从现在开始的每个新用户都默认使用 bash 作为他们的 shell。

我知道要将您自己的 shell 更改为 bash,您将使用命令“chsh -s /bin/bash”,但是默认情况下如何自动将所有未来用户的 shell 设置为 bash?

Oct*_*ean 70

添加用户

adduser默认文件/etc/adduser.confDSHELL变量定义的默认 shell是/bin/bash默认的。

用户地址

您很可能不需要它,因为 useradd 是一个非常低级的实用程序,而且几乎从未直接使用过。

如果您使用 useradd,请编辑/etc/default/useradd骨架文件(但不要忘记进行备份)。

SHELL变量设置为/bin/bash而不是/bin/sh

现在每次使用useradd添加新用户时bash都会自动成为他们的默认shell。

已有用户

如果您想更改现有用户的外壳,您必须编辑该/etc/passwd文件(请确保备份它)。

这是列的说明

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

像这样用冒号 (:) 分隔的顺序。

root:x:0:0:root:/root:/bin/bash
Run Code Online (Sandbox Code Playgroud)

有关该文件的更多信息,请参阅手册页man 5 passwd

  • 我认为更改另一个用户的 shell 的更安全的方法是类似于 `sudo -u $USER chsh -s $SHELL`。 (7认同)

Jac*_*nor 32

正如 Octavian 所指出的,更改默认值的方式取决于您创建用户的方式。我刚才尝试通过我的 Gnome 设置创建一个新用户,它似乎遵循/etc/default/useradd,所以这可能是你最好的选择。对于现有用户,更改其他人登录 shell 的最安全方法是使用usermod

usermod -s /bin/bash $USERNAME
Run Code Online (Sandbox Code Playgroud)

如果您不是 root,则需要sudo。另一种方法是sudo进入您要修改的用户并运行chsh,如下所示:

sudo -u $USERNAME chsh -s /bin/bash
Run Code Online (Sandbox Code Playgroud)

最好避免/etc/passwd手动编辑,因为那里的错误可能会破坏各种事物。