在ubuntu服务器上,用useradd命令创建了一个普通用户后,shell 功能不全,使用不方便,本文记录解决方案。
问题复现
- 新建用户后,登录终端发现 shell 只有一个
$ 符号
- 无法使用
tab 补全,上下键索引命令等功能
问题原因
- 通过查看
/etc/passwd 文件可以看到新用户 test 的shell 程序为 /bin/sh ,正常用户为 /bin/bash
1 2 3 4 5 6 7 8 9
| 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
|
也能发现自己用的 shell 是 /bin/sh
解决方案
- 通过
usermod 命令修改用户 test 的 shell 程序:
1
| sudo usermod -s /bin/bash lee
|
参考资料
文章链接:
https://www.zywvvd.com/notes/system/linux/user-bash/linux-new-user-bash/