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