Linux从root切换某个用户时可能出现:-bash-4.1$
如下所示:
[root@server ~]# su - postgres
-bash-4.1$ id postgres
uid=26(postgres) gid=26(postgres) 组=26(postgres)
-bash-4.1$
原因:被切换的这个用户/home目录下环境变量文件被删除了,通过对比可以发现缺少两个文件(.bash_profile和.bashrc)。
为什么需要这两个文件呢?
因为Linux系统在通过useradd创建新用户时,都会将所有的配置文件从/etc/skel/目录下复制到新用户的主目录下,默认在/home/下面新用户的主目录。
解决办法1:
1.切换到有故障的用户
2.复制/etc/skel 里面的模板到当前用户
3.重新登录
-bash-4.1$ cp /etc/skel/.bash* ~
-bash-4.1$ logout
[root@server ~]# su - postgres
[postgres@server ~]$ id postgres
uid=26(postgres) gid=26(postgres) 组=26(postgres)
[postgres@server ~]$
解决办法2:
root账户下,把/etc/skel/*拷贝到/home/postgres/目录下,postgres是出问题的用户名,即可。
注意:/etc/skell是默认环境变量