su 命令解释
Linux su(英文全拼:switch user)命令用于切换用户身份的命令,除 root 外,需要键入该使用者的密码。
使用权限:所有使用者。
语法
su [选项] [用户名]例如:
su # 切换到root,保持当前环境 su - # 切换到root,加载root的完整环境 su root # 明确指定切换到root用户切换到其他用户:
su username su - username su -l username参数说明
• - 或 -l 或 --login: 提供类似直接登录的环境
• -c command: 执行指定命令后退出
• -s shell: 指定要使用的shell
• -p 或 --preserve-environment: 保留当前环境变量实例
临时以 root 身份执行命令:
su -c "apt update && apt upgrade" root切换到服务用户进行调试:
su - www-data su -s /bin/bash www-data # 如果默认shell是/bin/false在脚本中使用:
su - postgres -c "psql -c 'SELECT version();'"退出 su 会话:
exit # 退出当前su会话Ctrl+D # 同样可以退出su 与 su - 的区别
su(非登录切换):
• 保持当前用户的环境变量
• 工作目录不变
• PATH等环境变量不变su -(登录切换):
• 加载目标用户的完整环境
• 切换到目标用户的家目录
• 重新设置PATH、HOME等环境变量
• 执行目标用户的登录脚本示例对比
# 当前用户:john,工作目录:/home/john pwd # /home/john echo $HOME # /home/john su root pwd # /home/john (目录未变) echo $HOME # /home/john (环境未变)exit su - root pwd # /root (切换到root家目录) echo $HOME # /root (完整环境)exitsu vs sudo 的区别
su 命令虽然简单直接,但在现代系统管理中,sudo 通常是更推荐的选择,因为它提供了更好的安全性和审计能力。
安全注意事项
• 避免共享root密码
• 使用 su - 确保完整的环境切换
• 及时退出su会话
• 在生产环境中优先考虑使用sudo
• 监控su的使用日志(通常在/var/log/auth.log
2025-06-16
浏览17
Linux命令
登录后评论
评论
分享