问题1、在系统上有很多命令不能用,例如敲入service xinetd restart 显示bash: service : command not found 是什么原因?
首先先确认在切换帐户的时候是用 “su root”还是用“su – root”,如果是用前者切换的话,虽然用户切换过去了,但是root帐户的环境变量并没有被完全切换过去,所以会导致如上的错误,所以在切换帐户的时候一定要用su – root去切换,这样才能把和这个用户相关的所有信息都切换过去。
问题2、su: /bin/bash: 权限不够
今天在接电话时遇到这样一个问题,登录root之后,使用su切换到一个普通用户weblogic的时候,报如下错误:su: /bin/bash: 权限不够(Permission denied)
解决方法:/下的目录除了下面几个目录以外的都为 755权限
lost+found = 700
root = 750
tmp =777
让用户列出/下所有有目录,跟我机器上的目录权限进行了比较,发现/bin的目录权限不太一样,所以将其权限改为755,问题解决。
修改方法:
cd /
chmod 755 bin
问题3、su: incorrect password (不正确的密码)
在登录系统的时候,用root用户从本地登录和SSH登录都没有问题,但是用telnet登录系统的时候,从普通用户切换到root用户的时候切换不过去,报如下错误:
su: incorrect password (不正确的密码)
解决方法:
首先您需要知道su这个文件原始的权限应该如下:
-rwsr-xr-x. 1 root root 34904 Jul 15 2011 /bin/su
但是你发现你的是:
-rwxr-xr-x. 1 weblogic dba 34904 Jul 15 2011 /bin/su
所以问题你应该能找到了吧,那就是权限发生了变化,所以得出如下结论:
1.修改这个文件的属主和属组:
chown root:root /bin/su
2.修改这个文件的权限:
chmod u+s /bin/su
就这么两步就OK了
问题4.在root用户下,su到一个普通用户(feng)报如下错误:
[root@ www.linuxidc.com ~]# su – feng
su: warning: cannot change directory to /home/feng: Permission denied
su: /bin/bash: Permission denied
解决方法:
可以通过stat 命令去查看 /(根)目录的详细信息,内容显示如下:
[root@ www.linuxidc.com ~]# stat /
File: `/’
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: fd00h/64768d Inode: 2 Links: 22
Access: (0666/drw-rw-rw-) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-05-30 15:23:03.065015631 +0800
Modify: 2012-05-25 09:16:05.417484050 +0800
Change: 2012-05-30 16:05:47.911820959 +0800
Birth: –
而正常情况下为:
[root@ www.linuxidc.com ~]# stat /
File: `/’
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: fd00h/64768d Inode: 2 Links: 22
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-05-30 15:23:03.065015631 +0800
Modify: 2012-05-25 09:16:05.417484050 +0800
Change: 2012-05-30 16:06:47.018091330 +0800
Birth: –
现在不知道大家有没有看出来这两个文件有什么不同,其实这里的权限是有问题的,前者应该是没有X权限的,其实我们只需要给 /(根)目录赋予一个X的权限就可以了
[root@ www.linuxidc.com ~]# chmod 755 /
以上是我工作中预到的一些关于su的问题。