读书人

root用户不能一般切换到其他用户

发布时间: 2012-06-28 15:20:04 作者: rapoo

root用户不能正常切换到其他用户
又一个莫名其妙的问题,不知道为什么,linux下,root用户不能正常切换到其他用户。报错信息:
[root@linuxoracle home]# su - weblogic
su: /bin/bash: Permission denied
感觉很奇怪,为什么那? 我又没有做什么操作,只是做了一个将一个文件夹以及其下的所有文件赋权给某个用户而已。语句:chown -R weblogic:weblogic /home
结果再切换到weblogic用下,就报上面的错误啦,难道上面的语句导致赋权又问么?也许是有问题目前只是没有看出来,怎么回事。
关于这个问题,在网上一通查,发现大家前篇一律的转载了一片文章。不知道那个事原作者:文章URL:http://www.ixpub.net/thread-1038218-1-1.html
按照这个作者的思路,我做了下,也没法什么问题,都正常。其中有一句,根目录下的文件夹都加上755,死马当活马医吧,我就照做啦,命令如下:chmod 755 /*。
结果,结果 呵呵 好用啦,不知道什么原因引起的,也不知道那块出现了问题,这样执行到底改变了那里的权限,现在好用了,暂且记录在此吧,希望以后能知道为什么!

另外将上面提到的网址内容粘贴过来,以便于学习那位作者的思路是非常好的,值的学习。
转载地址:URL:http://www.ixpub.net/thread-1038218-1-1.html
内容如下:客户一个oracle突然当机了,由于业务启动,客户下意识的重启了服务器,系统是起来了,准备切换到oracle用户下启动数据库,可以怎么都无法su切换,真是火上浇油呀,描述如下:
在root用户下,su到一个普通用户oracle,得到如下错误:

[root@localhost ~]# su - oracle
su: warning: cannot change directory to /home/oracle: Permission denied
su: /bin/bash: Permission denied

而oracle用户也无法通过直接登录,出现同样错误。

这是一个非常奇怪的问题,到底是什么导致的呢?思路如下:
1,程序执行权限问题
2,程序依赖的共享库权限问题
3,目录权限问题
4,根空间问题。

检查/bin/bash,权限正确,检查/home/oracle权限正确,检查/lib/ld-***.so,权限也正确。

继续调试,检查/etc/passwd,将oracle的home设置为/tmp,把/tmp设置为777,这个权限应该是最宽松的。

而su出现同样的错误。

也就是oracle用户无法访问777权限的/tmp。

问题到底出现在哪里呢?

最后
通过star命令,看到了问题根本,
[root@localhost ~]#stat /
输出如下:因为你ls是看不到的。
File: “/”
Size: 1024 Blocks: 2 IO Block: 1024 目录
Device: 803h/2051d Inode: 2 Links: 22
Access: (0666/drw-rw-rw-) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2007-12-01 22:28:48.000000000 +0800
Modify: 2007-12-01 22:28:34.000000000 +0800
Change: 2007-12-01 23:17:35.000000000 +0800

问题出来了,这里的权限是错误的,X权限的丢失造成的。

[root@localhost ~]#chmod 755 /


修改后,问题消失。

产生上述问题的方法:
第一种,chmod 666 /,可以导致。

或者,
第二种,chmod 700 /lib/ld-xxxx.so,也可以导致su失败。

有兴趣可以自己试一下。

/ 权限的丢失对于各种运行在自己用户身份上的daemon也存在同样的影响。

读书人网 >操作系统

热点推荐