Linux切换用户(su)

Linux切换用户(su)教程

Linux 中的 su 命令用于切换用户,通过该命令可以实现任何身份的切换,包括从普通用户切换为 root 用户、从 root 用户切换为普通用户以及普通用户之间的切换。

普通用户之间切换以及普通用户切换至 root 用户,都需要知晓对方的密码,只有正确输入密码,才能实现切换;从 root 用户切换至其他用户,无需知晓对方密码,直接可切换成功。

Linux su命令详解

功能

用于切换用户。

语法

su [options] username

参数

参数 描述
options id 命令使用的参数。
username 用户名。

su命令常用参数

选项 含义
- 当前用户不仅切换为指定用户的身份,同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等),使用 - 选项可省略用户名,默认会切换为 root 用户。
-l 同 - 的使用类似,也就是在切换用户身份的同时,完整切换工作环境,但后面需要添加欲切换的使用者账号。
-p 表示切换为指定用户的身份,但不改变当前的工作环境(不使用切换用户的配置文件)。
-m 和 -p 一样。
-c 命令 仅切换用户执行一次命令,执行后自动切换回来,该选项后通常会带有要执行的命令。

Linux su命令常用实例

实例

实例 描述
su username 仅仅切换到 username 用户。
su - username 切换到 username 用户,并完整切换工作环境。
su -c cmd username 仅使用 username 执行一下 cmd 命令。

说明

从普通用户切换到 root 用户需要输入密码。

切换username用户

语法

su username

案例

我们使用 useradd 命令,创建一个 haicoder 用户,具体命令如下:

useradd haicoder

运行后,终端输出如下:

45_linux切换用户su命令.png

现在,我们使用 su 命令,切换到用户 haicoder,具体命令如下:

su haicoder

运行后,终端输出如下:

46_linux切换用户su命令.png

现在,我们使用 id 命令,查看当前用户信息,具体命令如下:

id

运行后,终端输出如下:

47_linux切换用户su命令.png

我们看到,现在已经切换到了 haicoder 用户。

切换username工作环境

语法

su - username

案例

我们登录到 root 用户,接着,使用 su 命令,切换到 haicoder 用户以及 haicoder 用户的工作环境,具体命令如下:

su - haicoder

运行后,终端输出如下:

48_linux切换用户su命令.png

我们看到,现在已经切换到了 haicoder 用户,现在,我们使用 exit 命令,退出当前用户,返回到 root 用户,具体命令如下:

exit

运行后,终端输出如下:

49_linux切换用户su命令.png

现在,测试完毕,我们使用 userdel 命令,删除该用户以及目录,具体命令如下:

userdel -r haicoder

运行后,终端输出如下:

50_linux切换用户su命令.png

即,我们成功删除了 haicoder 用户。

username用户临时执行命令

语法

su -c cmd username

案例

我们使用 su 命令实现,临时使用 root 用户执行一下 ls 命令,具体命令如下:

su -c ls root

运行后,终端输出如下:

51_linux切换用户su命令.png

我们看到,我们临时使用了 root 用户执行了 ls 命令。

Linux切换用户(su)总结

Linux 中的 su 命令用于切换用户,通过该命令可以实现任何身份的切换,包括从普通用户切换为 root 用户、从 root 用户切换为普通用户以及普通用户之间的切换。

普通用户之间切换以及普通用户切换至 root 用户,都需要知晓对方的密码,只有正确输入密码,才能实现切换;从 root 用户切换至其他用户,无需知晓对方密码,直接可切换成功。