Linux 中 su 与 sudo 权限控制建议

2025.5.29 杂七杂八 1772

Linux 中 su 与 sudo 权限控制建议

本文深入探讨Linux系统中su与sudo命令的核心区别及权限控制策略,提供最小权限分配、审计日志配置等6项专业建议,帮助系统管理员实现安全高效的权限管理,避免常见配置错误。

一、su与sudo的核心差异

在Linux权限管理中,su(Switch User)和sudo(Superuser Do)是两种根本不同的权限控制机制:

 su 需要目标用户密码
su - username

 sudo 需要当前用户密码
sudo command
  • 认证方式:su验证目标用户密码,sudo验证请求者自身密码
  • 权限范围:su切换完整用户环境,sudo执行单条命令
  • 日志记录:sudo默认记录详细审计日志,su依赖系统auth日志

二、企业级权限控制6项建议

1. 禁用root直接登录

修改/etc/ssh/sshd_config

PermitRootLogin no

2. sudoers精细化配置

使用visudo编辑配置,遵循最小权限原则:

 允许develop组执行特定命令
%develop ALL=(ALL) /usr/bin/git, /usr/bin/docker

 带密码验证且记录日志
User_Alias ADMINS = user1, user2
ADMINS ALL=(ALL) PASSWD: ALL

3. 配置sudo密码策略

/etc/sudoers中添加:

Defaults passwd_timeout=5   密码缓存5分钟
Defaults logfile=/var/log/sudo.log

4. 限制su的使用范围

修改/etc/pam.d/su配置文件:

auth required pam_wheel.so use_uid group=wheel

5. 实施双因素认证

集成Google Authenticator:

auth required pam_google_authenticator.so

6. 定期审计权限使用

关键监控命令:

 查看sudo历史
sudo cat /var/log/auth.log | grep sudo

 检查su切换记录
lastlog

三、典型场景最佳实践

场景 推荐方案 风险提示
日常维护 sudo + 命令白名单 避免开放ALL权限
紧急故障处理 受限su + 会话超时 记录完整操作日志
自动化脚本 配置免密sudo 限制可执行命令范围

四、安全增强措施

  1. 配置umask 027限制新建文件权限
  2. 安装fail2ban防御暴力破解
  3. 定期轮换sudoers文件备份:/etc/sudoers.bak
  4. 使用auditd监控特权操作

通过合理配置su与sudo的组合策略,可以在操作便利性与系统安全性之间取得最佳平衡。建议每月审查权限分配,及时撤销不必要的特权访问。

评论