su
su是最简单的身份切换命令,可以进行任何身份的切换,下面先看一下其基本参数。
1 [email protected]:~# 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 [email protected]:~$ su 2 Password: 3 [email protected]:/home/gboy# pwd 4 /home/gboy <==工作目录仍是普通用户的工作目录 5 [email protected]:/home/gboy# exit 6 exit 7 [email protected]:~$ su - 8 Password: 9 [email protected]:~# pwd 10 /root <==工作目录切换到了root工作目录
*从范例中可知,su -命令更改到了root用户的环境,而su命令并没有,因此切换身份时一般使用su -(或者su -l)命令
范例1可以让用户变成root身份操作系统,想要离开root身份需要运行exit命令。但有时候我们只需要执行一条需要root身份才能进行的命令,并且执行完成后恢复原本身份,这时可以利用-c这个参数。
范例2,普通用户gboy执行“head -n 3 /etc/shadow”命令
1 [email protected]:~$ head -n 3 /etc/shadow 2 head: cannot open `/etc/shadow‘ for reading: Permission denied <==权限不够 3 [email protected]:~$ 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:::
时间: 2024-10-25 21:57:07