利用su - 切换用户时,发现有一个用户切时出现如下情况
[root@localhost ~]# su - aaa
su: warning: cannot change directory to /home/aaa: Permission denied
-bash: /home/aaa/.bash_profile: Permission denied
-bash-4.2$
观察报错信息发现是对家目录/home/aaa没有权限,于是查看/home目录下的文件信息
发现用户aaa的家目录文件的所属者和所属组有异常,一般情况下用户家目录这两者都是用户自己,如上图中的用户alex,userA和userB
对aaa/目录的所属者进行进行修改,修改之后再进行用户切换无报错
问题虽然解决了,但是我记得系统里并无2133这个账户,而且我也没有建立过这个用户。于是我便把终端操作的历史记录导出,查找这个不存在用户“2133”是否真的曾经存在
通过查找,发现是之前在创建用户aaa时指定了其的uid为2133,但是随后在588行删除了这个用户
但其实userdel aaa这条命令只会删除用户,但不会删除它的家目录,只有用userdel -r aaa 才会连同用户和家目录一起删除。虽然在589行执行了userdel -r aaa命令,但aaa用户已经不存在了,所以这命令是无效的。
在590行又创建了aaa用户,由于同名家目录已经存在了,所以在创建aaa用户时并不会重新创建或者覆盖/home/aaa目录,因此该目录的所属者仍是“上一代“的aaa(id 2133)用户
Linux切换用户时报错/.bash_profile: Permission denied,命令行(终端提示符)出现-bash-4.2$