centos7用户改简单密码_CentOS 7 限制用户的磁盘用量和系统资源的简单配置方法...

一、前言

Linux 是一个多用户操作系统。在默认情况下,所有用户共享使用主机上的磁盘空间以及系统资源。

如果某个用户总是无节制地使用磁盘空间或系统资源,那么系统多多少少会出现不稳定现象,从而影响到其他用户的正常使用。

为此,我们一般需要对每个用户所使用的磁盘空间和系统资源进行限制,这样才能确保公平性。

下面将简单介绍限制各用户磁盘用量以及系统资源用量的操作方法。

二、实验环境

  • 操作系统:CentOS 7.3.1708
  • 磁盘文件系统:ext4

三、限制磁盘用量

3.1 打开挂载点的配额功能

3.1.1 修改挂载参数

请使用 vim 之类的文本编辑器打开 /etc/fstab,找到需要限制磁盘用量的挂载点所在的行,在该行的第四列后面加上 ,userquota,grpquota 这两个参数。修改完成后记得保存文件。

例如

#修改前
UUID=0bedb5c4-7471-4eab-bfde-fa3b37dc4895 / ext4 defaults 1 1

#修改后
UUID=0bedb5c4-7471-4eab-bfde-fa3b37dc4895 / ext4 defaults,usrquota,grpquota 1 1 

3.1.2 重新挂载磁盘

命令用法

mount -o remount <挂载点> 

3.1.3 初始化配额配置文件

命令用法

quotacheck -ugm <挂载点> 

执行完该命令之后,在挂载点上会生成 aquota.groupaquota.user 这两个配额配置文件。

3.1.4 开启挂载点的配额功能

命令用法

quotaon <挂载点> 

3.2 修改配额参数

3.2.1 磁盘用量限制

命令用法

edquota <用户名> 

执行完该命令之后,系统会打开一个 vi 文本编辑器来编辑用户的磁盘用量限制配置文件。

文件内容大概是这样子的:

Disk quotas for user mail (uid 8):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sda2                         4          0          0          1        0        0 

下面详细讲解该文件各字段功能以及配置方法。修改完成后记得保存文件。

d91bc6565702b032d8d587926b35bbee.png

当用户的磁盘用量达到软限制时,系统将给予用户提示,并且在宽限时间内允许用量最多增加到硬限制。

如果过了宽限时间,用户就必须释放磁盘空间来使磁盘用量降低到软限制以下。

3.2.2 全局宽限时间配置

命令用法

edquota -t 

执行完该命令之后,系统会打开一个 vi 文本编辑器来编辑全局宽限时间配置文件。

文件内容大概是这样子的:

Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
  Filesystem             Block grace period     Inode grace period
  /dev/sda2                     7days                  7days 

下面详细讲解该文件各字段功能以及配置方法。修改完成后记得保存文件。

9f8450c8e269504576531956b2dc6497.png

3.3 关闭挂载点的配额功能

如果不再使用配额功能,可以关闭它。

命令用法

quotaoff <挂载点> 

如果想清除配置,请自行删除挂载点上面的 aquota.groupaquota.user 这两个文件。

3.4 查询用户的配额参数

命令用法

quota <用户名> 

3.5 用法举例

系统上有一个名为 yh1 的新用户,需要限制其使用不超过 250MB (宽限到 300MB)的存储空间和存储不超过 10000 个(宽限到 11000 个)文件或目录(挂载点为 /,已经开启了配额功能)。配置完成后进行测试。

磁盘用量限制配置文件应为如下内容:

Disk quotas for user yh1 (uid 1000):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sda2                      3840          256000          307200         38        10000        11000

#存储空间需要转换为 KB 

效果测试

以下的操作均以 yh1 用户的身份进行。

执行以下命令:

dd if=/dev/zero of=test #该命令的作用是创建一个名为 test 的文件来把磁盘填满 

运行结果:

sda2: warning, user block quota exceeded.   #提示已经超过软限制
sda2: write failed, user block limit reached.   #提示已经超过硬限制
dd: 正在写入"test": 超出磁盘限额
记录了606705+0 的读入
记录了606704+0 的写出
310632448字节(311 MB)已复制,0.959923 秒,324 MB/秒 

很明显,磁盘空间用量的限制已经生效了。我们先删掉 test 文件,再来测试一下 INDOE 的。

执行以下命令:

while :; do let i++; touch $i || break; echo $i; done #该命令的作用是不断地创建空文件 

运行结果:

1
2
3
# <省略>
9962
sda2: warning, user file quota exceeded. #提示已经超过软限制
9964
# <省略>
10961
sda2: write failed, user file limit reached. #提示已经超过硬限制
touch: 无法创建"10963": 超出磁盘限额 

很好,设置全部生效了!

四、限制系统资源用量

4.1 设置方法

请使用 vim 之类的文本编辑器打开 /etc/security/limits.conf

文件内容大概是这样子的(已省略掉一些内容):

#<domain>      <type>  <item>         <value>

@faculty        soft    nproc           20
@faculty        hard    nproc           50
ftp             hard    nproc           0
@student        -       maxlogins       4 

下面简要讲解该文件各字段功能以及配置方法。修改完成后记得保存文件。

f122835b5e89371d997ff502f138a250.png

由于该文件的配置比较简单,而且自带了配置说明,所以下面仅以限制进程数目为例。

如果需要配置限制其他系统资源,请参考自带的配置说明进行配置。

4.2 用法举例

系统上有一个名为 yh2 的新用户,需要限制其最多打开 16 个进程。配置完成后,使用 fork 炸弹进行测试。

应在 /etc/security/limits.conf 末尾添加如下内容:

yh2             hard    nproc           16 

效果测试

以下的操作均以 yh2 用户的身份进行。

.( ) { .|.& } ; . #引爆 fork 炸弹 

运行结果:

[1] 45224
[yh2: ~]$ -bash: fork: retry: 资源暂时不可用
-bash: fork: retry: 没有子进程
-bash: fork: retry: 没有子进程
-bash: fork: retry: 没有子进程
-bash: fork: retry: 没有子进程
-bash: fork: retry: 没有子进程
# <省略> 

系统并不会卡死,说明限制生效了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值