插件窝 干货文章 如何配置CentOS系统以限制用户对系统进程的访问权限

如何配置CentOS系统以限制用户对系统进程的访问权限

限制 进程 sudo 用户 764    来源:    2025-04-15

在CentOS中限制用户对系统进程的访问权限

在CentOS系统中,可以通过多种方式来限制普通用户对系统进程的访问权限。以下是几种有效的方法:

1. 使用SELinux进行进程隔离

SELinux是CentOS内置的强制访问控制(MAC)系统:

# 检查SELinux状态
sestatus

# 如果未启用,启用SELinux
sudo setenforce 1
sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config

# 设置进程域隔离
sudo semanage login -a -s user_u username

2. 使用cgroups限制进程访问

# 安装cgroups工具
sudo yum install libcgroup libcgroup-tools

# 创建控制组
sudo cgcreate -g cpu,memory,devices:/limited_group

# 限制用户访问
sudo cgset -r devices.deny="a" limited_group
sudo cgset -r devices.allow="c 1:3 rwm" limited_group  # 仅允许基本设备

# 将用户添加到该组
sudo usermod -aG limited_group username

3. 通过/proc文件系统限制

# 修改/etc/fstab添加以下行
proc /proc proc defaults,hidepid=2 0 0

# 重新挂载/proc
sudo mount -o remount /proc

hidepid参数说明: - 0: 默认,所有用户可见所有进程 - 1: 隐藏其他用户进程 - 2: 隐藏其他用户进程,且/proc/[pid]目录仅对所有者可见

4. 使用PAM模块限制

编辑 /etc/security/limits.conf 文件:

username hard nproc 50      # 限制用户最多50个进程
username hard core 0        # 禁止生成core文件
username - maxlogins 1      # 限制同时登录数

5. 使用systemd资源控制

对于使用systemd的服务:

# 编辑服务单元文件
sudo systemctl edit --full servicename

# 添加以下内容
[Service]
MemoryLimit=512M
CPUQuota=50%
TasksMax=20

6. 使用Linux Capabilities限制权限

# 移除用户进程的特定能力
sudo setcap -r /path/to/process
sudo setcap cap_net_raw-ep /path/to/process

7. 定期审计进程访问

# 安装auditd
sudo yum install audit

# 配置审计规则
sudo auditctl -a exit,always -F arch=b64 -S kill -S ptrace -F auid!=unset -k process_access

# 查看审计日志
sudo ausearch -k process_access

注意事项

  1. 实施这些限制前,确保不会影响系统关键服务
  2. 对root用户无效,这些限制仅适用于普通用户
  3. 测试环境先行验证配置
  4. 记录所有变更以便故障排查

以上方法可以组合使用,根据实际安全需求选择适当的限制级别。对于生产环境,建议先进行全面测试。