【笔记】su 命令 - 用户间切换

外置命令。

[root@localhost ~]# su [选项] 用户名
  • su 命令的选项
选项 功能
- 当前用户不仅切换为指定用户的身份,同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等),使用 - 选项可省略用户名,默认会切换为 root 用户
-l 同 - 的使用类似,也就是在切换用户身份的同时,完整切换工作环境,但后面需要添加欲切换的使用者账号
-p 表示切换为指定用户的身份,但不改变当前的工作环境(不使用切换用户的配置文件)
-m 和 -p 一样
-c 命令 仅切换用户执行一次命令,执行后自动切换回来,该选项后通常会带有要执行的命令
  • 示例
[lamp@localhost ~]$ su -root
密码: <-- 输入 root 用户的密码
# "-"代表连带环境变量一起切换,不能省略
[lamp@localhost ~]$ whoami
lamp
#当前我是lamp
[lamp@localhost ~]$ su - -c "useradd user1" root
密码:
# 不切换成root,但是执行useradd命令添加user1用户
[lamp@localhost ~]$ whoami
lamp
# 我还是lamp
[lamp@localhost ~]$ grep "user1' /etc/passwd
userl:x:502:504::/home/user1:/bin/bash
# user用户已经添加了

1. su 和 su - 的区别

注意,使用 su 命令时,有 - 和没有 - 是完全不同的,- 选项表示在切换用户身份的同时,连当前使用的环境变量也切换成指定用户的。我们知道,环境变量是用来定义操作系统环境的,因此如果系统环境没有随用户身份切换,很多命令无法正确执行。


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容