好的阿杰,我帮你整理一份 Linux 云服务器中 sudo
命令的使用指南,涵盖基础使用、权限管理和安全注意事项。
1️⃣ sudo
简介
sudo
(Super User DO)允许普通用户以 超级用户(root)或其他用户身份执行命令- 主要作用:
- 执行需要管理员权限的操作
- 不直接使用 root 登录,提高安全性
- 可记录操作日志,便于审计
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️⃣ 安全注意事项
- 尽量避免直接使用 root
- 使用 sudo 执行单个命令,减少风险
- 最小权限原则
- 不要给用户无限制 sudo,限制必要命令
- 操作日志审计
- sudo 默认会在
/var/log/auth.log
(Ubuntu)或/var/log/secure
(CentOS)记录
- sudo 默认会在
- 不要在 sudo 中执行不可信命令
- 避免 shell 注入风险
8️⃣ 总结
- sudo 是安全获取管理员权限的方式
- 普通用户执行管理员命令:
sudo <命令>
- 查看和配置权限:
sudo -l
sudo visudo
- 切换 root 用户:
sudo -i
- 安全性原则:最小权限、日志审计、避免直接 root 登录
发表回复