Ubuntu普通用户环境异常问题
概述
Ubuntu22.04 的一个普通账号shijin,登录后没有办法使用Tab自动补全。当时第一反应是没有安装bash-completion,后来发现其他普通用户可以自动补全,仔细排查后发现是/home/shijin目录下缺少环境文件。仔细回想,发现是创建用户时未指定-m选项,没有自动创建/home/shijin,后手动补充创建的。总结上述问题,记录如下:
现象
- /home/shijin是后期手动创建的,目录下没有.bashrc 和 .profile
(base) root@Ubuntu22-172-027-003-001:/home/shijin# ll -a
total 8
drwxr-xr-x 2 d3works d3works 4096 Jun 6 02:13 ./
drwxr-xr-x 7 root root 4096 Jul 27 06:36 ../
解决
cp /etc/skel/.bashrc /home/shijin/ cp /etc/skel/.profile /home/shijin/
chown -R shijin:shijin /home/shijin
chmod 644 /home/shijin/.bashrc
chmod 644 /home/shijin/.profile
测试
- 重新登录后,输入命令测试Tab补全功能正常
su - shijin
ls /home/ + Tab键
原因
- Ubuntu useradd 命令默认不会创建/home/账号目录,需要单独指定-m参数才会创建。
useradd -m shijin
(base) root@Ubuntu22-172-027-003-001:/home# ll /home/shijin/
total 20
drwxr-x--- 2 shijin shijin 4096 Jul 27 06:36 ./
drwxr-xr-x 7 root root 4096 Jul 27 06:36 ../
-rw-r--r-- 1 shijin shijin 220 Jan 6 2022 .bash_logout
-rw-r--r-- 1 shijin shijin 3771 Jan 6 2022 .bashrc
-rw-r--r-- 1 shijin shijin 807 Jan 6 2022 .profile