解决linux用户切换失败 su:execute /usr/bin 没有权限

问题描述:

回宿舍前,在root用户中安装fish,并修改其shell为fish。回宿舍之后,在图形界面用root用户进行登陆,莫名其妙登陆失败。没有任何提示信息,直接回到登陆界面。用非root用户登陆后,执行su root命令切换到root用户,报错:su execute /usr/bin/ 权限不够。

经过了一番查询,网友们的操作是将/usr/bin目录权限修改为777,还有一些我看不懂的操作。这么做当然是无效的!


解决办法:

通过查看/etc/passwd,发现/usr/bin是root用户的shell。想到这里,很自然地产生了一个想法,将root用户的shell换成/usr/bin/bash。然后继续执行su root,成功!

成功的原因:

/usr/bin不是shell。root无法把它当做一个登陆shell。因此只需要将它换成一个当前计算机已经安装好的shell就行了。

 导致这个错误的原因:

安装fish时,错误地将root的shell修改为/usr/bin。而它本身就不是一个shell,因此无法登陆、无法切换到该目录。

猜你喜欢

转载自www.cnblogs.com/2sheep2simple/p/10739654.html