当前位置:首页 > Linux > 正文

Linux如何设置root权限控制?

在Linux中通过配置sudoers文件授权特定用户/组执行root命令,限制直接root登录(如禁用SSH root登录),并遵循最小权限原则管理超级用户权限。

核心原则:避免直接使用root

  • 使用sudo替代su
    通过sudo授权普通用户执行特定命令,而非直接登录root:

    1. 安装sudo(部分发行版默认安装):
      apt install sudo  # Debian/Ubuntu
      yum install sudo  # CentOS/RHEL
    2. 将用户加入sudo组:
      usermod -aG sudo username  # Debian/Ubuntu
      usermod -aG wheel username # CentOS/RHEL
    3. 配置sudo权限文件(/etc/sudoers):
      使用visudo命令编辑(避免语法错误):

      # 允许wheel组用户使用sudo
      %wheel ALL=(ALL) ALL
      # 允许特定用户无密码执行命令(谨慎使用)
      username ALL=(ALL) NOPASSWD: /usr/bin/systemctl

禁止root远程登录(SSH加固)

修改SSH配置文件 /etc/ssh/sshd_config

  1. 禁止root通过SSH登录:
    PermitRootLogin no
  2. 限制登录用户(仅允许普通用户):
    AllowUsers username
  3. 重启SSH服务生效:
    systemctl restart sshd

️ 注意:先测试普通用户SSH登录权限,再禁用root登录,避免被锁在系统外。

Linux如何设置root权限控制?  第1张


设置强密码策略

  1. 修改root密码复杂度
    编辑 /etc/security/pwquality.conf

    minlen = 12   # 最小长度
    minclass = 3  # 包含数字、字母、符号等至少3类
  2. 设置密码有效期
    修改 /etc/login.defs

    PASS_MAX_DAYS 90   # 密码最长有效期
    PASS_WARN_AGE 7    # 过期前7天提醒
  3. 使用命令强制root修改密码:
    chage -M 90 root

使用PAM模块精细化控制

通过Pluggable Authentication Modules (PAM) 限制root访问:

  1. 限制root的TTY终端
    编辑 /etc/securetty,仅允许本地tty1登录:

    tty1
    # 注释其他行(如tty2, pts/0等)
  2. 禁止普通用户su到root
    编辑 /etc/pam.d/su,添加:

    auth required pam_wheel.so use_uid  # 仅允许wheel组成员使用su

审计与监控root活动

  1. 启用auditd日志审计

    • 安装auditd:
      apt install auditd  # 或 yum install audit
    • 监控root执行的所有命令:
      auditctl -a always,exit -F arch=b64 -F euid=0 -S execve
    • 查看日志:ausearch -ue 0(0为root的UID)
  2. 记录sudo操作
    /etc/sudoers中添加:

    Defaults logfile=/var/log/sudo.log

安全增强建议

  1. 使用双因素认证(2FA)
    为sudo或SSH登录启用Google Authenticator等2FA工具。
  2. 定期审查权限
    • 检查sudoers文件:sudo visudo -c
    • 审计特权用户:grep -Po '^sudo.+:K.*$' /etc/group
  3. 内核级防护
    启用SELinux/AppArmor限制root进程行为(如配置enforcing模式)。

控制root权限的关键在于:
优先使用sudo而非直接root操作
禁用远程root登录
强制密码复杂性策略
通过PAM和审计实现精细化管控
️ 任何配置修改前,务必备份相关文件(如/etc/sudoers),并在测试环境验证。
基于Linux官方文档及安全最佳实践,参考来源:

  • Linux man-pages (man sudoers, man pam_wheel)
  • NSA《Linux安全加固指南》
  • Ubuntu/CentOS官方安全文档
    遵循CC BY-SA 4.0协议,允许署名共享。
0