在Linux系统中,当我们切换到一个用户比如

[root@hujiwara-linux ~]#su - user007
-bash-4.2$

出现如上所示的提示符,该如何处理。

一般出现如上提示,则表示用户的家目录,或家目录下配置用户文件丢失!

我们先尝试一下查看user007的家目录是否存在

-bash-4.2$ cd ~
-bash: cd: /sbin/nologin: 不是目录

提示/sbin/nologin,表示此用户user007家目录不存在。因此为他创建目录/home/user007,并设置目录的所属权限

[root@hujiwara-linux ~]#mkdir /home/user007/
[root@hujiwara-linux ~]#chown user007:user007 /home/user007/
[root@hujiwara-linux ~]#ls -l /home/
总用量 0
drwxr-xr-x. 2 user007 user007   6 7月   7 13:54 user007


创建了目录/home/user007/,我们还需要更改用户user007的属性,给目录/home/user007指定为用户user007的家目录。

[root@hujiwara-linux ~]#usermod -d /home/user007/ user007

最后,家目录有了。我们需要进行最终也是最核心的操作,给用户user007的家目录添加用户配置文件。用户配置文件位于/etc/skel/目录下以.bash开头的三个影藏文件。将其拷贝至家目录/home/user007下即可。

[root@hujiwara-linux ~]$ ls -a /etc/skel/
.  ..  .bash_logout  .bash_profile  .bashrc
[root@hujiwara-linux ~]#cp /etc/skel/.bash* /home/user007/
[root@hujiwara-linux ~]#su - user007
上一次登录:五 7月  7 13:58:49 CST 2017pts/2 上
[user007@hujiwara-linux ~]$ 
[user007@hujiwara-linux ~]$

如此,当再次登陆用户user007时,这可以正常显示。

如果家目录没变,只是家目录下的配置文件丢失,则只需要将/etc/skel/下的.bask开头的三个文件拷贝至家目录即可。