【Linux】-- 進階檔案系統管理,linux系統管理
這是本人第一次寫部落格,若有什麼錯誤的地方或者不對的地方,還請各位不吝賜教!!!
一、磁碟配額的概念
由於Linux是一個多使用者管理的作業系統,而Linux預設情況下並不限制每個使用者使用磁碟空間的大小,假如某個使用者疏忽或者惡意佔滿磁碟空間,將導致系統磁碟無法寫入甚至崩潰;為了保證系統磁碟的有足夠的剩餘空間,我們需要對使用者和組進行磁碟空間使用限制。
磁碟配額限制類型:
1. 限制使用者和組對磁碟空間的使用量
2. 限制使用者和組在磁碟內建立檔案的個數
磁碟配額限制層級:
註:磁碟配額是針對分區進行設定的,無法實現“某使用者在系統中共計只能使用50MB磁碟空間”只能設定某使用者在/home分區能使用30M這樣的限制。切記:磁碟配額是針對分區的!
二、磁碟配額開啟條件
核心是否支援磁碟配額?
#grep "CONFIG_QUOTA" /boot/config-2.6.32-431.el6.x86_64
磁碟配額相關命令是否安裝?
#rpm –q quota
三、磁碟配額實驗規劃
準備足夠大小的分區,要遠大於實驗的需求空間
建立實驗使用者和組
使用者:cj、bd、xz、
組:thot
磁碟配額規劃
thot:硬:500M 軟:450M 檔案數不限制
cj: 硬:50M 軟:40M 硬:10個 軟:8個
bd: 硬:250M 軟:200M 檔案數不限制
xz: 硬:250M 軟:200M 檔案數不限制
寬限天數修改為8天
四、磁碟配額實驗流程
#grep "CONFIG_QUOTA" /boot/config-2.6.32-431.el6.x86_64
2. 查看分區的掛載屬性是否滿足
dumpe2fs –h /dev/sdb1 | grep "Default mount options"
查看結果中是否包含usrquota、grpquota兩個掛載屬性?
如果沒有兩個掛載屬性,則需要重新掛載並添加兩個屬性,並寫入自動掛載
3. 建立分區、使用者、使用者組
分區大小要遠大於實驗要求大小,避免影響實驗結果
使用者:cj、bd、xz
組:thot
註:建立使用者時,指定thot為初始組
4. 產生使用者和組的設定檔
quotacheck 選項 分區名
-a 掃描/etc/mtab檔案中所有啟用磁碟配額功能的分區。如果加入此參數,命令後面就不需要加入分區名了
-u 建立使用者配額的設定檔,即產生aquota.user
-g 建立組配額的設定檔,即aquota.group
-v 顯示掃描過程
-c 清除原有的設定檔,重建立立新的設定檔
註:若報錯沒有許可權組建檔案,則需要關閉SELinux
5. 編輯設定檔、設定指定限制大小
edquota 選項 使用者名稱或組名
-u 使用者名稱
-g 組名
-t 設定寬限時間
-p 複製磁碟配額規則,不需要每一個使用者或者組都手動設定一遍
# edquota -p 模板使用者 -u 目標使用者
註:設定檔中所寫大小預設單位KB
6. 啟動和關閉磁碟配額
啟動:
quotaon 選項 分區名
-a 根據/etc/mtab檔案啟動所有分區的磁碟配額(不寫分區名)
-u 啟動使用者的磁碟配額
-g 啟動組的磁碟配額
-v 顯示啟動過程資訊
關閉:
quotaoff 選項 分區名
-a 根據/etc/mtab檔案關閉所有分區的磁碟配額(不寫分區名)
-u 關閉使用者的磁碟配額
-g 關閉組的磁碟配額
-v 顯示啟動過程資訊
7. 查看磁碟配額的資訊
查詢指定使用者和組的配額:
quota 選項 使用者或組名
-u 使用者名稱
-g 組名
-v 顯示詳細資料
-s 以常見單位顯示大小
8. 查詢指定分區的磁碟配額:
repquota 選項 分區名
-u 查詢使用者配額
-g 查詢組配額
-v 顯示詳情
-s 以常見單位顯示
9. 驗證磁碟配額是否生效
切換到執行使用者,以預設使用者身份進行檔案建立(su)
測試載入器:
dd 產生指定大小的檔案(dd命令詳解見附件)
dd if=/dev/zero of=/分區名/testfile bs=1M count=60
注意:使用者的測試需要切換到指定使用者身份,而組磁碟配額的驗證需要?
10. 非互動設定磁碟配額
setquota -u 使用者名稱 軟(容) 硬(容) 軟(數) 硬(數) 分區名
註:同樣,這樣的非互動命令更適合寫入指令碼,而且,假如有很多使用者的磁碟配額配置相同也可以用複製來實現。