linux命令,系统安全相关命令--su

su


 

 

  su是最简单的身份切换命令,可以进行任何身份的切换,下面先看一下其基本参数。

 1 root@ubuntu:~# su -h
 2 Usage: su [options] [LOGIN]
 3 
 4 Options:
 5   -c, --command COMMAND         pass COMMAND to the invoked shell
 6   -h, --help                    display this help message and exit
 7   -, -l, --login                make the shell a login shell
 8   -m, -p,
 9   --preserve-environment        do not reset environment variables, and
10                                 keep the same shell
11   -s, --shell SHELL             use SHELL instead of the default in passwd

  su 在不加任何参数,默认为切换到root用户,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境;而su 加参数 - ,表示默认切换到root用户,并且改变到root用户的环境。下面通过一个例子来说明二者区别

范例1,分别使用su和su -切换root身份:

 1 gboy@ubuntu:~$ su
 2 Password: 
 3 root@ubuntu:/home/gboy# pwd        
 4 /home/gboy     <==工作目录仍是普通用户的工作目录
 5 root@ubuntu:/home/gboy# exit
 6 exit
 7 gboy@ubuntu:~$ su -
 8 Password: 
 9 root@ubuntu:~# pwd    
10 /root          <==工作目录切换到了root工作目录

*从范例中可知,su -命令更改到了root用户的环境,而su命令并没有,因此切换身份时一般使用su -(或者su -l)命令

  

  范例1可以让用户变成root身份操作系统,想要离开root身份需要运行exit命令。但有时候我们只需要执行一条需要root身份才能进行的命令,并且执行完成后恢复原本身份,这时可以利用-c这个参数。

范例2,普通用户gboy执行“head -n 3 /etc/shadow”命令

1 gboy@ubuntu:~$ head -n 3 /etc/shadow
2 head: cannot open `/etc/shadow' for reading: Permission denied   <==权限不够
3 gboy@ubuntu:~$ su - -c "head -n 3 /etc/shadow"
4 Password:     <== 输入root密码
5 root:$6$N7SZr7xj$HMPjOcfrwfe8RmMORqK.zhsZI/9gqElzCv8/uD9tD0rXYXyIv73F7r6F4uWFZggtEEPvUTAWyOfxab861LSxB/:16635:0:99999:7:::   <==成功运行
6 daemon:*:15259:0:99999:7:::
7 bin:*:15259:0:99999:7:::

 

posted @ 2015-07-19 16:52  webberji  阅读(377)  评论(0编辑  收藏  举报