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

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

restricted sudo 用户 限制 913    来源:    2025-04-15

CentOS系统资源访问权限限制配置指南

作为IT工程师,我将为您详细介绍如何在CentOS系统中配置以限制用户对系统资源的访问权限。

1. 用户和组管理

创建受限用户

# 创建新用户并设置密码
sudo useradd -m restricted_user
sudo passwd restricted_user

# 禁止用户登录shell
sudo usermod -s /sbin/nologin restricted_user

用户组管理

# 创建新组
sudo groupadd restricted_group

# 将用户添加到组
sudo usermod -aG restricted_group restricted_user

2. 文件系统权限控制

设置文件和目录权限

# 限制用户只能访问特定目录
sudo chown root:restricted_group /path/to/restricted_dir
sudo chmod 750 /path/to/restricted_dir

# 递归设置目录权限
sudo chown -R root:restricted_group /path/to/restricted_dir
sudo chmod -R 750 /path/to/restricted_dir

使用访问控制列表(ACL)

# 安装ACL工具
sudo yum install acl

# 设置ACL权限
sudo setfacl -R -m u:restricted_user:r-x /path/to/dir
sudo setfacl -R -m g:restricted_group:r-x /path/to/dir

3. 资源限制(ulimit)

编辑limits.conf文件

sudo vi /etc/security/limits.conf

添加以下内容:

restricted_user hard nproc 50       # 限制进程数
restricted_user hard nofile 100     # 限制打开文件数
restricted_user hard fsize 50       # 限制文件大小(MB)
restricted_user hard as 500000      # 限制虚拟内存(KB)
* hard core 0                      # 禁止生成core文件

4. SELinux配置

检查SELinux状态

sestatus

设置SELinux布尔值

sudo setsebool -P allow_user_mysql_connect off
sudo setsebool -P httpd_enable_homedirs off

创建自定义SELinux策略

# 生成策略模块
sudo audit2allow -a -M mypolicy
sudo semodule -i mypolicy.pp

5. 使用cgroups限制资源

安装cgroups工具

sudo yum install libcgroup
sudo systemctl start cgconfig
sudo systemctl enable cgconfig

配置cgroups

sudo vi /etc/cgconfig.conf

添加以下内容:

group restricted {
    cpu {
        cpu.shares = 256;
    }
    memory {
        memory.limit_in_bytes = 512M;
    }
}

将用户加入cgroup

sudo vi /etc/cgrules.conf

添加:

restricted_user cpu,memory restricted/

6. 网络访问限制

使用iptables/firewalld

# 使用firewalld限制用户访问
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" reject' --permanent
sudo firewall-cmd --reload

7. 审计和监控

安装和配置auditd

sudo yum install audit
sudo systemctl start auditd
sudo systemctl enable auditd

添加审计规则

sudo vi /etc/audit/audit.rules

添加:

-w /etc/passwd -p wa -k passwd_changes
-w /etc/shadow -p wa -k shadow_changes
-a always,exit -F arch=b64 -S open -F success=1 -F path=/etc -F uid=restricted_user -k restricted_user_access

8. 定期检查和维护

检查用户活动

# 查看用户登录历史
last restricted_user

# 查看用户进程
ps -u restricted_user

# 检查用户打开的文件
lsof -u restricted_user

定期审计

# 检查异常登录
sudo grep "Failed password" /var/log/secure

# 检查sudo使用
sudo grep "sudo:" /var/log/secure

通过以上配置,您可以有效地限制CentOS系统中用户对系统资源的访问权限。根据实际需求,您可以选择性地实施这些措施或进行更严格的配置。