当前位置: 首页>>技术问答>>正文


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

, , ,

问题描述

我希望从现在开始,每个新用户都默认将bash作为其 shell 。

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

 

最佳解决方法

添加用户

adduser的默认文件为/etc/adduser.conf。默认情况下,由DSHELL变量定义的默认 shell 为/bin/bash

用户添加

您很有可能不需要此功能,因为useradd是一个非常有用的low-level实用程序,几乎从未直接使用过。

如果使用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

 

次佳解决方法

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

usermod -s /bin/bash $USERNAME

如果您不是root用户,则需要对其进行sudo。另一种方法是对要修改的用户使用sudo,然后仅运行chsh,如下所示:

sudo -u $USERNAME chsh -s /bin/bash

最好避免手动编辑/etc/passwd,因为其中的错误可能会破坏各种情况。

参考资料

 

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7460.html,未经允许,请勿转载。