一、如何限制用户的磁盘空间
1. 查看系统中所有用户的磁盘空间配额
sudo repquota /dev/vda1
2. 查看某个用户的磁盘空间配额
sudo edquota user_name
要想更改该用户的磁盘空间配额,直接在弹出的文件中修改blocks字段后面的soft和hard字段的值即可。比如下图就将soft字段的值设置为2097152(也就是2G),将hard字段的值设置为3145728(也就是3G),这么设置的意思就是,系统会允许你在一定时间内(时间的设置见下面的第4节)的磁盘空间超过2G,但是你要在截至时间到来之前将磁盘空间降到2G以下;但是无论如何,你的磁盘空间都不能超过3G。这也就是soft和hard的含义。需要注意的是,blocks和inodes字段无需进行设置,这两个字段的值是系统自动给出的。
3. 先设置好某个模板用户fanyiwei的磁盘空间配额,然后将其配额赋值给目标用户target_user_name。只要设置过一次模板配额,那么以后这个命令就是最常用的,很方便。
sudo edquota -p fanyiwei target_user_name
4. 设置预警期
之前第2节我们设置过用户磁盘空间的软上限(soft)和硬上限(hard)。硬上限是绝对不允许超过的上限,比如上面设置的3G;软上限是短时间内允许你超过限制,但是有截止时间,也就是预警期。预警期的默认设置是7天,但是你可以用下面的命令修改
sudo edquota -t
运行之后会弹出下面的文件,然后修改即可,比如下图就将预警期设置成了3天。
二、如何限制用户的内存使用量
1. 首先使用下述命令进入文件
sudo vim /etc/security/limits.conf
进入后若想限制每一个用户的内存使用量不能超过20G左右,则在最下面添加下图中的语句
* hard rss 21000000
若想限制某个用户test的内存使用量不能超过20G左右,则可添加下图中的命令
@test hard rss 21000000
做一下说明,上面我们写的四个字段的意思分别是:(1) 加*号表示对所有用户起作用,加@test表示只对某个名叫test的用户起作用。(2) hard说明是硬上限,你也可以改成soft,也即软上限。(3) rss表示我们限制的是内存的使用量。(4) 21000000(单位KB)表明我们限制的量大概是20GB。
2. 修改上面的文件并保存之后,我们再用下述命令
sudo vim /etc/pam.d/login
进入文件,在最下面添加如下一句话,然后保存。
session required /lib/security/pam_limits.so
3. 退出账户在重新登陆,使用下述命令可以查看内存配额
ulimit -a
结果如下图
上图表明我们已经成功将用户的内存使用上线设置成20G了。
链接:https://www.jianshu.com/p/b6fb59508c7b