Linux从root切换某个用户时可能出现:-bash-4.1$

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是默认环境变量

posted @ 2022-04-09 21:20  花之旭  阅读(287)  评论(0编辑  收藏  举报