來源:互聯網網民 2006-12-17 09:47:25
評論如何在 Linux 裏面限制用戶空間
如何在 Linux 裏面限制用戶空間 如何在 Linux 裏面限制用戶空間
如何在 Linux 裏面限制用戶空間
--------------------------------------------------------------------------------
大家有沒有用過 Netware 呢?還記不記得 Netware 提供的用戶空間限制,Sa 可以通過命令限制用戶可以使用的磁盤空間。同樣的功能 Linux 裏面也可以提供。具體的方法如下(注意以下的步驟是以發行版的 Linux 爲基礎,版本名爲 RedHat 5.1 ):
1、內核支持,Linux 的 Kernel 版本必要大于 1.3.8x 。如果使用的是 RedHat 5.1 或相似的發行版,內核中的 Quota 功能應該已經編譯進去了。
2、文件系統,Linux 的磁盤空間限制當然必須在 Linux 的 Ext2 格式的空間裏面存在了。
建議,如果想在關鍵服務器限制用戶的磁盤空間,最好爲要做磁盤空間限制的文件系統制作獨立的分區。如在我的機器裏面爲個人主頁用戶提供 10 兆的空間,而這些用戶又沒有必要 Telnet 到我的服務器上,這裏我就爲他們分配一個獨立的分區 hdb1 並把此分區挂在 /usr/local/homepages 裏面。
另外,在非 Root 分區上進行磁盤空間限制,可以免避因 Sa 操作失誤,導致系統無法啓動的故障(具體的原因見後)。
3、有了以上的准備後就要開始修改系統文件,啓動內核中的磁盤限制了。注意,以下的步驟如何出現了錯誤,可以會導至文件系統無法挂接,如果你對 Root 分區進行磁盤空間限制的話,則可能會導致系統無法啓動(這也就是爲什麽我建議您使用獨立分區進行磁盤空間限制試驗的原因)。所以請您一定要非常非常非常認真的查看,如果您有任何的問題,請您與我聯系。
※使用 vi 修改 /etc/fstab 使系統爲指定分區打開磁盤空間限制功能。
這是我原來的 /etc/fstab 的主要部分
/dev/hda5ext2defaults 1 1
/dev/hda6ext2defaults 1 1
這是修改後的內容
/dev/hda5ext2defaults 1 1
/dev/hda6ext2defaults,usrquota,grpquota1 1
注意到沒有,在 hda6 的配置中加入了 usrquota 和 grpquota 這兩個指令是意思是打開基于用戶的空間限制和基于組的空間限制。如果您只是需要使用基于用戶的空間限制的話,可以只使用 usrquota。同樣的如果您只是需要使用基于組的空間限制的話,則只需添加 grpquota 于 defaults 後即可。
注意不要輸錯了,不然系統會無法正常挂接相應的分區的。如果您使用非 Root 分區還好說,如果是使用 Root 來制作磁盤空間限制的話,就 !#$!$#@%。
※接下來就要在相應分區的根中生成 Quota Record File 了。方法爲:
我要進行磁盤空間限制的分區爲 /dev/hdb1 挂接在 /usr/local/homepages,則
cd /usr/local/homepages#進入 /dev/hdb1 的根
touch quota.user #生成零字節的用戶控制文件
touch quota.group#生成零字節的組控制文件
chmod 600 quota.user #設置只有 root 才可以讀些此文件
chmod 600 quota.group#同上
之後重新啓動 Linux 使 Kernel 可以開始相應分區的空間限制功能。
※重新啓動之後,就可以使用 edquota 命令來控制用戶所能訪問的空間了。如我要對 testuser1 所能使用的空間進行限制,則相應的命令及控制步驟爲:
edquota -u testuser1
執行此命令之後,edquota 將會啓動 vi 編輯器讓您編輯用戶所能使用的磁盤空間。vi 啓動之後將會顯示如下的信息:
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何在 Linux 裏面限制用戶空間
如何在 Linux 裏面限制用戶空間 如何在 Linux 裏面限制用戶空間
如何在 Linux 裏面限制用戶空間
--------------------------------------------------------------------------------
大家有沒有用過 Netware 呢?還記不記得 Netware 提供的用戶空間限制,Sa 可以通過命令限制用戶可以使用的磁盤空間。同樣的功能 Linux 裏面也可以提供。具體的方法如下(注意以下的步驟是以發行版的 Linux 爲基礎,版本名爲 RedHat 5.1 ):
1、內核支持,Linux 的 Kernel 版本必要大于 1.3.8x 。如果使用的是 RedHat 5.1 或相似的發行版,內核中的 Quota 功能應該已經編譯進去了。
2、文件系統,Linux 的磁盤空間限制當然必須在 Linux 的 Ext2 格式的空間裏面存在了。
建議,如果想在關鍵服務器限制用戶的磁盤空間,最好爲要做磁盤空間限制的文件系統制作獨立的分區。如在我的機器裏面爲個人主頁用戶提供 10 兆的空間,而這些用戶又沒有必要 Telnet 到我的服務器上,這裏我就爲他們分配一個獨立的分區 hdb1 並把此分區挂在 /usr/local/homepages 裏面。
另外,在非 Root 分區上進行磁盤空間限制,可以免避因 Sa 操作失誤,導致系統無法啓動的故障(具體的原因見後)。
3、有了以上的准備後就要開始修改系統文件,啓動內核中的磁盤限制了。注意,以下的步驟如何出現了錯誤,可以會導至文件系統無法挂接,如果你對 Root 分區進行磁盤空間限制的話,則可能會導致系統無法啓動(這也就是爲什麽我建議您使用獨立分區進行磁盤空間限制試驗的原因)。所以請您一定要非常非常非常認真的查看,如果您有任何的問題,請您與我聯系。
※ 使用 vi 修改 /etc/fstab 使系統爲指定分區打開磁盤空間限制功能。
這是我原來的 /etc/fstab 的主要部分
/dev/hda5 ext2 defaults 1 1
/dev/hda6 ext2 defaults 1 1
這是修改後的內容
/dev/hda5 ext2 defaults 1 1
/dev/hda6 ext2 defaults,usrquota,grpquota 1 1
注意到沒有,在 hda6 的配置中加入了 usrquota 和 grpquota 這兩個指令是意思是打開基于用戶的空間限制和基于組的空間限制。如果您只是需要使用基于用戶的空間限制的話,可以只使用 usrquota。同樣的如果您只是需要使用基于組的空間限制的話,則只需添加 grpquota 于 defaults 後即可。
注意不要輸錯了,不然系統會無法正常挂接相應的分區的。如果您使用非 Root 分區還好說,如果是使用 Root 來制作磁盤空間限制的話,就 !#$!$#@%。
※ 接下來就要在相應分區的根中生成 Quota Record File 了。方法爲:
我要進行磁盤空間限制的分區爲 /dev/hdb1 挂接在 /usr/local/homepages,則
cd /usr/local/homepages #進入 /dev/hdb1 的根
touch quota.user #生成零字節的用戶控制文件
touch quota.group #生成零字節的組控制文件
chmod 600 quota.user #設置只有 root 才可以讀些此文件
chmod 600 quota.group #同上
之後重新啓動 Linux 使 Kernel 可以開始相應分區的空間限制功能。
※ 重新啓動之後,就可以使用 edquota 命令來控制用戶所能訪問的空間了。如我要對 testuser1 所能使用的空間進行限制,則相應的命令及控制步驟爲:
edquota -u testuser1
執行此命令之後,edquota 將會啓動 vi 編輯器讓您編輯用戶所能使用的磁盤空間。vi 啓動之後將會顯示如下的信息: