Linux系统中切换用户使用su和su -命令的本质
su:switch user,切换用户的简写。
(1)
su - username:
切换用户后,同时切换到新用户的工作环境中。
(2)
su username:
切换用户后,不改变原用户的工作目录及其他环境变量目录。
解释:
su命令可以用来交互地更改你的用户ID和组ID。
这个命令会开启一个子进程,赋予新用户与自己ID关联所有文件的存取权限。
出于安全的考虑,在实际转换身份时,会被要求输入这个用户帐号的密码。
如果没有参数,su命令将转换为root。即:su。
想要回到原先的用户身份,可以使用exit命令退出当前对话进程。
测试:
1、
id
当前用户为root用户,当前目录为/root 家目录
先测试su命令,切换到一个普通用户odysee
su odysee
注意!!!:以下标黑斜体的两行,下面会用到
[root@kingdom ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@kingdom ~]# pwd
/root
[root@kingdom ~]# su odysee
[odysee@kingdom root]$ pwd
/root
[odysee@kingdom root]$ id
uid=508(odysee) gid=508(odysee) groups=508(odysee),10(wheel)
如下图所示:当前目录还是/root
下面我们来证明一下环境变量是否改变
刚刚su odysee的主提示符(PS1)如下标黑斜体:
[odysee@kingdom root]$ pwd
/root
我们使用su - odysee切换用户。
[root@kingdom ~]# su - odysee
odysee:~$pwd
/home/odysee
odysee:~$
是不是发现了两处不同
(1) su - odysee 是切到了odysee的家目录
(2) su - odysee主提示符是odysee:~$,而su odysee是[odysee@kingdom root]$。
原因:
su - odysee:
切换用户后,同时切换到新用户的工作环境中。
家目录是自己的,主提示符(PS1)是自己的,如下图:
su odysee:
切换用户后,不改变原用户的工作目录及其他环境变量目录。
家目录是root的,主提示符(PS1)也是root的
再直接一点,我们打印一下$PS1
(1)
[root@kingdom ~]# echo $PS1
[u@h W]$
[root@kingdom ~]# su odysee
[odysee@kingdom root]$ echo $PS1
[u@h W]$
(2)
[root@kingdom ~]# echo $PS1
[u@h W]$
[root@kingdom ~]# su - odysee
odysee:~$echo $PS1
[e[31;1m]u[e[0m][e[32;1m][e[0m]:[e[35;1m]w[e[0m]$
这样就很明显了
欢迎大家给予宝贵的意见或者建议。
欢迎大家补充或者共享一些其他的方法。
感谢支持。