用户资源管理:cgroups + systemd + ssh

用户资源管理:cgroups + systemd + ssh

我正在尝试限制单个用户的内存,以免导致我们的 OpenSuse 服务器崩溃。

我所做的是如此处所述,修改用户切片的限制

systemctl set-property user-$UID.slice MemoryHigh=20G

其中 $UID 是用户 ID...例如,系统上创建的第一个用户的 ID 为 1000。现在查询切片的状态,我得到:

● user-$UID.slice
   Loaded: loaded
  Drop-In: /etc/systemd/system.control/user-1008.slice.d
           └─50-MemoryHigh.conf, 50-MemoryLimit.conf
   Active: inactive (dead)

如果用户通过 ssh 登录并运行某些进程,状态也不会改变。我想知道这些限制是否强制执行?

我有几个问题:

  1. 我如何检查限制是否得到强制执行?
  2. 我已在 sshd 文件中关闭了 PAM 身份验证。这与此有关吗?将 PAMAuthentication 设置为是时,我需要注意什么?我会被锁定在 ssh 之外吗?我有点犹豫,因为把自己锁定意味着要开车去服务器位置…… :D
  3. 是否有人遇到过同样的问题并可以分享其解决方案?
  4. 有没有办法为某个用户组中的一群用户设置内存限制?那么,我是不是可以简单地为懒汉创建一个用户组,然后将难缠的用户添加到这个组中,而不是为每个新用户制定一条规则,从而破坏系统?

欢迎任何建议:我也发了这里的问题因为我不确定哪个社区更合适。

相关内容