Linux基础培训:管理用户的磁盘空间
Linux基础培训:管理用户的磁盘空间
1.为普通用户和用户组加入磁盘配额限制
Linux的Quota程序允许为系统上每一用户或用户组指定所能使用的磁盘配额。目前Quota仅能工作在ext2和ext3类型的文件系统上。使用Quota需要确定以下两点:
(1)当前的系统内核支持Quota。
(2)系统已正确安装Quota套装程序。
如果你当前的系统内核不支持Quota,请重新编译你的内核,当系统提示:
Quota support(CONFIG—QUOTA)[n]
回答y,生成新的系统内核。
如果没有Quota套装程序,请到以下地址下载Quota的源程序并编译:
ftp://ftp.funet.fi/pub/l inux/PEOPLE/Linus/subsystems/Quota/all.tar.gz
一般Linux的发行版本的内核都默认包含了Quota支持,也附带了Quota 套装程序,只需安装Quota 并加以设置便可让Quota工作。
Quota的具体设置步骤:
(1)编辑系统初始脚本让它检查Quota并启动。
# Check Quota and then turn Quota on.
if [ -x /usr/sbin/Quotacheck ]
then
echo ″Checking Quotas. This may take some time.″
/usr/sbin/Quotacheck -avug
echo ″Done.″
fi
if [ -x /usr/sbin/Quotaon ]
then
echo ″Turning on Quota.″
/usr/sbin/Quotaon -avug
fi
(2)编辑/etc/fstab。你的 /etc/fstab文件可能会是如下的形式:
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /home ext2 defaults 1 1
选择用户所在分区的行的第4个域,为用户加入Quota支持,如下:
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /home ext2 defaults,usrQuota 1 1
如为用户组加入Quota支持,可将usrQuota替换为grpQuota。
如两者兼而有之,可将这两项一并写入,如下:
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /home ext2 defaults,usrQuota,grpQuota 1 1
(3)创建Quota记录文件Quota.user和Quota.group。进入用户所在分区根目录,如在上例中输入cd /home即可,按下面命令创建文件:
touch Quota.user
touch Quota.group
chmod 600 Quota.user Quota.group
完成上面几步以后,重新启动电脑以使设置生效。
(4)为用户或用户组设置磁盘配额限制。假设在你的系统上有一名为bob 的用户,现在想给他10MB的硬盘配额限制,他所拥有的最大文件数不得超过100个。执行edQuota -u dquo,系统将进入编辑环境(具体编辑环境视editor变量设置而定),将如下3行
Quotas for user bob:
/dev/hda2: blocks in use: 14, limits (soft=0, hard=0)
inodes in use: 12, limits (soft=0, hard=0)
改为
Quotas for user bob:
/dev/hda2: blocks in use: 14, limits (soft=0, hard=10240)
inodes in use: 12, limits (soft=0, hard=100)
其中,
blocks in use:用户已使用块的大小,单位是KB。
inodes in use:用户现有文件的大小。
这两项都是系统自动给出的,不必改动。
2.软限制(soft limits)
通常设置软限制为一个接近硬限制的值,超越此限制时,系统将警告用户将到达最大磁盘配额限制。软限制为0 时没有软限制。结合宽限期使用时,只要用户超越了软限制,一过宽限期,任何对磁盘空间的额外需求将被立即拒绝。
3.硬限制(hard limits)
硬限制磁盘配额的绝对限制,设置了Quota的用户不能超越此限制。
4.宽限期(Grace Period)
宽限期是用户超越了软限制而没有到达硬限制时的一段放宽期,在这段时间内,用户可以在硬限制范围内自由地使用磁盘空间,超过这段时间,所有对磁盘空间的额外需求将被拒绝,即使用户还在硬限制之内。宽限期的单位可以是秒、分、时、天。执行edQuota -t命令可设置宽限期。执行该命令后,将系统提示中的两个0 days 改成你认为合适的值即可。
有时想给一批用户加上同样的限制,比如,给系统上所有100个用户加上与bob同样的限制,可手工先给bob加上限制,然后执行下面命令:
edQuota -p bob ′awk -F: ′$3 499 {print $1}′/etc/passwd′
给用户组设置磁盘配额限制与普通用户类似,假设有一用户组game,执行edQuota -g game即可。
5.控制用户的登录地点
文件/etc/secruity/access.conf可控制用户登录地点,为了使用access.conf,必须在文件/etc/pam.d/login中加入下面的行:
account required /lib/security/pam-access.so
access.conf文件的格式:
permission : users : origins
其中,
permission:可以是+或-,表示允许或拒绝。
user:可以是用户名、用户组名,如果是all则表示所有用户 。
origins:登录地点。local表示本地,all表示所有地点,console表示控制台。另外,origins也可以是某一个网络。
后面两个域中加上 except是“除了”的意思。例如,除了用户 wheel, shutdown, sync禁止所有的控制台登录:
-:ALL EXCEPT wheel shutdown sync:console
root账户的登录地点不在access.conf文件中控制,而是由/etc/securetty文件控制。
6.限制用户每次所发邮件大小
Linux系统使用sendmail发送邮件,配置文件是/etc/sendmail.cf,默认使用TCP/IP协定。我们的Linux机器上往往会有多个用户同时工作,或者干脆就用它作为邮件服务器,在同一时刻,系统可能要收发很多邮件,因此不能让某一用户过多地占用sendmail的时间。sendmail的默认配置对每次收发邮件的大小没有限制,更改配置文件/etc/sendmail.cf,找到O MaxMessageSize,去掉行首的#号,并将其后的数值改为合适的数值,单位为字节。如:
O MaxMessageSize = 1048576
意思为每次收发邮件最大为1MB,任何超过这个值的邮件将被拒绝。
-
标签错误:<!-- #Label#
labelId=20160707140604
moduleId=1
classId=12231768634
orderby=2
fields=url,title,u_info
attribute=
datatypeId=22192428132
recordCount=3
pageSize=
<htmlTemplate><dt><img src="/images/index_26${index}.jpg" width="100" height="62" /><a href="$url" title="${title}">${title}</a><span>${api.left(u_info,60)}</span></dt></htmlTemplate>
-->
- 我要参加技术沙龙