Linux系统中切换用户使用su和su -命令的本质

Linux系统中切换用户使用su和su -命令的本质

su:switch user,切换用户的简写。

(1)

su - username:

切换用户后,同时切换到新用户的工作环境中。

(2)

su username:

切换用户后,不改变原用户的工作目录及其他环境变量目录。

解释:

su命令可以用来交互地更改你的用户ID和组ID。

这个命令会开启一个子进程,赋予新用户与自己ID关联所有文件的存取权限。

出于安全的考虑,在实际转换身份时,会被要求输入这个用户帐号的密码。

如果没有参数,su命令将转换为root。即:su。

想要回到原先的用户身份,可以使用exit命令退出当前对话进程。

测试:

1、

id

当前用户为root用户,当前目录为/root 家目录

Linux系统中切换用户使用su和su -命令的本质

先测试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

Linux系统中切换用户使用su和su -命令的本质

下面我们来证明一下环境变量是否改变

刚刚su odysee的主提示符(PS1)如下标黑斜体:

[odysee@kingdom root]$ pwd

/root

我们使用su - odysee切换用户。

[root@kingdom ~]# su - odysee

odysee:~$pwd

/home/odysee

odysee:~$

Linux系统中切换用户使用su和su -命令的本质

是不是发现了两处不同

(1) su - odysee 是切到了odysee的家目录

(2) su - odysee主提示符是odysee:~$,su odysee[odysee@kingdom root]$。

原因:

su - odysee:

切换用户后,同时切换到新用户的工作环境中。

家目录是自己的,主提示符(PS1)是自己的,如下图:

Linux系统中切换用户使用su和su -命令的本质

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]$

Linux系统中切换用户使用su和su -命令的本质

(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]$

Linux系统中切换用户使用su和su -命令的本质

这样就很明显了

欢迎大家给予宝贵的意见或者建议。

欢迎大家补充或者共享一些其他的方法。

感谢支持。

阿里云服务器

编辑该文章

编辑该文章,必须放入您本人的支付宝或微信收款码,通过审核后可,如果浏览者觉得您写的不错了直接对您打赏

复制加密链接

This is a modal dialog!

邮箱

This is a modal dialog!