【命令名称】 su
【使用权限】 所有人
【命令语法】 su [-lm] [-c] [username]
【功能说明】 切换身份命令
【常用参数】
             -|-l 使用一个shell成为一个登录shell,如果后面跟用户名就是使用登录的名的环境变量,如果不跟就是root身份
             -m    不使用用户名的环境变量,而使用当前的环境变量
             -c    后面接命令,仅执行一次
【命令实例】
1. 变换成root身份,su -|su –l
[cxc@cxcserver ~]$ whoami                 #查看当前用户
cxc
[cxc@cxcserver ~]$ env |grep "cxc"         #查看当前环境变量
HOSTNAME=cxcserver.computer
USER=cxc
MAIL=/var/spool/mail/cxc
PATH=/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/cxc/bin:/usr/sbin
PWD=/home/cxc
HOME=/home/cxc
LOGNAME=cxc
[cxc@cxcserver ~]$ su -                    #更换身体,为root
Password:
[root@cxcserver ~]# env |grep root         #连接环境变量都变了
USER=root
MAIL=/var/spool/mail/root
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
HOME=/root
LOGNAME=root
[root@cxcserver ~]# whoami                 #查看现在用户
root
[root@cxcserver ~]#
2. 只执行一次命令就退
[cxc@cxcserver ~]$ ll /root          #以普通权限查看root下的文件,提示无权限
ls: cannot open directory /root: Permission denied
[cxc@cxcserver ~]$ su - -c "ls -l"   #加了-c能看,执行一次命令就退出
Password:
total 44
-rw-r--r-- 1 root root 4691 Dec 14 13:42 2
-rw-r--r-- 1 root root 4691 Dec 14 13:42 =20
-rw-------. 1 root root 1086 Nov 15 14:50 anaconda-ks.cfg
-rw-r--r-- 1 root root    42 Dec 14 10:36 cxc.txt
-rw-r--r--. 1 root root 13878 Nov 15 14:50 install.log
-rw-r--r--. 1 root root 3857 Nov 15 14:48 install.log.syslog
[cxc@cxcserver ~]$
 
 
【命令名称】 sudo
【使用权限】 所有人
【命令语法】 sudo [-lukv]
【功能说明】变换root身份,只输入录前用户的密码
【常用参数】
             l 用这个用户查看授权情况
             k 删除时间戳,当sudo用户时
             u 后面指定用户执行特定的命令
             v 验证用户的时间戳,当用户执行-v参数后,输入密码,用户在适时间不用输入密码,可以跟踪最新的时间戳
             b 让后续的命令放到背景中让系统执行
【命令实例】
1. 查看当前用户授权情况
[cxc@cxcserver ~]$ sudo -l
[sudo] password for cxc:
Matching Defaults entries for cxc on this host:
………省略…………
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
 
User cxc may run the following commands on this host:
    (ALL) ALL                             #当前授权
[cxc@cxcserver ~]$
2. 背景里执行命令
[cxc@cxcserver ~]$ sudo -b shutdown -r now
[cxc@cxcserver ~]$
Broadcast message from cxc@cxcserver.computer
        (/dev/pts/1) at 21:17 ...
 
The system is going down for reboot NOW!
3. 切换到root帐号,一直以root帐号执行命令
[cxc@cxcserver ~]$ sudo su -
[sudo] password for cxc:                  #输入cxc自己的命令
[root@cxcserver ~]# env |grep root
USER=root
MAIL=/var/spool/mail/root
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
HOME=/root
LOGNAME=root
[root@cxcserver ~]#