插件窝 干货文章 Linux用户权限管理与安全审计

Linux用户权限管理与安全审计

bash 用户 权限 username 1006    来源:    2025-04-02

Linux用户权限管理与安全审计指南

一、用户与组管理

1. 用户账户管理

  • 创建用户

    useradd -m username  # 创建用户并建立家目录
    passwd username      # 设置用户密码
    
  • 修改用户属性

    usermod -aG groupname username  # 将用户添加到附加组
    usermod -L username            # 锁定用户账户
    usermod -U username            # 解锁用户账户
    
  • 删除用户

    userdel -r username  # 删除用户及其家目录
    

2. 组管理

  • 创建组

    groupadd groupname
    
  • 修改组成员

    gpasswd -a username groupname  # 添加用户到组
    gpasswd -d username groupname  # 从组中移除用户
    

二、文件权限管理

1. 基本权限

  • 查看权限

    ls -l filename
    
  • 修改权限

    chmod 755 filename      # 数字模式
    chmod u+x,g-w,o=r filename  # 符号模式
    
  • 修改所有者

    chown user:group filename
    

2. 特殊权限

  • SUID (Set User ID):

    chmod u+s /path/to/file
    
  • SGID (Set Group ID):

    chmod g+s /path/to/file
    
  • Sticky Bit (用于目录):

    chmod +t /path/to/directory
    

三、sudo权限管理

1. sudo配置

  • 编辑sudoers文件:

    visudo
    
  • 示例配置:

    username ALL=(ALL) ALL                   # 完全sudo权限
    username ALL=(ALL) NOPASSWD: /usr/bin/apt  # 特定命令无需密码
    %groupname ALL=(ALL) ALL                 # 组权限
    

2. 最佳实践

  • 避免直接给root权限
  • 使用组管理sudo权限
  • 限制特定命令的执行

四、安全审计

1. 登录审计

  • 查看登录记录:

    last
    lastb       # 查看失败登录尝试
    lastlog     # 查看用户最后登录时间
    
  • 配置审计:

    # 编辑/etc/ssh/sshd_config
    LogLevel VERBOSE
    

2. 系统审计(auditd)

  • 安装auditd:

    apt install auditd  # Debian/Ubuntu
    yum install audit   # RHEL/CentOS
    
  • 常用命令:

    auditctl -l                     # 查看当前规则
    auditctl -w /etc/passwd -p wa   # 监控passwd文件写入和属性变更
    ausearch -k keyname             # 搜索审计日志
    aureport                       # 生成审计报告
    

3. 文件完整性检查

  • 使用AIDE(Advanced Intrusion Detection Environment): bash apt install aide aideinit aide --check

五、PAM(Pluggable Authentication Modules)配置

  • 编辑PAM配置文件(位于/etc/pam.d/)
  • 示例配置: # 限制登录尝试 auth required pam_tally2.so deny=5 unlock_time=1800

六、SSH安全配置

编辑/etc/ssh/sshd_config

PermitRootLogin no
PasswordAuthentication no  # 使用密钥认证
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
AllowUsers user1 user2     # 只允许特定用户

七、定期安全检查

  1. 检查SUID/SGID文件:

    find / -perm /4000 -type f -exec ls -ld {} \;
    find / -perm /2000 -type f -exec ls -ld {} \;
    
  2. 检查无主文件:

    find / -nouser -o -nogroup
    
  3. 检查开放端口:

    netstat -tulnp
    ss -tulnp
    
  4. 检查计划任务:

    crontab -l
    ls -la /etc/cron*
    

八、日志管理

  1. 集中日志服务器配置
  2. 使用logrotate管理日志轮转
  3. 关键日志文件:
    • /var/log/auth.log (认证日志)
    • /var/log/syslog (系统日志)
    • /var/log/secure (RHEL安全日志)
    • /var/log/audit/audit.log (审计日志)

通过以上措施,可以构建一个相对安全的Linux系统环境,并能够有效监控和审计系统活动。