¶ Linux命令详解 - SU命令
¶ root权限下:
-
进入
mike
用户,环境不变/root
1
2
3root@Mikelucis:~# su mike
mike@Mikelucis:/root$ pwd
/root -
进入
mike
用户,环境改变/home/mike
1
2
3root@Mikelucis:/home/mike# su - mike
mike@Mikelucis:~$ pwd
/home/mike
¶ 普通用户下:
-
mike
用户下,su
无效无法切换到root
用户下1
2
3
4mike@Mikelucis:~$ su
Password:
su: Authentication failure //权限不足
mike@Mikelucis:~$1
2
3
4mike@Mikelucis:~$ su -
Password:
su: Authentication failure //权限不足
mike@Mikelucis:~$ -
mike
用户下,成功进入root
用户(用sudo
提升权限),环境不变/home/mike
1
2
3
4mike@Mikelucis:~$ sudo su
[sudo] password for mike:
root@Mikelucis:/home/mike# pwd
/home/mike -
mike
用户下,成功进入root
用户(用sudo
提升权限),环境改变/root
1
2
3
4mike@Mikelucis:~$ sudo su -
[sudo] password for mike:
root@Mikelucis:~# pwd
/root
¶ 总结:
su
命令内若加了 -
参数则会加载 root
的环境,与直接用 root
登陆相同。
因为这样便于执行 /sbin
文件夹或者 /usr/sbin
文件夹里的程序。
而普通用户一般 path
系统变量里是没有这两个路径的。
如果不加 -
的话就只是权限切换。
这里的 -
本身是一个参数,而不跟其它的程序一样把 -
作为参数开始的指示符。
归根结底,这个参数就是告诉 su
加载要切换的用户答的环境。
su -
如果后面不带用户名的话就是切换到 root
,如果带用户名就是切换到对应的用户。