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