︿
Top

Users and Groups

每個使用者帳號會有一個 唯一 的識別號碼稱為 UID (User ID Number) 並從序號 500 開始,有關使用者帳號資訊儲存於 /etc/passwd、/etc/shadow,有關使用者群組資訊儲存於 /etc/group、/etc/ashadow。


/etc/passwd  儲存使用者帳號資訊,為 7 個欄位並使用冒號 (:) 隔開
  1. Account ID: 使用者帳號名稱 (例如: weithenn)。 
  2. Password: 使用者密碼,此欄位值為 X 則代表該使用者帳號有設定密碼 (密碼儲存於 /etc/shadow),此欄位值為 空白 則代表該使用者帳號不需密碼即可登入 (/etc/shadow 第二欄為 !!),可使用指令 passwd -S Account_ID 來檢查使用者密碼資訊 (例如: passwd -S weithenn)。
  3. UID: 使用者號碼 (User ID Number)。
  4. GID: 使用者群組號碼 (Group ID Number)。
  5. Remark: 使用者資訊,可使用指令 finger Account_ID 來 查詢 使用者資訊 (例如: finger weithenn),或使用指令 chfn Account_ID 來 設定 使用者資訊 (例如: chfn weithenn)。
  6. Home Directory: 使用者家目錄路徑,即該使用者帳號登入系統後預設登入目錄。
  7. Shell: 使用者帳號登入後 第一個 執行的程序。

如下為查詢使用者帳號 weithenn 資訊於 /etc/passwd、/etc/shadow 中內容。
grep weithenn /etc/passwd /etc/shadow
 /etc/passwd:weithenn:x:500:500::/home/weithenn:/bin/bash
 /etc/shadow:weithenn:!!:14459:0:99999:7:::

/etc/group  儲存使用者群組資訊,為 4 個欄位並使用冒號 (:) 隔開
  1. Group_ID: 群組名稱 (例如: weithenn)。
  2. Password: 群組密碼 (密碼儲存於 /etc/ashadow)。
  3. GID: 使用者群組號碼 (Group ID Number),與 /etc/passwd 的 GID 欄位相互對應。
  4. Member: 群組成員,成員之間使用逗點 (,) 隔開。



Permission、OwnerShip

Linux 中有關檔案及目錄透過 使用者、群組、其它人 等三種關係來訂定其存取權限,您可透過指令 stat 來查詢檔案或目錄有關 UID、GID...等相關資訊。
stat install.log
  File: `install.log'
  Size: 38677           Blocks: 88         IO Block: 4096   regular file
 Device: fd00h/64768d    Inode: 917506      Links: 1
 Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
 Access: 2009-08-05 08:32:09.000000000 +0800
 Modify: 2009-07-30 16:29:37.000000000 +0800
 Change: 2009-07-30 16:29:45.000000000 +0800

有關於 讀取 (r)、寫入 (w)、執行 (x) 對於檔案及目錄的說明如下:




檔案及目錄的所有權 (OwnerShip)

擁有者 (Owner): 除了該檔案的建立者之外僅 root 能改變該檔案的擁有者 (owner),可使用 chown 指令來修改檔案及目錄的擁有者。
  • -R: 此參數可一次套用設定至所有子目錄及檔案。
  • -v: 此參數可於指令執行後立即顯示執行結果。

群組 (Group): 除了該檔案的建立者 (且必須擁有該 GID) 之外僅 root 能改變該檔案的群組 (group)。
  • 可使用 chgrp 指令來修改檔案及目錄的郡組。



檔案及目錄的權限 (Permission)

每個檔案及目錄均透過 10 個字符 (Ten-Character) 4 組數字來表示其權限。
  1. 第 1 個字符: 特殊權限 (Suid、Sgid、Sticky)。
  2. 第 2 ~ 4 個字符: 使用者權限 (User Permission)。
  3. 第 5 ~ 7 個字符: 群組權限 (Group Permission)。
  4. 第 8 ~ 10 個字符: 其它人權限 (Other Permission)。

讀取 (r)、寫入 (w)、執行 (x) 權限其數字表示方式如下:
  • 執行 (x): 為 2 的 0 次方其數值為 1。
  • 寫入 (w): 為 2 的 1 次方其數值為 2。
  • 讀取 (r): 為 2 的 2 次方其數值為 4。

可透過 chmod 指令並配合上述數字方式來快速指令檔案及目錄權限,如下列二個範例來進行說明:

chmod 664 file
  • 擁有者有 (rw-) 權限,也就是有讀取、寫入的權限。
  • 群組有 (rw-) 權限,也就是有讀取、寫入的權限。
  • 其它人有 (r--) 權限,也就是有讀取的權限。

chmod 755 dir
  • 擁有者有 (rwx) 權限,也就是有讀取、寫入、執行的權限。
  • 群組有 (rwx) 權限,也就是有讀取、寫入、執行的權限。
  • 其它人有 (r-x) 權限,也就是有讀取、執行的權限。



Lab

Lab 1. 請建立如下所示樹狀目錄結構、設定相關權限、執行刪除等作業

請利用 root 帳號建立如下所示樹狀目錄結構及設定相關權限。
/ (根目錄)
     d1 (目錄, 權限 775)
          d11 (目錄, 權限 777)、f11 (檔案)
               d111 (目錄, 權限 775)、f111 (檔案)
                    d1111 (目錄, 權限 777)

利用非 root 帳號執行下列動作。
rm -rf /d1
rm -rf /d1/d11/d111/d1111


Ans:
實作後您可發現透過非 root 帳號並無法刪除指定的目錄,原因再於能否刪除該子目錄必須看該使用者權限相對於該子目錄之 上一層 目錄而定,例如執行 rm -rf /d1 指令來刪除 /d1 資料夾必須檢查使用者權限相對 /d1 的上一層目錄也就是 /(根目錄) 的權限。



Reference

文章標籤: