出现的原因:
一般,/etc/skel目录下的最重要的文件是以下标注部分,出现问题中的情况,主要是这两个隐藏文件丢失导致。
[[email protected] ~]# ls -la /etc/skel/
total 20
drwxr-xr-x. 2 root root 4096 Jul 13 17:27 .
drwxr-xr-x. 78 root root 4096 Aug 10 14:44..
-rw-r--r--. 1 root root 18 Mar 23 08:15.bash_logout
-rw-r--r--. 1 root root 176 Mar 23 08:15 .bash_profile
-rw-r--r--. 1 root root 124 Mar 23 08:15 .bashrc
解决办法:
在出现问题的用户下,输入cp /etc/skel/.bash* ~,此用户再重新登录即可。
- 线下模拟:
问题生成操作:
[[email protected]~]# tail -5 /etc/passwd
oldboy:x:500:500::/home/oldboy:/bin/bash
oldgirl:x:501:500::/home/oldgirl:/bin/bash
test:x:502:502::/home/test:/bin/bash
alex888:x:888:0::/home/alex888:/sbin/nologin
mysql:x:889:889::/home/mysql:/sbin/nologin
[[email protected]~]# su - test
[test@congzhongzhi~]$\rm -f .bash* #删除和用户有关的环境变量的配置文件
[[email protected] ~]$ logout #重新登录该用户
[[email protected] ~]# su - test
-bash-4.1$ #出现了问题
解决措施:
在出现问题处输入
-bash-4.1$ cp /etc/skel/.bash* ~
-bash-4.1$ logout #退出,重新登录
[[email protected] ~]# su - test #再次切换用户
[[email protected] ~]$ #OK,问题已解决
有的用户可能会出现这样的问题:
[[email protected] ~]$ \rm -f .bash*
rm: cannot remove `.bash_logout‘: Permission denied #权限受限
rm: cannot remove `.bash_profile‘: Permission denied
rm: cannot remove `.bashrc‘: Permission denied
我们的做法是:
先查看该用户的家目录路径
[[email protected] ~]$ pwd
/home/oldboy
切到root用户下,执行下面的命令
[[email protected]~]# chown oldboy /home/oldboy
再切到Oldboy用户下,就可以进行操作了。
解决方案总结:
1、切换到有故障的用户
2、故障原因:用户环境变量有关的文件~.bashrc ~.bahs_profile已丢失
3、/etc/skel里面存放着文件的模板
4、/etc/skel/.bash* 复制到当前用户(cp ./etc/skel/.bash* ~)
5、重新登录该用户