Linux 中的 su 命令用于切换用户,通过该命令可以实现任何身份的切换,包括从普通用户切换为 root 用户、从 root 用户切换为普通用户以及普通用户之间的切换。
普通用户之间切换以及普通用户切换至 root 用户,都需要知晓对方的密码,只有正确输入密码,才能实现切换;从 root 用户切换至其他用户,无需知晓对方密码,直接可切换成功。
用于切换用户。
su [options] username
参数 | 描述 |
---|---|
options | id 命令使用的参数。 |
username | 用户名。 |
选项 | 含义 |
---|---|
- | 当前用户不仅切换为指定用户的身份,同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等),使用 - 选项可省略用户名,默认会切换为 root 用户。 |
-l | 同 - 的使用类似,也就是在切换用户身份的同时,完整切换工作环境,但后面需要添加欲切换的使用者账号。 |
-p | 表示切换为指定用户的身份,但不改变当前的工作环境(不使用切换用户的配置文件)。 |
-m | 和 -p 一样。 |
-c 命令 | 仅切换用户执行一次命令,执行后自动切换回来,该选项后通常会带有要执行的命令。 |
实例 | 描述 |
---|---|
su username | 仅仅切换到 username 用户。 |
su - username | 切换到 username 用户,并完整切换工作环境。 |
su -c cmd username | 仅使用 username 执行一下 cmd 命令。 |
从普通用户切换到 root 用户需要输入密码。
su username
我们使用 useradd 命令,创建一个 haicoder 用户,具体命令如下:
useradd haicoder
运行后,终端输出如下:
现在,我们使用 su 命令,切换到用户 haicoder,具体命令如下:
su haicoder
运行后,终端输出如下:
现在,我们使用 id 命令,查看当前用户信息,具体命令如下:
id
运行后,终端输出如下:
我们看到,现在已经切换到了 haicoder 用户。
su - username
我们登录到 root 用户,接着,使用 su 命令,切换到 haicoder 用户以及 haicoder 用户的工作环境,具体命令如下:
su - haicoder
运行后,终端输出如下:
我们看到,现在已经切换到了 haicoder 用户,现在,我们使用 exit 命令,退出当前用户,返回到 root 用户,具体命令如下:
exit
运行后,终端输出如下:
现在,测试完毕,我们使用 userdel 命令,删除该用户以及目录,具体命令如下:
userdel -r haicoder
运行后,终端输出如下:
即,我们成功删除了 haicoder 用户。
username用户临时执行命令
语法
su -c cmd username
案例
我们使用 su 命令实现,临时使用 root 用户执行一下 ls 命令,具体命令如下:
su -c ls root
运行后,终端输出如下:
我们看到,我们临时使用了 root 用户执行了 ls 命令。
Linux切换用户(su)总结
Linux 中的 su 命令用于切换用户,通过该命令可以实现任何身份的切换,包括从普通用户切换为 root 用户、从 root 用户切换为普通用户以及普通用户之间的切换。
普通用户之间切换以及普通用户切换至 root 用户,都需要知晓对方的密码,只有正确输入密码,才能实现切换;从 root 用户切换至其他用户,无需知晓对方密码,直接可切换成功。