帳號與磁碟空間管理 <ul><li>巨匠電腦  葉建榮整理 [email_address] </li></ul>
大綱 <ul><li>帳號簡介 </li></ul><ul><li>建立使用者帳號 </li></ul><ul><li>管理者帳號 </li></ul><ul><li>停用與移除使用者帳號 </li></ul><ul><li>自訂群組 </li...
前言 <ul><li>Linux  屬於多人多工的作業系統 ,  可讓不同的使用者從本地端登入。在網路上則允許使用者利用  telnet 、 ssh  等方式從遠端登入。無論是從本機或由遠端登入 ,  使用者都必須在該台主機上擁有帳號才行。 <...
帳號簡介 <ul><li>雖然  Linux  是一個多人多工的系統 ,  但並不是所有人都可以隨意進入系統!想要使用  Linux  的使用者 ,  必須先取得一個合法的 使用者帳號 。以下我們先來認識一下帳號的功能 ,  及系統管理者帳號與...
為何要建立使用者帳號 <ul><li>在安裝  Linux  的過程中 ,  安裝程式預設便會建立一個系統管理者帳號 ,  並在第一次啟動  Linux  時 ,  詢問您是否要新增其他帳號。建立一個以上的帳號可以幫助您更有效地管理系統: </...
為何要建立使用者帳號 <ul><li>資源共享 ,  不互相干擾 :由於  Linux  是允許多人共用的作業系統 ,  因此透過使用者帳號 ,  系統可以為使用者分別儲存個人的環境設定。讓每個使用者共同使用一部電腦時 ,  仍然可以依照自己的...
系統管理者帳號與一般   使用者帳號的差別 <ul><li>Linux  中的帳號主要分成  2  類 ,  系統管理者帳號 與 一般使用者帳號 。系統管理者的帳號名稱為  root,  具有對系統完全的控制權 ,  可以對系統做任何的設定及修...
系統管理者帳號與一般 使用者帳號的差別
建立使用者帳號 <ul><li>建立使用者帳號有許多種方法 ,  不管是要一次建立一個帳號 ,  或是想要一次建多個帳號 ,  本節都會告訴您如何操作。 </li></ul>
使用  useradd  指令建立帳號 <ul><li>在  Linux  中 ,  執行  useradd  指令 ,  可建立新的使用者帳號: </li></ul>
使用  useradd  指令建立帳號 <ul><li>在一個系統當中 ,  使用者的帳號名稱必須是唯一的 ,  假若要建立的帳號先被他人所佔用 ,  則會出現使用者已存在的訊息: </li></ul><ul><li>要解決使用者帳號的管理問題...
使用  useradd  指令建立帳號 <ul><li>管理者自己根據使用者的帳號來建立一份資料庫 ,  爾後在新增使用者之前 ,  都可利用資料庫先查詢帳號存在與否。 </li></ul><ul><li>檢查  /etc  目錄下的  pas...
編輯  passwd  與  shadow  檔案來 建立帳號 <ul><li>使用  useradd   指令所建立的帳號 ,  實際上是儲存在  /etc  目錄下的  passwd  和  shadow  檔案中 ,  因此修改這  2 ...
passwd  檔案的內容格式 <ul><li>在開始編輯檔案的內容之前 ,  我們需先瞭解  /etc/passwd  檔案的內容格式: </li></ul>
passwd  檔案的內容格式 <ul><li>每個使用者帳號在  passwd  檔案中都有  7  個欄位 ,  由左到右分別用冒號  (:)  隔開 ,  分別說明如下: </li></ul><ul><ul><li>帳號名稱 : </li...
passwd  檔案的內容格式 <ul><ul><li>使用者密碼 : </li></ul></ul><ul><ul><li>本來是一串看似亂碼的編碼字串 ,  啟    用投影密碼之後 ,  只剩一個 “ x”  字   元 ,  密碼編碼字...
passwd  檔案的內容格式 <ul><ul><li>使用者識別碼  (UID, User ID) : </li></ul></ul><ul><ul><li>系統使用  UID  來判別使用者 ,  故必須是唯一的號碼。編號  0  是  r...
passwd  檔案的內容格式 <ul><ul><li>群組識別碼  (GID, Group ID) : </li></ul></ul><ul><ul><li>每個帳號皆屬於某一群組 ,  而每個群組也都有一個唯一的  GID  號碼供系統識別...
passwd  檔案的內容格式 <ul><ul><li>使用者家目錄 : </li></ul></ul><ul><ul><li>每個使用者的家目錄 ,  通常預設的目錄名稱和使用者帳號相同 ,  方便管理者識別 ,  必要時亦可採用與帳號不一樣...
passwd  檔案的內容格式 <ul><li>在預設情況下 ,  任何使用者都可以讀取  /etc/passwd  檔案 ,  我們用   ls   指令來查看: </li></ul><ul><li>/etc/passwd  檔預設的權限是 ...
passwd  檔案的內容格式 <ul><li>以下示範更改  passwd  檔權限前後的差別。假設使用者  tony  登入系統 ,  並執行  ls  指令: </li></ul><ul><li>若管理者把  passwd  檔的權限更改...
passwd  檔案的內容格式 <ul><li>不僅提示符號前的帳號名稱變成  &quot;I have no name ! &quot;,  檔案擁有者的名稱也變成了識別碼  500  了!所以我們不應限制  passwd  的讀取權限 , ...
shadow  檔案的內容格式 <ul><li>由於  passwd  檔案並不安全 ,  因此在安裝  Linux  時 ,  系統內定會啟動投影密碼的功能。每當我們用  useradd  指令建立使用者帳號 ,  系統不僅更動  passw...
shadow  檔案的內容格式
shadow  檔案的內容格式 <ul><li>每個帳號在  shadow  檔案中都有  9  個欄位 ,  分別用  8  個冒號  (:)  隔開 ,  以下依欄位分別說明: </li></ul><ul><ul><li>帳號名稱 : </...
shadow  檔案的內容格式 <ul><ul><li>使用者密碼 : </li></ul></ul><ul><ul><li>此欄位中看起來好像一堆亂碼的字串 ,  其實這是編碼後的使用者密碼。若該帳號的密碼被取消了 ,  則此欄為空白。系統預...
shadow  檔案的內容格式 <ul><ul><li>密碼最後變動的時間 : </li></ul></ul><ul><ul><li>更改過密碼後 ,  系統會記錄最後變動的時間。此處的時間是從西元  1970  年  01  月  01  日...
shadow  檔案的內容格式 <ul><ul><li>密碼變動過後 ,  距離下次一定要更改密碼的日數 :為求安全起見 ,  管理者也能要求使用者每隔幾天就需要更換密碼。輸入  90  代表距上次更改密碼  90  天後 ,  使用者就必須換...
shadow  檔案的內容格式 <ul><ul><li>離下次密碼必須變動日期前多少日 ,  就開始警告使 </li></ul></ul><ul><ul><li>用者 : </li></ul></ul><ul><ul><li>假設超過必須變換的...
shadow  檔案的內容格式 <ul><ul><li>超過密碼必須變動日期後多少日 ,  </li></ul></ul><ul><ul><li>就將該帳號停權 : </li></ul></ul><ul><ul><li>為避免使用者遲遲不肯更換...
shadow  檔案的內容格式 <ul><ul><li>帳號的使用期限 : </li></ul></ul><ul><ul><li>每個帳號都可以設定使用期限 ,  超過期限後帳號便無法繼續使用。此處的時間也是從西元  1970  年  01  ...
關閉、啟動投影密碼 <ul><li>若要關閉投影密碼功能 ,  可執行  pwunconv  指令 ,  將使用者的密碼從  shadow  檔寫回 passwd  檔。若要再啟動 ,  則執行  pwconv  指令。 </li></ul>
useradd  指令新增帳號時的 基本設定 <ul><li>當使用  useradd  指令新增帳號時 ,  系統會自動將  /etc/skel  目錄下所有檔案複製到使用者的家目錄內。 </li></ul><ul><li>那麼 ,  use...
useradd  指令新增帳號時的 基本設定 <ul><li>這些設定都紀錄在  /etc/login.defs  檔案中 ,  其內容如右: </li></ul>
useradd  指令新增帳號時的 基本設定 <ul><li>在  /etc/default/useradd  檔案中也有家目錄位置、使用者環境、樣板目錄 ... 等預設值設定: </li></ul><ul><li>只要修改上述兩個檔案中的設定...
管理者帳號 <ul><li>安裝  Linux  之後 ,  系統預設即建立了  root  帳號。此帳號為系統管理者 ,  對系統擁有完全的控制權 ,  可對系統做任何設定和修改  ( 甚至摧毀整個系統 ),  所以維護  root  帳號的...
設定  root  帳號之密碼 <ul><li>在安裝  Linux  過程中 ,  即要求安裝者為  root  帳號設定密碼。管理者可於日後更改或甚至取消密碼。不過除非整個  Linux  系統只有自己使用 ,  否則強烈建議替  root...
設定  root  帳號之密碼 <ul><li>擁有  root  帳號的系統管理者除了設定密碼之外 ,  建議先替自己建立一個一般使用者的帳號 ,  供日常作業使用 ,  如此可避免因作業疏失而影響整個系統。最好等到系統需要維護時 ,  再使...
切換帳號、變換身份 <ul><li>在文字模式下 ,  當管理者使用一般帳號登入系統 ,  隨後想要轉變成管理者身份 ,  進行系統的相關設定時 ,  並不需要重新登入 ,  只要執行   su  指令並輸入  root  帳號的密碼 ,  則...
切換帳號、變換身份 <ul><li>這樣只是將登入的身份轉變為  root,  但諸如檔案路徑之類的環境變數仍然是原登入帳號  tony  的 ,  例如直接在提示符號下執行  shutdown   指令 ,  則會找不到指令 ,  必須輸入完...
切換帳號、變換身份 <ul><li>若是想要變換身份時 ,  同時更改環境變數 ,  則必須執行  su -   指令: </li></ul>
切換帳號、變換身份 <ul><li>倘若要切換成其他使用者 ,  請在  su -   指令後加上該使用者的帳號: </li></ul>
只允許  root  登入的維護模式 <ul><li>如果希望這台電腦除了  root  帳號之外 ,  其他帳號都不得登入時 ,  可在  /etc  目錄中執行  touch nologin   指令 ,  產生一個檔名為  nologin...
只允許  root  登入的維護模式 <ul><li>這種狀況通常用於管理者要維護系統時。若要再度恢復使用者登入 ,  則只要將  nologin  檔刪除即可 。 </li></ul>
停用與移除使用者帳號 <ul><li>當使用者畢業、離職或是逾期不繳費時 ,  我們可以考慮停用或是刪除使用者帳號 ,  以避免這些使用者繼續登入系統。 </li></ul>
停用帳號 <ul><li>將帳號停用的意思是暫時不允許使用者登入系統 ,  但仍然保留其資料。我們可編輯  /etc/passwd  檔案 ,  將該使用者的密碼欄位由  &quot;x&quot;  字元改為  &quot;*&quot;  ...
刪除帳號 <ul><li>當確定使用者已不再需要使用本系統 ,  或是列為拒絕往來戶時 ,  可考慮將該帳號完全刪除。 </li></ul><ul><li>刪除帳號前要注意 ,  使用者是否仍有程式在系統上執行 ,  或是設定排程程式在固定時間...
刪除背景執行程式 <ul><li>在刪除帳號前 ,  為了避免使用者還有程式遺留在系統中 ,  請執行下列指令檢查背景執行的程式 ,  並把在背景中執行的程式刪除  ( 在以刪除  silent  使用者帳號為範例 )  : </li></ul...
刪除背景執行程式 <ul><li>要刪除這些程式 ,  可執行   kill   指令 : </li></ul>
刪除排程工作 <ul><li>還有一點相當重要 ,  就是要將使用者所設定的排程工作移除。在  Linux  系統中 ,  使用者可以自行設定排程工作 ,  時間一到就自動執行某些指令。這些排程工作所執行的指令 ,  有的或許會影響系統之安全與...
刪除排程工作 <ul><li>當發現使用者自行設定的排程工作還在系統中時 ,  直接執行  crontab –u silent -r   指令 ,  便能刪除該使用者的排程設定檔案。 </li></ul>
刪除使用者的帳號與檔案 <ul><li>確定該使用者已經沒有在背景執行的程式、排程工作之後 ,  最後我們要刪除使用者的帳號。在刪掉帳號前要先考慮到除了家目錄外 ,  使用者的檔案也可能散落在系統內其他的目錄  ( 如  /tmp  和  /v...
刪除使用者的帳號與檔案 <ul><li>在清除了使用者所有可能留在系統中的檔案 ,  最後就可以放心地刪除使用者帳號了。我們使用   userdel  指令可以很方便地將使用者刪除: </li></ul><ul><li>此指令可以加上參數  &...
刪除使用者的帳號與檔案 <ul><li>當然我們亦可直接編輯  passwd  和  shadow  檔案 ,  直接將帳號刪除 ,  並請記得隨後馬上刪除該帳號之家目錄與郵件檔案。 </li></ul>
自訂群組 <ul><li>您可以讓每個使用者都擁有自己專屬的群組 ,  也能將新增的使用者統一編入一般使用者的  users  群組。 </li></ul><ul><li>實際上我們可依不同的性質自行建立群組 ,  例如 staff  與  s...
group  檔的內容格式 <ul><li>系統除了  root  帳號的  root  群組 ,  及一般使用者的  users  群組之外 ,  還有許多其他的群組 ,  詳細內容都記錄在  /etc/group  檔案中: </li></ul>
group  檔的內容格式 <ul><li>檔案內的每一筆記錄可分為  4  個欄位 ,  由左到右分別用冒號  (:)  隔開: </li></ul><ul><ul><li>群組名稱 :例如  root 、 users 、 bin 、 ton...
group  檔的內容格式 <ul><ul><li>使用者帳號 :隸屬此群組的使用者帳號 ,  一個使用者可同時隸屬於多個群組。一般自建群組的這一欄通常為空白 ,  表示該群組的使用者是定義在  /etc/passwd  檔中。 </li></...
建立群組 <ul><li>建立群組的方法和建立帳號幾乎相同 ,  且過程更簡單。我們可執行   groupadd  指令來建立群組。例如要建立  GID  編號  700,  名稱為  staff  的群組: </li></ul>
建立群組 <ul><li>參數  -g  用來指定群組識別碼 , 0 〜 499  請保留給系統使用。若省略此參數 ,  則系統會自動指定  GID,  從目前最大編號的下一號開始 ,  使用尚未用掉的號碼。 </li></ul>
變更所隸屬之群組 <ul><li>若要更動已存在的使用者帳號所隸屬的群組 ,  可直接編輯  passwd  檔案。接著用  chown   指令 ,  改變使用者家目錄及檔案所隸屬的群組: </li></ul>
刪除群組 <ul><li>當不再需要某一個群組時 ,  可執行  groupdel  指令刪除群組  ( 要刪除某個群組前 ,  請記得執行  find / -group   群組名稱 指令 ,  檢查系統中隸屬於該群組的目錄及檔案 ,  並利...
使用者磁碟空間管理 <ul><li>由於  Linux  是多使用者的作業環境 ,  假若任由每個使用者存放檔案而沒有限制 ,  磁碟空間將迅速消耗 ,  很快地便會不敷使用。 Quota  的功能 ,  就是限制使用者可運用的磁碟空間。 </...
1. 編輯  fstab  檔案 <ul><li>請用文書編輯程式開啟  /etc/fstab  檔案 ,  其內容類似下面這樣: </li></ul>
1. 編輯  fstab  檔案 <ul><li>編輯  ext3  檔案系統所在分割區  ( 或其他要限制磁碟空間的磁碟 )  的設定 ,  加上  usrquota (user quota) 、 grpquota (group quota)...
<ul><li>由於  Quota  的作用範圍是以分割區為單位 ,  所以在實作磁碟分割限制時 ,  應該要先計畫好要限制的範圍及目標 ,  並依需求分割硬碟再為該分割區設定  Quota 。 </li></ul><ul><li>舉例來說 ,...
善用  Quota  磁碟空間限制 <ul><li>如果您只有  &quot;/&quot;  一個分割區 ,  那麼針對  &quot;/&quot;  分割區設定磁碟限制時 ,  使用者所有使用的空間都包含在此限制內。例如  tony  帳...
善用  Quota  磁碟空間限制 <ul><li>同理 ,  提供網頁服務的  W W W  主機 ,  若要單獨限制個人網頁空間 ,  也應該將放置個人網頁的目錄掛載於獨立的硬碟分割區。 </li></ul><ul><li>此外 ,  一般...
2. 產生設定檔 <ul><li>修改好  fstab  檔後 ,  請您先在系統根目錄  /  下執行  touch aquota.user   與  touch aquota.group   指令 ,  自行建立  aquota.user ...
2. 產生設定檔 <ul><li>常用於  quotacheck  指令的參數說明: </li></ul><ul><ul><li>- a :掃描  fstab  檔案中 ,  所有已加入  quota  設定的分割區。 </li></ul></...
2. 產生設定檔 <ul><ul><li>-m :強制執行指令。 </li></ul></ul><ul><ul><li>-c :不讀取已存在的  aquota  資料庫 ,  重新掃描硬碟並儲存。 </li></ul></ul><ul><li>...
3.  使用  edquota    編輯磁碟限制 <ul><li>edquota  指令可分別編輯使用者與群組的磁碟空間限制 ,  以下我們分別討論。 </li></ul>
編輯使用者的磁碟限制 <ul><li>請以  root  帳號執行  edquota lambert   或  edquota -u lambert   指令 ,  系統會啟動  vim  編輯程式 ,  以設定  lambert  帳號的空間...
編輯使用者的磁碟限制 <ul><li>預設  soft (soft limit) = 0, hard (hard limit) = 0,  表示沒有上限 ,  可以用到整個磁碟爆滿。 </li></ul><ul><li>因為每個檔案都需要使用一...
soft l imit  與  hard limit <ul><li>如果我們打算分配給每位使用者  10MB  容量以及  500  個檔案的儲存空間 ,  那麼這些使用者就只能用到  10MB  或  500  個檔案佔滿為止 ,  超過限...
soft l imit  與  hard limit <ul><li>檔案數量限制也是相同的道理 ,  把  soft limit  設成  500  個 ,  而  hard limit  訂在  550  個 ,  表示使用者存放超過  5...
soft l imit  與  hard limit <ul><li>若超過  soft limit,  使用者卻置之不理 ,  且無視於系統的警告 ,  則當時間超過寬限期時 ,  使用者即使尚未到達  hard limit,  也會無法儲存...
編輯使用者的磁碟限制 <ul><li>瞭解  soft limit  與  hard limit  的關係之後 ,  我們就可以為使用者設定磁碟的容量限制與  inode  的數量了: </li></ul>
編輯使用者的磁碟限制 <ul><li>修改完畢請記得存檔離開。如此就設定完成一個使用者的的磁碟限制了。您可用同樣的方法設定其他的使用者。如果不想一個一個設定 ,  也可以用一個已經設定好的使用者磁碟限制為範本 ,  使用  edquota -p...
實務經驗談 <ul><li>假如您的使用者家目錄不是在  /home,  例如是在  /home/department/  下 ,  則需先切換到該目錄 ,  否則會告訴您找不到使用者。另外如果  /home  目錄下有不屬於使用者的目錄 , ...
編輯使用者的磁碟限制 <ul><li>若指定要套用給某個特定的帳號 ,  則不需切換到  /home  目錄 ,  可直接如下操作: </li></ul>
編輯群組的磁碟限制 <ul><li>由於每個使用者都有所屬的群組 ,  因此我們也可以為群組設定磁碟限制。但設定群組的限制時 ,  最好先計算一下整個群組會有多少個使用者 ,  及每個使用者的磁碟空間各為多少 ,  以免整個群組的磁碟空間反而比...
編輯群組的磁碟限制 <ul><li>例如一個使用者的  soft limit  為  10000,  而一個群組中有  10  人 ,  那麼此群組的  soft limit  就至少該有  10000*10 。但  hard limit  不...
編輯群組的磁碟限制 <ul><li>當設定完一個群組之後 ,  則可執行  edquota -gp group1 group2   指令 ,  將  group1  的設定套用在  group2  上。 </li></ul>
設定超過  soft limit  的 寬限期 <ul><li>雖然當使用者超過  soft limit  時 ,  系統會發出警告 ,  但總要有個期限的規定 ,  因此我們必須設定寬限期  (grace time),  要求使用者在指定的期...
設定超過  soft limit  的 寬限期 <ul><li>或加入參數 “ g”  調整群組的寬限期: </li></ul><ul><li>當執行後 ,  會顯示下面的內容: </li></ul>
設定超過  soft limit  的 寬限期 <ul><li>修改寬限期並不追朔既往 ,  例如使用者  lambert  的寬限期原本還剩  6  天 ,  就算我們把寬限期縮短成  1  天 , lambert  這次的期限依舊是  6 ...
4.  取消與啟動磁碟限制 <ul><li>要取消磁碟空間的限制 ,  執行  quotaoff -avug   指令即可: </li></ul><ul><li>若要再啟動磁碟空間限制 ,  必須執行  quotaon -avug   指令: ...
檢查是否超過磁碟限制 <ul><li>一般的使用者執行  quota -v  指令 ,  可得知自己有無超過限制: </li></ul>
檢查是否超過磁碟限制 <ul><li>系統管理者若需檢查所有群組及使用者的磁碟限制 ,  可使用   repquota -a   或  repquota -au   指令  (report quota)  檢查所有使用者、 repquota -...
5.  檢查是否超過磁碟限制
5.  檢查是否超過磁碟限制 <ul><li>管理者用這個指令就可將整個系統佔用的磁碟空間全部顯示出來 ,  任何群組及使用者都無所遁形! </li></ul>
Upcoming SlideShare
Loading in...5
×

Linux2帳號與磁碟空間管理

1,372

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,372
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Linux2帳號與磁碟空間管理

  1. 1. 帳號與磁碟空間管理 <ul><li>巨匠電腦 葉建榮整理 [email_address] </li></ul>
  2. 2. 大綱 <ul><li>帳號簡介 </li></ul><ul><li>建立使用者帳號 </li></ul><ul><li>管理者帳號 </li></ul><ul><li>停用與移除使用者帳號 </li></ul><ul><li>自訂群組 </li></ul><ul><li>使用者磁碟空間管理 </li></ul>
  3. 3. 前言 <ul><li>Linux 屬於多人多工的作業系統 , 可讓不同的使用者從本地端登入。在網路上則允許使用者利用 telnet 、 ssh 等方式從遠端登入。無論是從本機或由遠端登入 , 使用者都必須在該台主機上擁有帳號才行。 </li></ul><ul><li>將介紹系統的管理者與一般使用者的帳號 , 以及使用者的群組。另外還可為每個帳號設定磁碟空間的限制 , 以避免使用者任意堆放過多的檔案。 </li></ul>
  4. 4. 帳號簡介 <ul><li>雖然 Linux 是一個多人多工的系統 , 但並不是所有人都可以隨意進入系統!想要使用 Linux 的使用者 , 必須先取得一個合法的 使用者帳號 。以下我們先來認識一下帳號的功能 , 及系統管理者帳號與一般使用者帳號間的差別。 </li></ul>
  5. 5. 為何要建立使用者帳號 <ul><li>在安裝 Linux 的過程中 , 安裝程式預設便會建立一個系統管理者帳號 , 並在第一次啟動 Linux 時 , 詢問您是否要新增其他帳號。建立一個以上的帳號可以幫助您更有效地管理系統: </li></ul><ul><li>掌控使用者身份 :要擁有帳號的使用者才可以登入系統。而帳號的申請、建立 , 則必須透過系統管理者。藉由這樣的機制 , 管理者便可以確實掌控得以進入系統的使用者身份。 </li></ul>
  6. 6. 為何要建立使用者帳號 <ul><li>資源共享 , 不互相干擾 :由於 Linux 是允許多人共用的作業系統 , 因此透過使用者帳號 , 系統可以為使用者分別儲存個人的環境設定。讓每個使用者共同使用一部電腦時 , 仍然可以依照自己的喜好、習慣工作 , 不會互相干擾。 </li></ul><ul><li>權限管制 , 維護系統安全 :系統的管理者可以考量每個使用者的工作需要 , 及系統運作狀況 , 給予不同的操作權限 , 讓系統保持在最佳狀態運作。 </li></ul>
  7. 7. 系統管理者帳號與一般 使用者帳號的差別 <ul><li>Linux 中的帳號主要分成 2 類 , 系統管理者帳號 與 一般使用者帳號 。系統管理者的帳號名稱為 root, 具有對系統完全的控制權 , 可以對系統做任何的設定及修改 , 當然也可以決定哪些使用者可以進入系統 , 並設定所有帳號的權限。以下我們就來看看這 2 類帳號的主要差異: </li></ul>
  8. 8. 系統管理者帳號與一般 使用者帳號的差別
  9. 9. 建立使用者帳號 <ul><li>建立使用者帳號有許多種方法 , 不管是要一次建立一個帳號 , 或是想要一次建多個帳號 , 本節都會告訴您如何操作。 </li></ul>
  10. 10. 使用 useradd 指令建立帳號 <ul><li>在 Linux 中 , 執行 useradd 指令 , 可建立新的使用者帳號: </li></ul>
  11. 11. 使用 useradd 指令建立帳號 <ul><li>在一個系統當中 , 使用者的帳號名稱必須是唯一的 , 假若要建立的帳號先被他人所佔用 , 則會出現使用者已存在的訊息: </li></ul><ul><li>要解決使用者帳號的管理問題 , 一般來說有 3 種方法: </li></ul>
  12. 12. 使用 useradd 指令建立帳號 <ul><li>管理者自己根據使用者的帳號來建立一份資料庫 , 爾後在新增使用者之前 , 都可利用資料庫先查詢帳號存在與否。 </li></ul><ul><li>檢查 /etc 目錄下的 passwd 檔案 , 該檔內含本系統所有使用者的帳號 , 管理者可確認帳號是否已經存在。 </li></ul><ul><li>執行 finger 帳號指令 , 看看該帳號是否存在。 </li></ul>
  13. 13. 編輯 passwd 與 shadow 檔案來 建立帳號 <ul><li>使用 useradd 指令所建立的帳號 , 實際上是儲存在 /etc 目錄下的 passwd 和 shadow 檔案中 , 因此修改這 2 個檔案也能夠新增使用者帳號。 </li></ul>
  14. 14. passwd 檔案的內容格式 <ul><li>在開始編輯檔案的內容之前 , 我們需先瞭解 /etc/passwd 檔案的內容格式: </li></ul>
  15. 15. passwd 檔案的內容格式 <ul><li>每個使用者帳號在 passwd 檔案中都有 7 個欄位 , 由左到右分別用冒號 (:) 隔開 , 分別說明如下: </li></ul><ul><ul><li>帳號名稱 : </li></ul></ul><ul><ul><li>此欄位為帳號名稱。 passwd 檔的前 面是系統內建帳號 ( 如 root 帳號 ) 或 常駐服務使用的帳號 ( 如 adm) 。一 般使用者的帳號放在後面 , 且其第 3 個欄位的號碼 ( 使用者識別碼 ) 預設 是由 500 開始向上遞增。 </li></ul></ul>
  16. 16. passwd 檔案的內容格式 <ul><ul><li>使用者密碼 : </li></ul></ul><ul><ul><li>本來是一串看似亂碼的編碼字串 , 啟 用投影密碼之後 , 只剩一個 “ x” 字 元 , 密碼編碼字串改存放到 /etc/shadow 檔案裡 , 只有 root 帳號 有權讀取、修改 , 以避免密碼編碼字 串外流後被破解 , 導致系統被入侵。 </li></ul></ul>
  17. 17. passwd 檔案的內容格式 <ul><ul><li>使用者識別碼 (UID, User ID) : </li></ul></ul><ul><ul><li>系統使用 UID 來判別使用者 , 故必須是唯一的號碼。編號 0 是 root 帳號的 UID ;編號 1 〜 499 則是系統保留給各種常駐服務和伺服器使用的 UID, 我們應避開不要混雜其中;而第一個分配給使用者的編號從 500 開始。 </li></ul></ul>
  18. 18. passwd 檔案的內容格式 <ul><ul><li>群組識別碼 (GID, Group ID) : </li></ul></ul><ul><ul><li>每個帳號皆屬於某一群組 , 而每個群組也都有一個唯一的 GID 號碼供系統識別使用。例如 root 帳號所屬的 root 群組識別碼為 0, users 群組的識別碼是 100 。此欄位即記錄該帳號所隸屬的群組。 </li></ul></ul><ul><ul><li>使用者相關資訊 : </li></ul></ul><ul><ul><li>記錄使用者的姓名、電話與地址等資料。這部份可自行加入 , 或保留空白。 </li></ul></ul>
  19. 19. passwd 檔案的內容格式 <ul><ul><li>使用者家目錄 : </li></ul></ul><ul><ul><li>每個使用者的家目錄 , 通常預設的目錄名稱和使用者帳號相同 , 方便管理者識別 , 必要時亦可採用與帳號不一樣的名稱來建立目錄。 </li></ul></ul><ul><ul><li>使用者環境 : </li></ul></ul><ul><ul><li>就是使用者在文字模式下的環境 , 負責解譯使用者所輸入的指令 , 讓系統得以瞭解使用者要做甚麼事。 Linux 系統預設是使用 bash 。 </li></ul></ul>
  20. 20. passwd 檔案的內容格式 <ul><li>在預設情況下 , 任何使用者都可以讀取 /etc/passwd 檔案 , 我們用 ls 指令來查看: </li></ul><ul><li>/etc/passwd 檔預設的權限是 “ rw-r--r--”, 表示所有使用者皆可讀取 , 因為 passwd 檔內含 UID 與 GID 資訊 , 負責轉換 擁有者 (owner) 和 UID 之間的關係 , 所以必須讓使用者能夠讀取。 </li></ul>
  21. 21. passwd 檔案的內容格式 <ul><li>以下示範更改 passwd 檔權限前後的差別。假設使用者 tony 登入系統 , 並執行 ls 指令: </li></ul><ul><li>若管理者把 passwd 檔的權限更改為 &quot;rw------&quot;, 只有 root 帳號方能讀取該檔案 , 當 tony 再登入系統後的情形會變成下面這樣: </li></ul>
  22. 22. passwd 檔案的內容格式 <ul><li>不僅提示符號前的帳號名稱變成 &quot;I have no name ! &quot;, 檔案擁有者的名稱也變成了識別碼 500 了!所以我們不應限制 passwd 的讀取權限 , 而應該啟用投影密碼改善保密的問題。 </li></ul>
  23. 23. shadow 檔案的內容格式 <ul><li>由於 passwd 檔案並不安全 , 因此在安裝 Linux 時 , 系統內定會啟動投影密碼的功能。每當我們用 useradd 指令建立使用者帳號 , 系統不僅更動 passwd 檔案 , 同時還會修改 /etc/shadow 檔案。以下便是 shadow 檔案的部份內容: </li></ul>
  24. 24. shadow 檔案的內容格式
  25. 25. shadow 檔案的內容格式 <ul><li>每個帳號在 shadow 檔案中都有 9 個欄位 , 分別用 8 個冒號 (:) 隔開 , 以下依欄位分別說明: </li></ul><ul><ul><li>帳號名稱 : </li></ul></ul><ul><ul><li>此欄位為帳號的名稱。 shadow 檔的前面是系統內建或常駐服務使用的帳號 , 例如 root 、 adm 。一般使用者的帳號名稱放在後面 , 例如 benny 。 </li></ul></ul>
  26. 26. shadow 檔案的內容格式 <ul><ul><li>使用者密碼 : </li></ul></ul><ul><ul><li>此欄位中看起來好像一堆亂碼的字串 , 其實這是編碼後的使用者密碼。若該帳號的密碼被取消了 , 則此欄為空白。系統預設最多只能使用 8 個字元的密碼 , 超過的部分沒有作用。但要破解 8 個字元的編碼並非不可能 , 因此建議您除了使用投影密碼之外 , 同時也應該啟用 MD5 編碼 。它讓您可以使用的密碼高達 256 字元 , 要破解將難上加難。 </li></ul></ul>
  27. 27. shadow 檔案的內容格式 <ul><ul><li>密碼最後變動的時間 : </li></ul></ul><ul><ul><li>更改過密碼後 , 系統會記錄最後變動的時間。此處的時間是從西元 1970 年 01 月 01 日算起的天數。例如 13275 代表已經過了 13275 天。 </li></ul></ul><ul><ul><li>密碼變動兩次之間 , 至少需間隔的日數 : </li></ul></ul><ul><ul><li>系統管理者可以限制使用者更改密碼的頻率。若在此欄輸入 30, 就表示更動後至少需間隔 30 天 , 才能再次修改密碼。若為 0 則表示不限制。 </li></ul></ul>
  28. 28. shadow 檔案的內容格式 <ul><ul><li>密碼變動過後 , 距離下次一定要更改密碼的日數 :為求安全起見 , 管理者也能要求使用者每隔幾天就需要更換密碼。輸入 90 代表距上次更改密碼 90 天後 , 使用者就必須換一個新的密碼。預設為 99999 天 , 表示可終身不用改密碼。 </li></ul></ul>
  29. 29. shadow 檔案的內容格式 <ul><ul><li>離下次密碼必須變動日期前多少日 , 就開始警告使 </li></ul></ul><ul><ul><li>用者 : </li></ul></ul><ul><ul><li>假設超過必須變換的日期 , 而使用者尚未更改密碼 , 這就是密碼逾期。管理者可以設定在逾期前幾天 , 系統就自動發出警告 , 提醒使用者更換密碼。此欄若設為 7, 表示系統在密碼逾期前 7 天會發出警告。空白表示系統不會警告使用者密碼逾期。 </li></ul></ul>
  30. 30. shadow 檔案的內容格式 <ul><ul><li>超過密碼必須變動日期後多少日 , </li></ul></ul><ul><ul><li>就將該帳號停權 : </li></ul></ul><ul><ul><li>為避免使用者遲遲不肯更換密碼 , 管理者可以設定逾期的期限 , 超過期限之後 , 系統就自動把該使用者的帳號停權 , 不准登入。若設為 15 則表示密碼逾期後再過 15 天 , 該帳號將被停止使用。空白表示沒有期限 , 即使逾期也不會被停權。 </li></ul></ul>
  31. 31. shadow 檔案的內容格式 <ul><ul><li>帳號的使用期限 : </li></ul></ul><ul><ul><li>每個帳號都可以設定使用期限 , 超過期限後帳號便無法繼續使用。此處的時間也是從西元 1970 年 01 月 01 日起的天數。空白則表示沒有期限。 </li></ul></ul><ul><ul><li>最後一個欄位為保留欄位 。 </li></ul></ul>
  32. 32. 關閉、啟動投影密碼 <ul><li>若要關閉投影密碼功能 , 可執行 pwunconv 指令 , 將使用者的密碼從 shadow 檔寫回 passwd 檔。若要再啟動 , 則執行 pwconv 指令。 </li></ul>
  33. 33. useradd 指令新增帳號時的 基本設定 <ul><li>當使用 useradd 指令新增帳號時 , 系統會自動將 /etc/skel 目錄下所有檔案複製到使用者的家目錄內。 </li></ul><ul><li>那麼 , useradd 指令新增新帳號的基本設定值 , 例如是否要建立家目錄、密碼的最小長度 ... 等 , 是否可以自行修改呢?例如專職做為 Mail 伺服器的主機要建立使用者帳號時 , 不想讓這些使用者登入主機也不需要建立使用者家目錄 , 該如何設定呢? </li></ul>
  34. 34. useradd 指令新增帳號時的 基本設定 <ul><li>這些設定都紀錄在 /etc/login.defs 檔案中 , 其內容如右: </li></ul>
  35. 35. useradd 指令新增帳號時的 基本設定 <ul><li>在 /etc/default/useradd 檔案中也有家目錄位置、使用者環境、樣板目錄 ... 等預設值設定: </li></ul><ul><li>只要修改上述兩個檔案中的設定 , 便可依需求透過 useradd 指令新增帳號了。 </li></ul>
  36. 36. 管理者帳號 <ul><li>安裝 Linux 之後 , 系統預設即建立了 root 帳號。此帳號為系統管理者 , 對系統擁有完全的控制權 , 可對系統做任何設定和修改 ( 甚至摧毀整個系統 ), 所以維護 root 帳號的安全便格外重要。 </li></ul>
  37. 37. 設定 root 帳號之密碼 <ul><li>在安裝 Linux 過程中 , 即要求安裝者為 root 帳號設定密碼。管理者可於日後更改或甚至取消密碼。不過除非整個 Linux 系統只有自己使用 , 否則強烈建議替 root 帳號設定一個不易被有心人士猜到的密碼。 </li></ul>
  38. 38. 設定 root 帳號之密碼 <ul><li>擁有 root 帳號的系統管理者除了設定密碼之外 , 建議先替自己建立一個一般使用者的帳號 , 供日常作業使用 , 如此可避免因作業疏失而影響整個系統。最好等到系統需要維護時 , 再使用 root 帳號登入 , 且應注意旁人窺視 , 以免密碼外流。 </li></ul>
  39. 39. 切換帳號、變換身份 <ul><li>在文字模式下 , 當管理者使用一般帳號登入系統 , 隨後想要轉變成管理者身份 , 進行系統的相關設定時 , 並不需要重新登入 , 只要執行 su 指令並輸入 root 帳號的密碼 , 則可轉換為 root 帳號。以下假設原本登入的帳號是 tony, 而要切換為 root : </li></ul>
  40. 40. 切換帳號、變換身份 <ul><li>這樣只是將登入的身份轉變為 root, 但諸如檔案路徑之類的環境變數仍然是原登入帳號 tony 的 , 例如直接在提示符號下執行 shutdown 指令 , 則會找不到指令 , 必須輸入完整的路徑 /sbin/shutdown 才行。 </li></ul>
  41. 41. 切換帳號、變換身份 <ul><li>若是想要變換身份時 , 同時更改環境變數 , 則必須執行 su - 指令: </li></ul>
  42. 42. 切換帳號、變換身份 <ul><li>倘若要切換成其他使用者 , 請在 su - 指令後加上該使用者的帳號: </li></ul>
  43. 43. 只允許 root 登入的維護模式 <ul><li>如果希望這台電腦除了 root 帳號之外 , 其他帳號都不得登入時 , 可在 /etc 目錄中執行 touch nologin 指令 , 產生一個檔名為 nologin 的檔案。當其他使用者欲登入時 , 系統只要發現此檔存在 , 就會禁止他們登入: </li></ul>
  44. 44. 只允許 root 登入的維護模式 <ul><li>這種狀況通常用於管理者要維護系統時。若要再度恢復使用者登入 , 則只要將 nologin 檔刪除即可 。 </li></ul>
  45. 45. 停用與移除使用者帳號 <ul><li>當使用者畢業、離職或是逾期不繳費時 , 我們可以考慮停用或是刪除使用者帳號 , 以避免這些使用者繼續登入系統。 </li></ul>
  46. 46. 停用帳號 <ul><li>將帳號停用的意思是暫時不允許使用者登入系統 , 但仍然保留其資料。我們可編輯 /etc/passwd 檔案 , 將該使用者的密碼欄位由 &quot;x&quot; 字元改為 &quot;*&quot; 字元: </li></ul>
  47. 47. 刪除帳號 <ul><li>當確定使用者已不再需要使用本系統 , 或是列為拒絕往來戶時 , 可考慮將該帳號完全刪除。 </li></ul><ul><li>刪除帳號前要注意 , 使用者是否仍有程式在系統上執行 , 或是設定排程程式在固定時間執行工作?在刪除帳號前 , 必須先刪除這些與該帳號相關的程式及工作排程 , 否則刪除帳號後 , 系統有可能因為這些無主程式造成錯誤或是系統不穩 , 更確保該帳號不會被有心人士植入特洛依程式 , 而造成系統後門大開。 </li></ul>
  48. 48. 刪除背景執行程式 <ul><li>在刪除帳號前 , 為了避免使用者還有程式遺留在系統中 , 請執行下列指令檢查背景執行的程式 , 並把在背景中執行的程式刪除 ( 在以刪除 silent 使用者帳號為範例 ) : </li></ul><ul><li>上面這個指令會列出使用者 silent 執行的全部程式 , 我們可以看見類似以下的結果: </li></ul>
  49. 49. 刪除背景執行程式 <ul><li>要刪除這些程式 , 可執行 kill 指令 : </li></ul>
  50. 50. 刪除排程工作 <ul><li>還有一點相當重要 , 就是要將使用者所設定的排程工作移除。在 Linux 系統中 , 使用者可以自行設定排程工作 , 時間一到就自動執行某些指令。這些排程工作所執行的指令 , 有的或許會影響系統之安全與保密 , 因此我們必須特別注意使用者所留下來的排程工作。請執行下列指令檢查排程工作: </li></ul>
  51. 51. 刪除排程工作 <ul><li>當發現使用者自行設定的排程工作還在系統中時 , 直接執行 crontab –u silent -r 指令 , 便能刪除該使用者的排程設定檔案。 </li></ul>
  52. 52. 刪除使用者的帳號與檔案 <ul><li>確定該使用者已經沒有在背景執行的程式、排程工作之後 , 最後我們要刪除使用者的帳號。在刪掉帳號前要先考慮到除了家目錄外 , 使用者的檔案也可能散落在系統內其他的目錄 ( 如 /tmp 和 /var/tmp), 我們可以使用下列指令找到並且刪除所有該使用者的檔案: </li></ul>
  53. 53. 刪除使用者的帳號與檔案 <ul><li>在清除了使用者所有可能留在系統中的檔案 , 最後就可以放心地刪除使用者帳號了。我們使用 userdel 指令可以很方便地將使用者刪除: </li></ul><ul><li>此指令可以加上參數 &quot;-r&quot;, 表示刪除帳號時 , 一併將該帳號的家目錄及郵件檔案都刪除。由於我們已自行清除使用者檔案 , 所以此處不加 &quot;-r&quot; 參數 , 則只會刪除帳號而不處理該帳號的相關目錄。 </li></ul>
  54. 54. 刪除使用者的帳號與檔案 <ul><li>當然我們亦可直接編輯 passwd 和 shadow 檔案 , 直接將帳號刪除 , 並請記得隨後馬上刪除該帳號之家目錄與郵件檔案。 </li></ul>
  55. 55. 自訂群組 <ul><li>您可以讓每個使用者都擁有自己專屬的群組 , 也能將新增的使用者統一編入一般使用者的 users 群組。 </li></ul><ul><li>實際上我們可依不同的性質自行建立群組 , 例如 staff 與 student 群組 , 或是 group1 、 group2 和 group3 群組 , 視情況所需而分門別類。當檔案或目錄隸屬於不同群組時 , 群組的使用者也會受到群組權限的限制 。 </li></ul>
  56. 56. group 檔的內容格式 <ul><li>系統除了 root 帳號的 root 群組 , 及一般使用者的 users 群組之外 , 還有許多其他的群組 , 詳細內容都記錄在 /etc/group 檔案中: </li></ul>
  57. 57. group 檔的內容格式 <ul><li>檔案內的每一筆記錄可分為 4 個欄位 , 由左到右分別用冒號 (:) 隔開: </li></ul><ul><ul><li>群組名稱 :例如 root 、 users 、 bin 、 tony... 等 , 都是群組的名稱。 </li></ul></ul><ul><ul><li>密碼 :設定加入該群組的密碼 , 一般不會用到。 </li></ul></ul><ul><ul><li>群組識別碼 :就是 GID 。系統會給每個群組一個編號 , 如 users 群組的編號為 100 。 </li></ul></ul>
  58. 58. group 檔的內容格式 <ul><ul><li>使用者帳號 :隸屬此群組的使用者帳號 , 一個使用者可同時隸屬於多個群組。一般自建群組的這一欄通常為空白 , 表示該群組的使用者是定義在 /etc/passwd 檔中。 </li></ul></ul>
  59. 59. 建立群組 <ul><li>建立群組的方法和建立帳號幾乎相同 , 且過程更簡單。我們可執行 groupadd 指令來建立群組。例如要建立 GID 編號 700, 名稱為 staff 的群組: </li></ul>
  60. 60. 建立群組 <ul><li>參數 -g 用來指定群組識別碼 , 0 〜 499 請保留給系統使用。若省略此參數 , 則系統會自動指定 GID, 從目前最大編號的下一號開始 , 使用尚未用掉的號碼。 </li></ul>
  61. 61. 變更所隸屬之群組 <ul><li>若要更動已存在的使用者帳號所隸屬的群組 , 可直接編輯 passwd 檔案。接著用 chown 指令 , 改變使用者家目錄及檔案所隸屬的群組: </li></ul>
  62. 62. 刪除群組 <ul><li>當不再需要某一個群組時 , 可執行 groupdel 指令刪除群組 ( 要刪除某個群組前 , 請記得執行 find / -group 群組名稱 指令 , 檢查系統中隸屬於該群組的目錄及檔案 , 並利用 chown 指令改變其所屬群組 ) : </li></ul>
  63. 63. 使用者磁碟空間管理 <ul><li>由於 Linux 是多使用者的作業環境 , 假若任由每個使用者存放檔案而沒有限制 , 磁碟空間將迅速消耗 , 很快地便會不敷使用。 Quota 的功能 , 就是限制使用者可運用的磁碟空間。 </li></ul><ul><li>為了避免使用者毫無節制、濫用空間的災難發生 , 在本節我們要來討論如何替使用者設定磁碟空間的限制。 </li></ul>
  64. 64. 1. 編輯 fstab 檔案 <ul><li>請用文書編輯程式開啟 /etc/fstab 檔案 , 其內容類似下面這樣: </li></ul>
  65. 65. 1. 編輯 fstab 檔案 <ul><li>編輯 ext3 檔案系統所在分割區 ( 或其他要限制磁碟空間的磁碟 ) 的設定 , 加上 usrquota (user quota) 、 grpquota (group quota) 兩項 , 表示要建立使用者與群組的磁碟空間限制 </li></ul><ul><li>倘若只要限制使用者或群組的磁碟空間 , 則僅需加上 usrquota 或 grpquota 其中一項即可 , 存檔離開後 , 請重新開機。 </li></ul>
  66. 66. <ul><li>由於 Quota 的作用範圍是以分割區為單位 , 所以在實作磁碟分割限制時 , 應該要先計畫好要限制的範圍及目標 , 並依需求分割硬碟再為該分割區設定 Quota 。 </li></ul><ul><li>舉例來說 , 提供郵件服務的主機 , 因為使用者信件檔會放置於 /var/spool/mail 目錄 , 所以若要特別限制使用者的郵件空間 , 便應該將 /var 或 /var/spool/mail 掛載於獨立的硬碟分割區 , 然後對該分割區設定 Quota 磁碟限制。 </li></ul>善用 Quota 磁碟空間限制
  67. 67. 善用 Quota 磁碟空間限制 <ul><li>如果您只有 &quot;/&quot; 一個分割區 , 那麼針對 &quot;/&quot; 分割區設定磁碟限制時 , 使用者所有使用的空間都包含在此限制內。例如 tony 帳號的磁碟限制為 20 MB, 那麼 tony 個人網頁檔案、家目錄個人檔案、郵件檔案 ... 等都會被包含在 20 MB 的限制中。所以如果想要獨立限制郵件空間 , 便應該將郵件檔放置的目錄單獨掛載於其他分割區。 </li></ul>
  68. 68. 善用 Quota 磁碟空間限制 <ul><li>同理 , 提供網頁服務的 W W W 主機 , 若要單獨限制個人網頁空間 , 也應該將放置個人網頁的目錄掛載於獨立的硬碟分割區。 </li></ul><ul><li>此外 , 一般情況下無法針對 root 帳號做空間限制 , 但若是遇到有人使用郵件炸彈寄大量信件至 root 帳號 , 就很容易因為用完硬碟空間而癱瘓系統。為了避免此狀況發生 , 您可以設定將 root 信件轉給系統上一般使用者的帳號 , 然後設定該帳號的 Quota, 限制其磁碟空間即可。 </li></ul>
  69. 69. 2. 產生設定檔 <ul><li>修改好 fstab 檔後 , 請您先在系統根目錄 / 下執行 touch aquota.user 與 touch aquota.group 指令 , 自行建立 aquota.user 及 aquota.group 兩個檔案 , 接著執行 quotacheck 指令設定: </li></ul>
  70. 70. 2. 產生設定檔 <ul><li>常用於 quotacheck 指令的參數說明: </li></ul><ul><ul><li>- a :掃描 fstab 檔案中 , 所有已加入 quota 設定的分割區。 </li></ul></ul><ul><ul><li>- d :詳細顯示指令執行過程 , 便於除錯或了解程式執行的情形。 </li></ul></ul><ul><ul><li>-g :掃描磁碟空間時 , 計算每個群組識別碼 (GID) 所佔用的目錄和檔案數目。 </li></ul></ul><ul><ul><li>-u :掃描磁碟空間時 , 計算每個使用者識別碼 (UID) 所佔用的目錄和檔案數目。 </li></ul></ul><ul><ul><li>-v :標示指令執行過程。 </li></ul></ul>
  71. 71. 2. 產生設定檔 <ul><ul><li>-m :強制執行指令。 </li></ul></ul><ul><ul><li>-c :不讀取已存在的 aquota 資料庫 , 重新掃描硬碟並儲存。 </li></ul></ul><ul><li>然後請重新開機。此時系統仍未設定磁碟空間 , 我們執行 quota 指令檢查自己的磁碟使用空間 , 會出現下列訊息表示沒有限制: </li></ul>
  72. 72. 3. 使用 edquota 編輯磁碟限制 <ul><li>edquota 指令可分別編輯使用者與群組的磁碟空間限制 , 以下我們分別討論。 </li></ul>
  73. 73. 編輯使用者的磁碟限制 <ul><li>請以 root 帳號執行 edquota lambert 或 edquota -u lambert 指令 , 系統會啟動 vim 編輯程式 , 以設定 lambert 帳號的空間限制。請如下編輯: </li></ul>
  74. 74. 編輯使用者的磁碟限制 <ul><li>預設 soft (soft limit) = 0, hard (hard limit) = 0, 表示沒有上限 , 可以用到整個磁碟爆滿。 </li></ul><ul><li>因為每個檔案都需要使用一個 inode, 所以 inode 數就是指使用者目前所擁有的檔案數量。而可用的 inode 數量也沒有上限 , 最多可將所有的 inode 用光。 </li></ul>
  75. 75. soft l imit 與 hard limit <ul><li>如果我們打算分配給每位使用者 10MB 容量以及 500 個檔案的儲存空間 , 那麼這些使用者就只能用到 10MB 或 500 個檔案佔滿為止 , 超過限制時會被系統阻止 , 無法繼續儲存。 </li></ul><ul><li>若我們將 soft limit 設成 10MB, 而 hard limit 訂在 15MB, 表示使用者存放超過 10MB 空間時 , 仍然可以繼續儲存 , 最多到 15MB 為止。不過系統會顯示警告訊息提醒使用者: </li></ul>
  76. 76. soft l imit 與 hard limit <ul><li>檔案數量限制也是相同的道理 , 把 soft limit 設成 500 個 , 而 hard limit 訂在 550 個 , 表示使用者存放超過 500 個檔案時 , 仍然可以繼續儲存到 550 個為止。 </li></ul>
  77. 77. soft l imit 與 hard limit <ul><li>若超過 soft limit, 使用者卻置之不理 , 且無視於系統的警告 , 則當時間超過寬限期時 , 使用者即使尚未到達 hard limit, 也會無法儲存任何檔案: </li></ul>
  78. 78. 編輯使用者的磁碟限制 <ul><li>瞭解 soft limit 與 hard limit 的關係之後 , 我們就可以為使用者設定磁碟的容量限制與 inode 的數量了: </li></ul>
  79. 79. 編輯使用者的磁碟限制 <ul><li>修改完畢請記得存檔離開。如此就設定完成一個使用者的的磁碟限制了。您可用同樣的方法設定其他的使用者。如果不想一個一個設定 , 也可以用一個已經設定好的使用者磁碟限制為範本 , 使用 edquota -p 指令 , 一次設好全部的使用者: </li></ul>
  80. 80. 實務經驗談 <ul><li>假如您的使用者家目錄不是在 /home, 例如是在 /home/department/ 下 , 則需先切換到該目錄 , 否則會告訴您找不到使用者。另外如果 /home 目錄下有不屬於使用者的目錄 , 例如您可能會使用 /home/database/ 目錄放資料庫檔案 , 此時就不能用這個方法套用所有帳號 , 因為 database 不是使用者名稱 , 會導致 edquota 指令出現錯誤。 </li></ul>
  81. 81. 編輯使用者的磁碟限制 <ul><li>若指定要套用給某個特定的帳號 , 則不需切換到 /home 目錄 , 可直接如下操作: </li></ul>
  82. 82. 編輯群組的磁碟限制 <ul><li>由於每個使用者都有所屬的群組 , 因此我們也可以為群組設定磁碟限制。但設定群組的限制時 , 最好先計算一下整個群組會有多少個使用者 , 及每個使用者的磁碟空間各為多少 , 以免整個群組的磁碟空間反而比每個使用者加起來的空間還小。 </li></ul>
  83. 83. 編輯群組的磁碟限制 <ul><li>例如一個使用者的 soft limit 為 10000, 而一個群組中有 10 人 , 那麼此群組的 soft limit 就至少該有 10000*10 。但 hard limit 不見得需要是所有使用者的 hard limit 總合 , 小一點也沒關係 , 總不會那麼巧 , 每個使用者都用滿 hard limit 吧。 </li></ul><ul><li>編輯群組的操作方式和編輯使用者類似 , 執行 edquota -g group1 指令 , 表示要編輯 group1 群組的磁碟空間限制: </li></ul>
  84. 84. 編輯群組的磁碟限制 <ul><li>當設定完一個群組之後 , 則可執行 edquota -gp group1 group2 指令 , 將 group1 的設定套用在 group2 上。 </li></ul>
  85. 85. 設定超過 soft limit 的 寬限期 <ul><li>雖然當使用者超過 soft limit 時 , 系統會發出警告 , 但總要有個期限的規定 , 因此我們必須設定寬限期 (grace time), 要求使用者在指定的期限內清掉多出來的檔案。系統預設是寬限 7 天 , 我們可用 edquota -t 指令自行調整: </li></ul>
  86. 86. 設定超過 soft limit 的 寬限期 <ul><li>或加入參數 “ g” 調整群組的寬限期: </li></ul><ul><li>當執行後 , 會顯示下面的內容: </li></ul>
  87. 87. 設定超過 soft limit 的 寬限期 <ul><li>修改寬限期並不追朔既往 , 例如使用者 lambert 的寬限期原本還剩 6 天 , 就算我們把寬限期縮短成 1 天 , lambert 這次的期限依舊是 6 天 , 新設定要在 lambert 下次再超過限制時才會發生作用。 </li></ul>
  88. 88. 4. 取消與啟動磁碟限制 <ul><li>要取消磁碟空間的限制 , 執行 quotaoff -avug 指令即可: </li></ul><ul><li>若要再啟動磁碟空間限制 , 必須執行 quotaon -avug 指令: </li></ul>
  89. 89. 檢查是否超過磁碟限制 <ul><li>一般的使用者執行 quota -v 指令 , 可得知自己有無超過限制: </li></ul>
  90. 90. 檢查是否超過磁碟限制 <ul><li>系統管理者若需檢查所有群組及使用者的磁碟限制 , 可使用 repquota -a 或 repquota -au 指令 (report quota) 檢查所有使用者、 repquota -ag 指令檢查所有群組: </li></ul>
  91. 91. 5. 檢查是否超過磁碟限制
  92. 92. 5. 檢查是否超過磁碟限制 <ul><li>管理者用這個指令就可將整個系統佔用的磁碟空間全部顯示出來 , 任何群組及使用者都無所遁形! </li></ul>

×