Download presentation
Presentation is loading. Please wait.
1
第 20 章 帳號與磁碟空間管理 著作權所有 © 旗標出版股份有限公司
2
本章提要 帳號簡介 建立使用者帳號 管理者帳號 停用與移除使用者帳號 自訂群組 使用者磁碟空間管理
3
帳號簡介 想要使用 Linux 的使用者, 必須先取得一個合法的使用者帳號 為何要建立使用者帳號 系統管理者帳號與一般使用者帳號的差別
4
為何要建立使用者帳號 在安裝 Linux 的過程中, 安裝程式預設便會建立一個系統管理者帳號
這樣可以更有效地管理系統
5
為何要建立使用者帳號 掌控使用者身份 資源共享, 不互相干擾 擁有帳號的使用者才可以登入系統 帳號的申請、建立, 則必須透過系統管理者
管理者可以掌控得以進入系統的使用者身份 資源共享, 不互相干擾 透過使用者帳號, 系統可以為使用者分別儲存個人的環境設定 每個使用者共同使用一部電腦時, 仍然可以依照自己的喜好、習慣工作, 不會互相干擾
6
為何要建立使用者帳號 權限管制, 維護系統安全
系統的管理者可以考量每個使用者的工作需要, 及系統運作狀況, 給予不同的操作權限, 讓系統保持在最佳狀態運作
7
系統管理者帳號與 一般使用者帳號的差別 Linux 中的帳號主要分成 2 類, 系統管理者帳號與一般使用者帳號
系統管理者帳號名稱為 root 具有對系統完全的控制權 可以對系統做任何的設定及修改 可以決定哪些使用者可以進入系統, 並設定所有帳號的權限
8
系統管理者帳號與 一般使用者帳號的差別
9
建立使用者帳號 使用 useradd 指令建立帳號 編輯 passwd 與 shadow 檔案來建立帳號
10
使用 useradd 指令建立帳號 執行 useradd 指令, 可建立新的使用者帳號
也可以使用 adduser 指令建立帳號, 其與 useradd 指令的用法完全相同
11
使用 useradd 指令建立帳號 在一個系統當中, 使用者的帳號名稱必須是唯一的
若要建立的帳號先被他人所佔用, 則會出現使用者已存在的訊息:
12
使用 useradd 指令建立帳號 帳號英文字的大小寫是有差別的 比如 benny 不等於 Benny
lambert 不等於 Lambert, 依此類推 只要其中一個字母大小寫不同, 系統就認定是不一樣的帳號
13
使用 useradd 指令建立帳號 要解決使用者帳號的管理問題, 一般來說有 3 種方法:
finger 指令對帳號的英文字母大小寫一視同仁, 不會刻意去判別
14
編輯 passwd 與 shadow 檔案 來建立帳號
使用 useradd 指令所建立的帳號, 實際上是儲存在 /etc 目錄下的 passwd 和 shadow 檔案中 因此修改這 2 個檔案也能夠新增使用者帳號 passwd 檔案的內容格式 shadow 檔案的內容格式 加入新的帳號記錄
15
passwd 檔案的內容格式 在開始編輯檔案的內容之前, 需先瞭解 /etc/passwd 檔案的內容格式:
16
passwd 檔案的內容格式
17
passwd 檔案的內容格式 帳號名稱: 使用者密碼:
passwd 檔的前面是系統內建帳號 (如 root 帳號) 或常駐服務使用的帳號 (如 adm) 一般使用者的帳號放在後面, 且其第 3 個欄位的使用者識別碼預設由 500 開始向上遞增 使用者密碼: 本來是一串看似亂碼的字串 啟用投影密碼之後, 只剩一個 "x" 字元, 密碼改存放到 /etc/shadow 檔案裡, 只有 root 帳號有權讀取、修改
18
passwd 檔案的內容格式 使用者識別碼 (User ID): 系統使用 UID 來判別使用者, 是唯一的號碼
編號 0 是 root 帳號的 UID 編號 1~499 是系統保留給各種常駐服務和伺服器使用的 UID 第一個分配給使用者的編號從 500 開始
19
passwd 檔案的內容格式 群組識別碼 (Group ID):
每個帳號皆屬於某一群組, 而每個群組也都有一個唯一的 GID 號碼供系統識別使用 root 帳號所屬的 root 群組識別碼為 0 users 群組的識別碼是 100 此欄位記錄該帳號所隸屬的群組 關於系統設定的 GID, 可以參考 /etc/group 檔案的內容
20
passwd 檔案的內容格式 使用者相關資訊: 使用者目錄: 使用者環境: 記錄使用者的姓名、電話與地址等資料
這部份可自行加入, 或保留空白 使用者目錄: 每個使用者的家目錄, 通常預設的目錄名稱和使用者帳號相同, 方便管理者識別, 必要時亦可採用與帳號不一樣的名稱 使用者環境: 使用者在文字模式下的環境, 負責解譯使用者所輸入的指令 Linux 系統預設使用 bash
21
passwd 檔案的內容格式 在預設情況下, 任何使用者都可以讀取 /etc/passwd 檔案 用 ls 指令來查看一下:
/etc/passwd 檔預設的權限是 "rw-r--r--", 表示所有使用者皆可讀取
22
passwd 檔案的內容格式 因為 passwd 檔內含 UID 與 GID 資訊, 負責轉換擁有者 (owner) 和 UID 之間的 關係, 所以必須讓使用者能夠讀取 以下示範更改 passwd 檔權限前後的差別 假設使用者 tony 登入系統, 並執行 ls 指令:
23
passwd 檔案的權限設定 若管理者把 passwd 檔的權限更改為 "rw------", 只有 root 帳號方能讀取, 則 tony 登入系統後的情形會變成下面這樣: 不僅提示符號前的帳號名稱變成 "I have no name!", 檔案擁有者的名稱也變成了 識別碼 所以不應限制 passwd 的讀取權限, 而應該啟用投影密碼改善保密的問題
24
建立使用者帳號的視窗程式 請按主選鈕執行 『系統設定/使用者與群組』 命令, 建立使用者帳號:
25
建立使用者帳號的視窗程式
26
shadow 檔案的內容格式 由於 passwd 檔案並不安全, 因此在安裝 Linux 時, 系統內定會啟動投影密碼的功能
用 useradd 指令建立使用者帳號時, 系統會時更動 passwd 檔及 /etc/shadow 檔的內容 每個帳號在 shadow 檔案中都有 9 個欄位, 分別用 8 個冒號 (:) 隔開
27
shadow 檔案的內容格式 以下是 shadow 檔案的部分內容:
28
shadow 檔案的內容格式 帳號名稱:此欄位為帳號的名稱 使用者密碼:編碼後的使用者密碼 前面是系統內建或常駐服務使用的帳號
一般使用者的帳號名稱放在後面 使用者密碼:編碼後的使用者密碼 若該帳號的密碼被取消了, 則此欄為空白 系統預設最多使用 8 個字元的密碼, 但要破解 8 個字元的編碼並非不可能 建議除了使用投影密碼之外, 同時啟用 MD5 編碼 (系統預設會使用) , 讓使用的密碼長度高達 256 字元, 要破解將難上加難
29
shadow 檔案的內容格式 密碼最後變動的時間: 密碼變動兩次之間, 至少需間隔的日數:
從西元 1970 年 01 月 01 日算起的天數 密碼變動兩次之間, 至少需間隔的日數: 限制使用者更改密碼的頻率 若此欄為 30, 就表示更動後至少需間隔 30 天, 才能再次修改密碼 若為 0 則表示不限制
30
shadow 檔案的內容格式 距離下次一定要更改密碼的日數: 離下次密碼必須變動日期前多少日, 就開始警告使用者:
也能要求使用者每隔幾天就需要更換密碼 90 代表每隔 90 天, 就必須換一個新的密碼 預設為 天, 表示可終身不用改密碼 離下次密碼必須變動日期前多少日, 就開始警告使用者: 可設定在密碼逾期前幾天, 系統自動發出警告, 提醒使用者更換密碼 此欄若設為 7, 表示系統在密碼逾期前 7 天會發出警告 空白表示系統不會警告使用者密碼逾期
31
shadow 檔案的內容格式 超過密碼必須變動日期後多少日, 就將該帳號停權: 帳號的使用期限: 最後一個欄位為保留欄位
若設為 15 則表示密碼逾期後再過 15 天, 該帳號將被停止使用 空白表示沒有期限, 即使逾期也不會被停權 帳號的使用期限: 超過期限後帳號便無法繼續使用 是從西元 1970 年 01 月 01 日起的天數 空白表示沒有期限 最後一個欄位為保留欄位
32
關閉、啟動投影密碼 若要關閉投影密碼功能, 可執行 pwunconv 指令, 將使用者的密碼從 shadow 檔寫回 passwd 檔
若要再啟動, 則執行 pwconv 指令 使用者群組, 同樣也有投影密碼的功能 若要關閉群組的投影密碼功能, 則可執行 grpunconv 指令, 將密碼從 gshadow 檔寫回 group 檔 若要啟動, 則執行 grpconv 指令。
33
加入新的帳號記錄 可用文書編輯器, 將新的使用者帳號加入 passwd 與 shadow 檔案 例如先在 passwd 檔案後面加上這一行:
34
加入新的帳號記錄 這樣就產生一個 silent 的帳號, 性質如下:
35
加入新的帳號記錄
36
加入新的帳號記錄 最後請用 passwd 指令更改 silent 帳號的密碼, 並建立 /home/silent 目錄
然後將設好的密碼通知該使用者即可 在建立 /home/silent 目錄時, 若單純用 mkdir /home/silent 指令, 則會缺少許多預設的檔案 因此最好先建立一個樣板帳號, 然後再將樣板目錄複製一份給新帳號即可
37
加入新的帳號記錄 例如先使用 useradd 指令建立一個樣板帳號 template
如此在 /home/template 目錄中就會有 .bash_profile、.bashrc 等預設的檔案 然後再將樣板目錄複製一份給新帳號即可 請如下操作
38
加入新的帳號記錄
39
建立測試的 guest 帳號 有時候某些人可能因為洽公或突然需要發送電子郵件, 而臨時需要使用系統
為了應付這些臨時性的需求, 可開放一個共用的帳號, 供這些不需在主機上擁有固定帳號的使用者登入 這種共用的帳號名稱通常設為 guest, 可用 passwd -d guest 指令取消密碼 在此 Linux 發行版中預設並無此帳號, 如有需要請自行建立
40
管理者帳號 設定 root 帳號之密碼 切換帳號、變換身份 只允許 root 登入的維護模式 單人模式-忘記 root 密碼時的救星
41
設定 root 帳號之密碼 在安裝 Linux 過程中, 即要求安裝者為 root 帳號設定密碼 管理者可於日後更改或甚至取消密碼
變更密碼的方法, 可使用 passwd 指令, 也可以在 X Window 圖形模式中更改
42
設定 root 帳號之密碼 請以 root 帳號登入 X Window 後, 按主選鈕, 執行『系統設定/Root 密碼』命令:
43
設定 root 帳號之密碼 擁有 root 帳號的系統管理者除了設定密碼之外, 建議先替自己建立一個一般使用者的帳號, 供日常作業使用
如此可避免因作業疏失而影響整個系統 系統需要維護時, 再使用 root 帳號登入, 且應注意旁人窺伺, 以免密碼外流
44
切換帳號、變換身份 在文字模式下, 若以一般帳號登入系統, 隨後想要轉變成管理者身份, 進行系統的相關設定時, 並不需要重新登入, 只要執行 su 指令並輸入 root 帳號的密碼, 則可轉換:
45
切換帳號、變換身份 這樣只是將登入的身份轉變為 root, 但檔案路徑之類的環境變數仍是原登入帳號
例如直接在提示符號下執行 shutdown 指令, 則會找不到指令, 而必須輸入完整的路徑 /sbin/shutdown 才行 若想同時更改環境變數, 請執行 su - 指令:
46
切換帳號、變換身份 若要切換成其他使用者, 請在 su - 指令後加上該使用者的帳號:
47
只允許 root 登入的維護模式 希望電腦除了 root 帳號之外, 其他帳號都不得登入時, 可在 /etc 目錄中執行 touch nologin 指令, 產生一個檔名為 nologin 的檔案 當其他使用者欲登入時, 系統只要發現此檔存在, 就會禁止他們登入 這種狀況通常用於管理者要維護系統時 若要再度恢復使用者登入, 則只要將 nologin 檔刪除即可 或重新開機後, 系統即會直接刪除 nologin 檔, 恢復使用者登入
48
只允許 root 登入的維護模式
49
單人模式- 忘記 root 密碼時的救星 若是只有單獨一人使用系統, 沒有其他使用者存在, 又不想在每次啟動系統都經過登入、回答密碼的程序, 則可以考慮採用單人模式 (Single User Mode) 在開機顯示 GRUB 畫面時, 按 a 鍵切換到 GRUB 的文字介面畫面, 並輸入以下參數:
50
單人模式- 忘記 root 密碼時的救星 若使用 LILO 開機管理程式, 則可在出現開機選單畫面時, 在指令列最後輸入 linux s 指令
51
單人模式- 忘記 root 密碼時的救星 也可以編輯 /etc/inittab 檔案:
存檔後執行 shutdown -r now 指令重新開機即可
52
單人模式- 忘記 root 密碼時的救星 系統進入單人模式後, 並不會要求輸入帳號及密碼 提示符號之前的字串也與多人模式時不一樣:
53
單人模式- 忘記 root 密碼時的救星 管理者若忘了 root 帳號的密碼, 可以先用單人模式進入系統, 然後依下面的方式來操作:
54
停用與移除使用者帳號 當使用者畢業、離職或是逾期不繳費時, 可以考慮停用或是刪除使用者帳號, 以避免這些使用者繼續登入系統 停用帳號
刪除帳號
55
停用帳號 將帳號停用的意思是暫時不允許使用者登入系統, 但仍然保留其資料
可編輯 /etc/passwd 檔案,將該使用者的密碼欄位由 "x" 字元改為 "*" 字元:
56
刪除帳號 確定使用者已不再需要使用本系統, 或是列為拒絕往來戶時, 可考慮將該帳號完全刪除 刪除使用者的帳號與檔案 刪除背景執行程式
刪除排程工作
57
刪除使用者的帳號與檔案 使用 userdel 指令可以將使用者刪除 :
加上參數 "-r" 表示刪除帳號時, 一併將該 帳號的使用者目錄及郵件檔案 (位於 /var/spool/mail 目錄中的同名檔案) 都刪 除 若不加 "-r" 參數, 則只會刪除帳號而保留該帳號的相關目錄
58
刪除使用者的帳號與檔案 亦可直接編輯 passwd 和 shadow 檔案, 將帳號刪除
並請記得隨後馬上刪除該帳號之家目錄與郵件檔案 (/var/spool/mail 目錄中的同名檔案)
59
刪除使用者的帳號與檔案 除了家目錄外, 使用者的檔案也可能散落在系統內其他的目錄 (如 /tmp 和 /var/tmp)
可以使用下列指令找到並且刪除所有該使用者的檔案:
60
刪除背景執行程式 為避免使用者還有程式遺留在系統中, 請檢查背景執行的程式, 並將其刪除:
這個指令會列出使用者 silent 的背景執 行程式, 可以看見類似以下的結果:
61
刪除背景執行程式 要刪除這些程式, 可執行 kill 指令 :
62
刪除排程工作 此外還有一點相當重要, 就是要將使用者所設定的排程工作去掉
在 Linux 系統中, 使用者可以自行設定排程工作, 時間一到就自動執行某些指令 這些排程工作所執行的指令, 有的或許會影響系統之安全與保密 因此必須特別注意使用者所留下來的排程工作
63
刪除排程工作 請執行下列指令檢查排程工作:
當發現使用者自行設定的計時器還在系統中時, 直接執行 crontab -u silent -r 指令, 便能刪除該使用者的計時器檔案
64
自訂群組 管理者可以讓每個使用者都擁有自己專屬的群組 也能將新增的使用者都編到一般使用者的 users 群組
實際上可依不同的性質自行建立群組 例如 staff 與 student 群組, 或是 group1、group2 和 group3 群組, 視情況所需而分門別類 當檔案或目錄隸屬於不同群組時, 群組的使用者也會受到群組權限的限制
65
自訂群組 group 檔的內容格式 建立群組 變更所隸屬之群組 刪除群組
66
group 檔的內容格式 系統除了 root 帳號的 root 群組, 及一般使用者的 users 群組之外, 還有許多其他的群組, 都記錄在 /etc/group 檔案中:
67
group 檔的內容格式 檔案內的每一筆記錄可分為 4 個欄位, 由左到右分別用冒號 (:) 隔開:
68
建立群組 建立群組的方法和建立帳號幾乎相同 執行 groupadd 指令可建立群組
以下建立 GID 編號 700, 名稱為 staff 的群組:
69
建立群組 參數 -g 用來指定群組識別碼 0~499 請保留給系統使用
若省略此參數, 則系統會自動指定 GID, 使用從編號 500 開始, 尚未用掉的號碼
70
變更所隸屬之群組 若要更動已存在的使用者帳號所隸屬的群組, 可直接編輯 passwd 檔案
接著用 chown 指令, 改變使用者家目錄及檔案所隸屬的群組
71
刪除群組 當不再需要某一個群組時, 可執行 groupdel 指令刪除群組
要刪除某個群組前, 請執行 find / -group 群組名稱指令, 檢查系統中隸屬於該群組的目錄及檔案 並利用 chown 指令改變其所屬群組: 以下執行 groupdel 指令刪除 staff 群組
72
使用者磁碟空間管理 Linux 是多使用者的作業環境 假若任由每個使用者存放檔案而沒有限制, 磁碟空間將迅速消耗, 很快地便會不敷使用
Quota 的功能, 即用來限制使用者可運用的磁碟空間
73
使用者磁碟空間管理 在系統尚未設定磁碟空間時, 執行 quota 指令檢查自己的磁碟使用空間, 會出現下列訊息表示沒有限制:
這表示該使用者可以隨自己高興任意堆 放檔案, 直到塞滿整個磁碟為止 此舉將造成所有其他使用者都無法儲存資料
74
使用者磁碟空間管理 編輯 fstab 檔案 產生設定檔 使用 edquota 編輯磁碟限制 取消與啟動磁碟限制 檢查是否超過磁碟限制
75
1. 編輯 fstab 檔案 請用文書編輯程式開啟 /etc/fstab 檔案, 其內容類似下面這樣:
76
1. 編輯 fstab 檔案 編輯 ext3 檔案系統原生分割區 (或其他要限制磁碟空間的磁碟) 的設定
加上 usrquota (user quota)、grpquota (group quota) 兩項, 表示要建立使用者與群組的磁碟空間限制:
77
1. 編輯 fstab 檔案 倘若只要限制使用者或群組的磁碟空間, 則僅需加上 usrquota 或 grpquota 其中一項即可
存檔離開後, 請重新開機 執行 man fstab 和 man mount 指令可查看fstab 檔案中各欄位的代表意義及相關資訊
78
2. 產生設定檔 修改好 fstab 檔後, 請在系統根目錄下執行 touch aquota.user 與 touch aquota.group 指令, 自行建立 aquota.user 及 aquota.group 檔案 接著執行 quotacheck 指令設定:
79
2. 產生設定檔 以下是用於 quotacheck 指令的參數說明:
80
2. 產生設定檔 設定好後請重新開機 接著就可以設定使用者磁碟空間了
如果要對其他的分割區 (掛載點不是根目錄的分割區) 做 quota 的設定, 也可以用同樣的方式產生設定檔 詳細的說明請執行 man quotacheck 指令
81
3. 使用 edquota 編輯磁碟限制 edquota 指令可分別編輯使用者與群組的磁碟空間限制 編輯使用者的磁碟限制 編輯群組的磁碟限制
設定超過 soft limit 的寬限期
82
編輯使用者的磁碟限制 執行 edquota lambert 或 edquota -u lambert 指令, 系統會啟動 vim 編輯程式, 以設定 lambert 帳號的空間限制:
83
編輯使用者的磁碟限制 預設 soft (soft limit) = 0, hard (hard limit) = 0, 表示沒有上限, 可用到整個磁碟爆滿 每個檔案都需要使用一個 inode, 所以 inode 數就是指使用者目前所擁有的檔案數量 可用的 inode 數量也沒有上限, 表示最多可將所有的 inode 用光
84
編輯使用者的磁碟限制 以下為使用者設定磁碟的容量限制 (soft limit 與 hard limit) 及 inode 的數量限制:
如此就設定完一個使用者的磁碟限制了 用同樣的方法可設定其他的使用者
85
編輯使用者的磁碟限制 如果不想一個一個設定, 也可以用一個已經設定好的使用者磁碟限制為範本, 使用 edquota -p 指令, 一次設好全部使用者: 若指定要套用給某個特定的帳號, 則可直接如下操作:
86
編輯使用者的磁碟限制 假如使用者家目錄不是在 /home, 例如 /home/department/
則需先切換到該目錄, 否則會告訴找不到使用者 另外如果 /home 目錄下有不屬於使用者的目錄, 就不能用這個方法套用所有帳號 例如可能會使用 /home/database/ 目錄放資料庫檔案, 此時因為 database 不是使用者名稱,會導致 edquota 指令出現錯誤
87
soft limit 與 hard limit 如果分配給每位使用者 10MB 容量以及 500 個檔案的儲存空間, 那麼這些使用者就只能用到 10MB 或 500 個檔案佔滿為止, 超過限制時, 將無法繼續儲存 若將 soft limit 設成 10MB, 而 hard limit 訂在 15MB 表示使用者存放超過 10MB 空間時, 仍然可以繼續儲存, 最多到 15MB 為止
88
soft limit 與 hard limit 超過 Soft limit 時, 系統會顯示警告訊息提醒使用者:
89
soft limit 與 hard limit 若超過 soft limit, 使用者卻置之不理, 且無視於系統的警告
90
編輯群組的磁碟限制 由於每個使用者都有所屬的群組, 因此也可以為群組設定磁碟限
設定群組的限制時, 最好先計算一下整個群組會有多少個使用者, 及每個使用者的磁碟空間各為多少, 以免整個群組的磁碟空間反而比使用者加起來的空間還小 例如一個使用者的 soft limit 為 10000, 而一個群組中有 10 人, 那麼此群組的 soft limit 就至少該有 10000*10 但 hard limit 不見得需要是所有使用者的 hard limit 總合, 小一點也沒關係
91
編輯群組的磁碟限制 編輯群組的操作方式和編輯使用者類似
執行 edquota -g group1 指令, 表示要編輯 group1 群組的磁碟空間限制: 設定完一個群組之後, 可執行 edquota -gp group1 group2 指令, 將 group1 的 設定套用在 group2 上
92
設定超過 soft limit 的寬限期 雖然當使用者超過 soft limit 時, 系統會發出警告, 但總要有個期限的規定
寬限期 (grace time), 便用以要求使用者在指定的期限內清掉多出來的檔案 系統預設是寬限 7 天, 可用 edquota -t 指令自行調整:
93
設定超過 soft limit 的寬限期 執行後, 會顯示下面的內容:
94
設定超過 soft limit 的寬限期 修改寬限期並不追朔既往
例如使用者 lambert 的寬限期原本還剩 6 天, 就算我們把寬限期縮短成 1 天, lambert 這次的期限依舊是 6 天 新設定要在下次再超過限制時才會發生作用
95
4.取消與啟動磁碟限制 執行 quotaoff -avug 指令可取消磁碟空間限制:
要再啟動磁碟空間限制, 必須執行 quotaon -avug 指令:
96
5. 檢查是否超過磁碟限制 一般使用者執行 quota -v 指令, 可得知自己有無超過限制:
若沒超過 soft limit, 則 grace 欄是空白的
97
5. 檢查是否超過磁碟限制 系統管理者若需檢查所有群組及使用者的磁碟限制, 可使用以下指令 :
repquota -au 指令 (report quota) 可檢查所有使用者 repquota -ag 指令可檢查所有群組 repquota -a 指令可檢查全部的資料
98
5. 檢查是否超過磁碟限制 以下執行 repquota -a 指令檢查全部資料:
99
5. 檢查是否超過磁碟限制
Similar presentations