Lab 1. 建立新的 User Account 及 Group
此次實作為透過相關指令 (useradd、groupadd) 建立使用者帳號及群組。# useradd weithenn //建立使用者帳號 weithenn
# echo "password" | passwd --stdin weithenn //密碼password餵給使用者weithenn(不用輸入二次)
# groupadd –g 200 mis //建立群組 MIS 並指定其 GID 為 200
如何為使用者帳號指定 Primary / Second Group?
- 使用指令 vipw 去修改使用者的 GID 欄位即為指定使用者帳號的 Primary Group
- 使用指令 vi 去修改郡組檔案 /etc/group 即為指定使用者帳號的 Second Group
修改完畢後使用指令 id 即可知道使用者的 Primary / Second Group 為何,如下例使用者帳號 weithenn 其 Primary Group 為 MIS 而 Second Group 為 HR。
# id weithenn
uid=501(weithenn) gid=501(mis) groups=501(mis),200(hr) context=system_u:system_r:initrc_t
Lab 2. 設定分享資料夾權限 (建立檔案時群組參照上層設定)
設定分享資料夾權限,因為預設的檔案權限只有 Owner、Group、Other 三種,這樣的權限設定無法符合一般企業複雜的存取關系,此次實作為透過設定 SUID、SGID、Sticky 來達成權限設定多樣化。- SUID: 暫時得到 Owner Permission (ex. passwd command)。
- SGID: 建立資料夾及檔案時其 Group 權限會參照上(父)層設定。
- Sticky: 使用者僅能針對自已建立的 Folder 及 File 進行修改。
# chgrp mis /depts/mis //設定資料夾的 Group 為 MIS
# chmod 2770 /depts/mis //設定資料夾權限為 2770 (SGID)
# su – weithenn //切換成 weithenn 及 chris 使用者帳號去建立檔案
# ll //可發現使用者所新建立的檔案會參照上層設定 (Group 為 MIS)
-rw-rw-r-- 1 weithenn mis 0 Dec 26 14:47 weithenn
-rw-rw-r-- 1 chris mis 0 Dec 26 14:48 chris
在上例中若設定 2770 (GUID) 及 3770 (Sticky + SGID) 會有什麼不同的效果?
- 2770 (GUID): 使用者新建立的檔案及資料夾其群組皆為 MIS,使用者 weithenn 及 chris 可 互相刪除對方建立的檔案及資料夾。
- 3770 (Sticky + SGID): 使用者新建立的檔案及資料夾其群組皆為 MIS,使用者 weithenn 及 chris 無法 互相刪除對方建立檔案及資料夾 (但可讀寫),使用者僅 能對自已建立的檔案或資料夾進行刪除動作。