好的阿杰,我帮你整理一份 Linux 云服务器中 sudo 命令的使用指南,涵盖基础使用、权限管理和安全注意事项。


1️⃣ sudo 简介

  • sudo(Super User DO)允许普通用户以 超级用户(root)或其他用户身份执行命令
  • 主要作用:
    1. 执行需要管理员权限的操作
    2. 不直接使用 root 登录,提高安全性
    3. 可记录操作日志,便于审计

2️⃣ 基础使用

sudo <命令>

示例:

sudo apt update          # Ubuntu/Debian 更新软件源
sudo yum install nginx   # CentOS 安装 nginx
sudo systemctl restart sshd

  • 执行时可能要求输入 当前用户密码
  • 输入密码后,通常在 5 分钟内无需重复输入

3️⃣ 查看 sudo 权限

3.1 查看当前用户是否有 sudo 权限

sudo -l

示例输出:

User alijie may run the following commands on this host:
    (ALL : ALL) ALL

  • (ALL : ALL) ALL 表示 可以以任意用户身份执行任意命令

3.2 查看 sudoers 文件

cat /etc/sudoers

  • 不要直接编辑 sudoers 文件,用 visudo 编辑

4️⃣ 编辑 sudo 权限(推荐方式)

使用 visudo 编辑 sudoers 文件,防止语法错误:

sudo visudo

  • 添加用户权限:
# 用户 alijie 可以执行所有命令
alijie ALL=(ALL:ALL) ALL

# 用户 bob 仅能重启服务
bob ALL= /bin/systemctl restart nginx

注意:

  • 不要直接修改 /etc/sudoers,防止语法错误导致 sudo 无法使用
  • ALL=(ALL:ALL) ALL:第一个 ALL 是主机,第二个 ALL 是运行身份,第三个 ALL 是允许执行的命令

5️⃣ 切换为 root 用户

sudo -i    # 模拟登录 root
sudo su -   # 切换到 root 用户

  • 适合需要连续执行多个管理员命令的场景

6️⃣ sudo 常用选项

选项说明
-l列出用户可执行的命令
-i模拟登录 root,执行 root 环境
-u <user>以指定用户身份执行命令
-v更新 sudo 会话超时时间
-k立即清除 sudo 缓存,下次需要输入密码

示例:

sudo -u postgres psql    # 以 postgres 用户身份执行命令


7️⃣ 安全注意事项

  1. 尽量避免直接使用 root
    • 使用 sudo 执行单个命令,减少风险
  2. 最小权限原则
    • 不要给用户无限制 sudo,限制必要命令
  3. 操作日志审计
    • sudo 默认会在 /var/log/auth.log(Ubuntu)或 /var/log/secure(CentOS)记录
  4. 不要在 sudo 中执行不可信命令
    • 避免 shell 注入风险

8️⃣ 总结

  1. sudo 是安全获取管理员权限的方式
  2. 普通用户执行管理员命令
sudo &lt;命令>

  1. 查看和配置权限
sudo -l
sudo visudo

  1. 切换 root 用户
sudo -i

  1. 安全性原则:最小权限、日志审计、避免直接 root 登录