通过ssh登陆到centos5.4,切换到root账户,发现很多命令提示command not found,今天才搞明白怎么回事,哎,看来需要从基础一步一步来学习了。知识点涉及到用户权限和用户切换方面。
joe为普通用户,root为超级用户。
 
现象如下:
[joe@TRIXBOX1 ~]$ su
口令:
[root@TRIXBOX1 joe]# ifconfig
bash: ifconfig: command not found
 
su命令格式
su [-|-p] [-c command] [username]
- : 在切换当前用户时切换用户工作环境
-p : 在切换当前用户时不切换用户工作环境,即保持当前用户工作环境,此为缺省值
-c command : 以指定的用户身份执行命令 com m and
username : 为要切换的用户,省略时表示 root
 
su和su -的区别,这就是原因所在。
# 切换为超级用户,不切换用户身份
[root@TRIXBOX1 joe]# su
口令:
[root@TRIXBOX1 joe]# env|egrep 'USER|LOGNAME|PATH|MAIL'
USER=joe
MAIL=/var/spool/mail/joe
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/joe/bin
LOGNAME=joe
 
# 切换为超级用户 root,同时切换用户身份
[root@TRIXBOX1 joe]# su -
口令:
[root@TRIXBOX1 ~]# env | egrep 'USER|LOGNAME|PATH|MAIL'
USER=root
MAIL=/var/spool/mail/root
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
LOGNAME=root
[root@TRIXBOX1 ~]#
 
su - 命令后就切换到root环境了
[joe@TRIXBOX1 ~]$ su -
口令:
[root@TRIXBOX1 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:15:60:9D:F1:A8 
          inet addr:192.168.6.55  Bcast:255.255.255.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:69028 errors:0 dropped:0 overruns:0 frame:0
          TX packets:39738 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:102040430 (97.3 MiB)  TX bytes:3030863 (2.8 MiB)
          Interrupt:169 Memory:e0500000-e0510000
lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
[root@TRIXBOX1 ~]#
 
用户权限方面的知识还需学习,呵呵