解决 Linux 新用户 shell 功能不全的问题

2022-11-07 15:29:16 浏览数 (1)

在ubuntu服务器上,用useradd命令创建了一个普通用户后,shell 功能不全,使用不方便,本文记录解决方案。

问题复现

  • 新建用户后,登录终端发现 shell 只有一个 $ 符号
  • 无法使用 tab 补全,上下键索引命令等功能

问题原因

  • 通过查看 /etc/passwd 文件可以看到新用户 test 的shell 程序为 /bin/sh ,正常用户为 /bin/bash
代码语言:javascript复制
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

  • 该用户自己查看环境变量
代码语言:javascript复制
$ echo $SHELL
/bin/sh

也能发现自己用的 shell 是 /bin/sh

  • 解决问题仅需将其改为 /bin/bash 即可

解决方案

  • 通过 usermod 命令修改用户 test 的 shell 程序:
代码语言:javascript复制
sudo usermod -s /bin/bash lee
  • 重新登录即可解决问题

参考资料

  • https://blog.csdn.net/liu_xinglfz/article/details/123064954

0 人点赞