Linux su用法示例权威详解
名称
su - 更改用户身份
概要
su [选项] [-] [用户名[参数…]]
描述
su 命令用于更改用户身份为其他用户。默认情况下,它将切换到超级用户(root)身份。su 命令需要目标用户的密码才能进行身份切换。
选项
适用于 su 命令的主要选项有:
-, -l, --login
以登录shell执行命令,并加载目标用户的环境变量。
-c, --command COMMAND
在切换用户之后立即执行指定的命令,然后退出。
-m, --preserve-environment
保持当前用户的环境变量不变。
-s, --shell SHELL
指定要使用的shell。默认情况下,su 使用目标用户的默认shell。
-h, --help
显示帮助消息并退出。
多种主要用法及其代码示例
- 切换到超级用户(root)身份:
su
- 切换到其他用户身份:
su username
- 以登录shell执行命令:
su - username -c "command"
- 保持当前用户的环境变量不变:
su -m username
其他类似命令
- sudo:允许普通用户以其他用户的身份执行命令,提供更细粒度的权限控制。
- chroot:在新的根目录中执行命令。
- setuid:设置程序的有效用户 ID。
详细区别
su 和 sudo 都允许用户以其他用户的身份执行命令,但它们的工作方式有所不同。su 需要知道目标用户的密码才能切换到该用户,并且会启动一个新的shell会话。而 sudo 是通过配置文件(/etc/sudoers)来控制用户的访问权限,并提供了更细粒度的权限控制。
另外,su 默认情况下不加载目标用户的环境变量,除非使用 - 或 -l 选项,而 sudo 则可以选择保持当前用户的环境变量或加载目标用户的环境变量。