将现有用户/所有新用户的默认shell更改为bash
刚为同事在ubuntu 20.04服务器上建了一个用户,用 useradd 命令。然后同事登陆后发现命令行很奇怪,tab无限,也不能通过方向键列出历史命令。
我依稀有点记忆是说新建的用户有可能默认的命令行不是bash,查了之后发现是 /bin/sh,也就是链接到 /bin/dash去的,这是一个简化版的命令行,很多功能没有,所以我们要把用户默认命令行还是设置为 /bin/bash。
1,添加用户
adduser命令的
默认文件是/etc/adduser.conf,
默认情况下,DSHELL
变量定义的默认命令行是/bin/bash
。
2,用户添加
有人说useradd是一个非常低级的实用程序,几乎从未直接使用过,可是我就是用这个命令创建的用户啊。。。。。
用这个命令创建用户前,可以编辑/etc/default/useradd
文件(不过请不要忘记进行备份)来设置新创建用户的默认命令行。
将SHELL
变量设置为/bin/bash
而不是/bin/sh
。
现在,每次您useradd
用来添加新用户时bash
,它们的默认命令行都会是 bash 了。
3,已经存在的用户
如果要更改现有用户的默认命令行,则必须编辑/etc/passwd
文件(修改前请先备份该文件!!)。
这是各列的说明
- 登录名
- 可选的加密密码
- 数字用户ID
- 数字组ID
- 用户名或评论字段
- 用户主目录
- (可选的)用户默认命令行
像这样用冒号(:)分隔。
root:x:0:0:root:/root:/bin/bash
有关该文件的更多信息,请参考手册页man 5 passwd
。