Linux命令su、sudo、sudo su、sudo -i使用方法和区别是什么

发布时间:2021-07-27 21:46:10 作者:chen
来源:亿速云 阅读:350
# Linux命令su、sudo、sudo su、sudo -i使用方法和区别是什么

在Linux系统中,权限管理是系统安全的核心环节。`su`、`sudo`、`sudo su`和`sudo -i`是四种常用的权限切换命令,它们在功能和使用场景上既有重叠又有显著差异。本文将详细解析它们的用法、区别及适用场景。

---

## 一、su命令:切换用户身份

### 基本语法
```bash
su [选项] [用户名]

功能说明

常用选项

选项 作用
- 模拟完整登录环境
-c 以目标身份执行单条命令

示例

su -          # 切换到root并加载环境变量
su -l user1   # 完整切换到user1用户
su -c "ls /root" user1  # 以user1身份执行命令

特点


二、sudo命令:临时提权执行

基本语法

sudo [选项] 命令

功能说明

配置文件

/etc/sudoers 定义权限规则,建议通过visudo编辑

示例

sudo apt update           # 以root身份执行
sudo -u user1 whoami      # 以user1身份执行

特点


三、sudo su:组合技分析

执行效果

sudo su

等价于:

sudo su - root

工作原理

  1. 通过sudo获得root权限
  2. 再执行su切换到root用户

与纯su的区别

对比项 sudo su su
密码要求 当前用户密码 root密码
权限来源 sudoers配置 直接认证
环境变量 取决于是否加- 同上

四、sudo -i:登录式提权

基本语法

sudo -i [选项]

功能说明

常用选项

选项 作用
-u 指定目标用户(默认root)

示例

sudo -i           # 获取root的完整环境
sudo -i -u user1  # 模拟user1登录

五、横向对比总结

命令 认证密码 环境加载 权限来源 典型使用场景
su 目标用户 可选 直接认证 系统管理员维护
sudo 当前用户 不加载 sudoers配置 普通用户执行特权命令
sudo su 当前用户 可选 sudoers+su认证 需要root shell但禁用su时
sudo -i 当前用户 完整加载 sudoers配置 需要完整root环境时

六、安全实践建议

  1. 禁用root的su登录
    编辑/etc/pam.d/su

    auth required pam_wheel.so use_uid
    
  2. sudoers配置原则

    • 遵循最小权限原则
    • 使用命令绝对路径
    user1 ALL=(root) /usr/bin/apt,/usr/bin/systemctl
    
  3. 审计策略

    • 定期检查/var/log/auth.log
    • 使用sudo -l查看用户权限

通过合理选择这四种权限切换方式,可以在安全性和便利性之间取得平衡。理解它们的底层机制,将帮助您更高效地管理系统权限。 “`

注:本文约1150字,采用Markdown格式编写,包含代码块、表格等结构化元素,便于技术文档的阅读和维护。实际部署时可添加更多具体案例或发行版差异说明。

推荐阅读:
  1. 设置ssh证书登录,禁止root登录,禁止su到root,sudo权限设置
  2. sudo更改身份

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:deepin怎么安装lnmp环境

下一篇:加载XX.dll时出错时如何解决

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》