在ubuntu服务器上,用useradd命令创建了一个普通用户后,shell 功能不全,使用不方便,本文记录解决方案。
问题复现
- 新建用户后,登录终端发现 shell 只有一个
$
符号 - 无法使用
tab
补全,上下键索引命令等功能
问题原因
- 通过查看
/etc/passwd
文件可以看到新用户test
的shell 程序为/bin/sh
,正常用户为/bin/bash
ps:x:1000:1000:ps,,,:/home/ps:/bin/bash
sshd:x:122:65534::/run/sshd:/usr/sbin/nologin
zhai:x:1001:1001::/home/zhai:/bin/bash
vvd:x:1002:1002::/home/vvd:/bin/bash
statd:x:123:65534::/var/lib/nfs:/usr/sbin/nologin
junran:x:1003:1003::/home/junran:/bin/bash
nvidia-persistenced:x:124:128:NVIDIA Persistence Daemon,,,:/nonexistent:/usr/sbin/nologin
davfs2:x:125:130::/var/cache/davfs2:/usr/sbin/nologin
test:x:1004:1004::/home/xinchun:/bin/sh
- 该用户自己查看环境变量
$ echo $SHELL
/bin/sh
也能发现自己用的 shell 是 /bin/sh
- 解决问题仅需将其改为
/bin/bash
即可
解决方案
- 通过
usermod
命令修改用户test
的 shell 程序:
sudo usermod -s /bin/bash lee
- 重新登录即可解决问题
参考资料
- https://blog.csdn.net/liu_xinglfz/article/details/123064954