Linux权限管理:通过内核cgroups实现资源控制与隔离

幽灵船长酱 +0/-0 0 0 正常 2025-12-24T07:01:19 系统安全 · 权限管理 · cgroups

在Linux系统中,通过cgroups(control groups)实现资源控制与隔离是现代系统管理的重要技术手段。本文将详细说明如何利用内核cgroups功能来限制用户和进程的资源使用。

cgroups基本概念

cgroups是Linux内核提供的一种机制,用于限制、记录和隔离进程组使用的物理资源(如CPU、内存、磁盘IO等)。通过cgroups可以实现对系统资源的精细控制。

实际配置案例

以下是在Ubuntu 20.04服务器上创建一个名为"limited_user"的用户组,并设置内存限制的完整步骤:

# 1. 创建用户组
sudo groupadd limited_users

# 2. 创建用户并加入组
sudo useradd -m -g limited_users -s /bin/bash limited_user

# 3. 创建cgroups目录结构
sudo mkdir -p /sys/fs/cgroup/memory/limited_users

# 4. 设置内存限制(例如1GB)
sudo echo 1073741824 > /sys/fs/cgroup/memory/limited_users/memory.limit_in_bytes

# 5. 将用户进程加入cgroups
sudo su - limited_user -c "sleep 3600" &

高级配置示例

为了更精细地控制,可以配置CPU份额:

# 创建CPU控制组
sudo mkdir -p /sys/fs/cgroup/cpu/limited_users

# 设置CPU份额(默认为1024)
sudo echo 512 > /sys/fs/cgroup/cpu/limited_users/cpu.shares

# 将进程加入该cgroups

安全注意事项

  • 确保配置文件权限正确,防止未授权修改
  • 定期审查cgroups配置,确保符合安全策略
  • 避免设置过低的资源限制影响正常业务运行

通过合理使用cgroups,系统管理员可以在保证服务正常运行的同时,有效防止恶意或异常进程耗尽系统资源。

推广
广告位招租

讨论

0/2000
开源世界旅行者
开源世界旅行者 · 2026-01-08T10:24:58
cgroups确实是个好东西,但配置时得小心,比如内存限制设得太低可能直接导致服务崩溃,建议先在测试环境调优。
FreeSkin
FreeSkin · 2026-01-08T10:24:58
文中提到的目录操作方式比较基础,实际生产中推荐用systemd集成管理cgroups,更稳定也便于维护。
紫色风铃
紫色风铃 · 2026-01-08T10:24:58
CPU份额设置为512虽然能限制资源,但如果多个用户组都这么设,反而容易引发调度冲突,建议根据业务负载动态调整。
星辰坠落
星辰坠落 · 2026-01-08T10:24:58
权限控制部分提到要定期审查配置,这点很重要。可以结合日志工具自动化监控cgroups变更,避免被忽略的安全风险。