环境
Ubuntu
情景
在Ubuntu系统下useradd
一个新的用户,切换到该用户时,发现终端命令行下tab
键补全不了
$ useradd tab # 新增tab用户
$ passwd tab # 设置密码
$ su - tab # 切换到tab用户,发现按键盘的tab键补全不了
解决
谷歌发现是用useradd
命令创建用户时没有指定shell的路径
$ useradd tab -s /bin/bash
$ useradd --help
用法:useradd [选项] 登录
useradd -D
useradd -D [选项]
选项:
-b,--base-dir BASE_DIR 新账户的主目录的基目录 -c,--comment COMMENT 新账户的 GECOS 字段 -d,--home-dir HOME_DIR 新账户的主目录 -D,--defaults 显示或更改默认的 useradd 配置 -e,--expiredate EXPIRE_DATE 新账户的过期日期 -f,--inactive INACTIVE 新账户的密码不活动期 -g,--gid GROUP 新账户主组的名称或 ID -G,--groups GROUPS 新账户的附加组列表 -h,--help 显示此帮助信息并推出 -k,--skel SKEL_DIR 使用此目录作为骨架目录 -K,--key KEY=VALUE 不使用 /etc/login.defs 中的默认值 -l,--no-log-init 不要将此用户添加到最近登录和登录失败数据库 -m,--create-home 创建用户的主目录 -M,--no-create-home 不创建用户的主目录 -N,--no-user-group 不创建同名的组 -o,--non-unique 允许使用重复的 UID 创建用户 -p,--password PASSWORD 加密后的新账户密码 -r,--system 创建一个系统账户 -R,--root CHROOT_DIR chroot 到的目录 -s,--shell SHELL 新账户的登录 shell -u,--uid UID 新账户的用户 ID -U,--user-group 创建与用户同名的组 -Z,--selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
现在我已经创建了tab用户,我们可以通过修改/etc/passwd
文件来解决tab
键不能补全问题
$ sudo vim /etc/passwd
# 找到tab用户那行
# 修改前
tab:x:1000:1000::/home/tab
# 修改后
tab:x:1000:1000::/home/tab:/bin/bash
最后重启电脑就可以了
$ sudo reboot