Linux su 命令

Linux su 命令

Linux su 命令

Linux 命令大全

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 (完整环境)

exit

su vs sudo 的区别

特性

su

sudo

需要密码

目标用户密码

当前用户密码

会话持续

直到手动exit

单次命令或短时间缓存

配置复杂度

简单

需要配置sudoers

安全性

需要知道root密码

更细粒度的权限控制

审计

有限

更详细的日志

su 命令虽然简单直接,但在现代系统管理中,sudo 通常是更推荐的选择,因为它提供了更好的安全性和审计能力。

安全注意事项

避免共享root密码

使用 su - 确保完整的环境切换

及时退出su会话

在生产环境中优先考虑使用sudo

监控su的使用日志(通常在/var/log/auth.log)

Linux 命令大全

相关推荐

linux自定义命令放到哪里
365sport365中文版

linux自定义命令放到哪里

📅 10-07 👁️ 8494
#奔跑吧兄弟#
365bet亚洲唯一官网

#奔跑吧兄弟#

📅 09-15 👁️ 5825
三大种族综合分析,经多次大改,哪个受益最大
best365网页登录不上去

三大种族综合分析,经多次大改,哪个受益最大

📅 07-27 👁️ 8609
ICP备案多久时间能办下来? 域名备案 网站备案 非经营性互联网信息服务核准
世界杯亚洲区预选赛出线细则全解析
365bet亚洲唯一官网

世界杯亚洲区预选赛出线细则全解析

📅 06-30 👁️ 6876
AD账号是什么意思
365bet亚洲唯一官网

AD账号是什么意思

📅 08-24 👁️ 6294