RedHat Linux是眾多Linux發行版本中較流行的一個。這裡結合筆者的使用經驗談談在RedHat Linux下的用戶管理。筆者使用的是RedHat 5.1發行版,核心版本2.2.11,如不作特別說明,下面的操作都是在root 賬戶下完成的。
為普通用戶和用戶組加入磁盤配額限制
Linux的quota程序允許為系統上每一用戶或用戶組指定所能使用的磁盤配額。目前quota僅能工作在ext2類型的文件系統上。使用quota需要確定以下兩點:
1當前的系統核心支持quota。
2系統已正確安裝quota程序包。
如果你當前的系統核心不支持quota,請重新編譯你的核心,當系統提示:
Quota support(CONFIG—QUOTA)[n]
回答y ,生成新的系統核心。
如果沒有quota程序包,請到以下地址下載quota的源程序並編譯之。
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz
一般Linux的發行版本的核心都缺省包含了quota支持,也附帶了quota 程序包,只需安裝quota 並加以設置便可讓quota工作。
quota的具體設置步驟:
1.編輯系統初始腳本(RedHat是/etc/rc.d/rc.sysinit,別的發行版可能有所不同)讓它檢查quota並激活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
在RedHat 5.1版的/etc/rc.d/rc.sysinit文件中已包含了以上語句,請檢查你自己的系統初始腳本文件,沒有就加上。注意必須讓其在/etc/fstab。
2.編輯 /etc/fstab。你的 /etc/fstab 文件可能會是這樣的:
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /home ext2 defaults 1 1
選擇用戶所在分區所在行的第四個域,為用戶加入 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變量設置而定),將如下三行:
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:用戶現有文件的大小。
這兩項都是系統自動給出,不必改動。
軟限制(soft limits)
通常設置軟限制為一接近硬限制的值,超越此限制時,系統將警告用戶將到達最大磁盤配額限制。軟限制為0 時沒有軟限制。結合寬限期使用時,只要用戶超越了軟限制,一過寬限期,任何對磁盤空間的額外需求將被立即拒絕。
硬限制(hard limits)
磁盤配額的絕對限制,設置了quota的用戶不能超越此限制。
寬限期(Grace Period)
寬限期是用戶超越了軟限制而沒有到達硬限制時的一段放寬期,在這段時間內,用戶可以在硬限制范圍內自由地使用磁盤空間,超過這段時間,所有對磁盤空間的額外需求將被拒絕,即使用戶還在硬限制之內。寬限期的單位可以是秒、分、時、天。執行edquota -t命令設置寬限期。執行該命令後,將系統提示中的兩個0 days 改成你認為合適的值即可。
有時想給一批用戶加上同樣的限制,比方說,給系統上所有100個用戶加上與bob同樣的限制,可手工先給bob加上限制,然後執行下面命令:
edquota -p bob ′awk -F: ′$3 > 499 {print $1}′/etc/passwd′
給用戶組設置磁盤配額限制與普通用戶類似,假設有一用戶組game,執行 edquota -g game即可。
控制用戶的登錄地點
文件/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文件控制,具體作法一看便知。
限制用戶每次所發郵件大小
Linux系統使用sendmail發送郵件,配置文件是/etc/sendmail.cf,缺省使用TCP/IP協議。我們的Linux機器上往往會有多個用戶同時工作,或者干脆就用它作郵件服務器,在同一時刻,系統可能要收發很多郵件,因此不能讓某一用戶過多地占用sendmail的時間。sendmail的缺省配置對每次收發郵件的大小沒有限制,更改配置文件/etc/sendmail.cf,找到O MaxMessageSize,去掉行首的#號,並將其後的數值改為一合適的數值,單位為字節。如:
O MaxMessageSize = 1048576
意為每次收發郵件最大為1MB,任何超過這個值的郵件將被拒絕。