问题描述
我希望从现在开始,每个新用户都默认将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
文件(请确保对其进行备份)。
这是各列的说明
- 登录名
- 可选的加密密码
- 数字用户ID
- 数字组ID
- 用户名或评论字段
- 用户主目录
- 可选的用户命令解释器
像这样用冒号(:)分隔。
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
,因为其中的错误可能会破坏各种情况。
参考资料