檔案權限

  • 檔案權限與屬性為學習 Linux 之重要關卡。
  • 在根目錄 "/" 下,輸入指令 ls -al
    [dywang@mdk-dyw /]$ ls -al
    total 72
    drwxr-xr-x   18 root adm   4096 Sep 16 11:11 ./
    drwxr-xr-x   18 root adm   4096 Sep 16 11:11 ../
    -rw-r--r--    1 root root     0 Sep 16 11:11 .autofsck
    drwxr-xr-x    2 root root  4096 Sep 28 12:50 bin/
    drwxr-xr-x    3 root root  4096 Sep 16 11:11 boot/
    drwxr-xr-x   26 root root 14420 Oct  1 12:30 dev/
    drwxr-xr-x   85 root root  8192 Sep 29 12:59 etc/
    drwxr-xr-x   18 root root  4096 Sep 26 12:45 home/
    drwxr-xr-x    2 root root  4096 Sep  9 16:14 initrd/
    drwxr-xr-x   11 root root  4096 Sep 28 12:49 lib/
    drwxr-xr-x    5 root root  4096 Sep 29 12:59 mnt/
    drwxr-xr-x    2 root root  4096 Jan  5  2004 opt/
    dr-xr-xr-x  179 root root     0 Sep 16 11:10 proc/
    -rw-------    1 root root  1024 Sep  9 13:06 .rnd
    drwx------   16 root root  4096 Oct  1 13:13 root/
    drwxr-xr-x    2 root root  8192 Sep 28 12:50 sbin/
    drwxr-xr-x   10 root root     0 Sep 16 11:10 sys/
    drwxrwxrwt   23 root root  4096 Oct  1 13:13 tmp/
    drwxr-xr-x   12 root root  4096 Sep  9 13:15 usr/
    drwxr-xr-x   23 root root  4096 Sep  9 17:31 var/
    
    說明:
    • total 72:檔案共 72 Blocks。
    • 各欄位說明:
      欄位一 欄位二 欄位三 欄位四 欄位五 欄位六 欄位七
      drwxr-xr-x 3 root root 4096 Sep 16 11:11 boot
      檔案屬性 硬連結數目 擁有者 所有者群組 大小 建檔日期 檔名
      1. 第一欄位 drwxr-xr-x, 共有檔案的 10 個屬性:

        \begin{picture}(200,100)\small\ttfamily
\multiputlist(10,10)(60,0)[c]{File type,\shortstack[c]{owner\\ attribute},\shortstack[c]{Group\\ attribute},\shortstack[c]{Other\\ attribute}}
......

        1. 第一屬性代表這個檔案是『目錄、檔案或連結檔』:
          • [ d ]是目錄;
          • [ - ]是檔案;
          • [ l ]為連結檔 (link file);
          • [ b ]表示為裝置檔裡面的可供儲存的周邊設備,例如硬碟;
          • [ c ]表示為裝置檔裡面的序列埠設備,例如鍵盤、滑鼠。
        2. 接下來的屬性中,三個為一組,且均為『rwx』的三個參數的組合。其中,
          [ r ]代表可讀、
          [ w ]代表可寫、
          [ x ]代表可執行、
          [ - ]代表無該權限:
          • 第一組為『擁有人的權限』;
          • 第二組為『同群組的權限』;
          • 第三組為『其他非本群組的權限』。
        3. 對於目錄光有可讀權限
          [ r ]並無法存取目錄,必須要有權限
          [ x ],才能執行
          ls, cd 等指令,以進入目錄。
        4. Linux 檔案是否可執行與附檔名無關,而是其有無可執行
          [ x ]的權限。
        5. 本例中 drwxr-xr-x 代表:
          • 檔案為一目錄。
          • 檔案擁有者可讀、可寫亦可執行。
          • 檔案所屬群組可讀、可執行但不可寫。
          • 其他人可讀、可執行但不可寫。
      2. 第二欄表示為連結佔用的節點 (i-node) (若為目錄時,通常與該目錄底下還有多少目錄有關 )這部分將在介紹連結 link 檔案時(下一節)再深入的介紹;
      3. 第三欄表示這個檔案(或目錄)的『擁有人』;
      4. 第四欄表示擁有人的群組;
      5. 第五欄為這個檔案的大小;
      6. 第六欄為這個檔案的建檔日期或者是最近的修改日期,分別為月份、日期及時間。
      7. 第七欄為這個檔案的檔名,如果檔名之前多一個『. 』,則代表這個檔案為『隱藏檔』。
  • 權限的應用
    1. 進入某目錄成為『可工作目錄』的基本權限
      1. 使用者可進入該目錄需具備 x 權限
      2. 使用者可在該目錄查閱檔名,需具備 r 權限
    2. 讀取一個檔案的基本權限
      1. 使用者在該檔案所在的目錄至少要有 x 權限
      2. 使用者對該檔案至少要有 r 權限
    3. 修改一個檔案的基本權限
      1. 使用者在該檔案所在的目錄至少要有 x 權限
      2. 使用者對該檔案至少要有 r, w 權限
    4. 建立一個檔案的基本權限
      1. 使用者在該目錄要具有 w,x 的權限
    5. 進入某目錄並執行該目錄下的某個指令
      1. 使用者在該目錄至少要有 x 的權限
      2. 使用者在該檔案至少需要有 x 的權限
  • 例題:若要成功使用指令 cp,來源/目標的權限各是如何?
    來源:2;目標:3。
  • 例題:在 Linux 檔案系統中,刪除一個檔案最少具備什麼權限?A
    (A) 只需對檔案所在目錄具有 wx
    (B) 只需對檔案所在目錄具有 wx,及對檔案具有 w
    (C) 只需對檔案所在目錄具有 wx,及對檔案具有 rw
    (D) 只需對檔案所在目錄具有 w ,及對檔案具有 w
  • 例題:使用者 foo 屬於群組 foo,有一個目錄名稱為 foo,屬於使用者 root 及群組 root,並且目錄 foo 的存取權限為『drwxr-x--x』,請問下列哪些正確?AD
    (A) 使用者 foo 可以進入目錄 foo
    (B) 使用者 foo 不能進入目錄 foo
    (C) 使用者 foo 可以由 ls 看到目錄 foo 下有哪些檔案
    (D) 如果目錄 foo 中有一檔案 bar 其存取權限為 777,使用者 foo 可以讀取 bar

練習題

  1. 每個檔案或目錄都有權限設定,ls -l 輸出的第一個櫚位為 drwxr-xr-x 代表意義為何?
    Sol. 此檔為一目錄,擁有人的權限為可讀、可寫、可執行;
    同群組使用者權限為可讀、不可寫、可執行;
    其他使用者權限為可讀、不可寫、可執行。
  2. 每個檔案或目錄都有權限設定,ls -l 輸出的第一個櫚位為 drwxr-x— 代表意義為何?
    Sol. 此檔為一目錄,擁有人的權限為可讀、可寫、可執行;
    同群組使用者權限為可讀、不可寫、可執行;
    其他使用者權限為不可讀、不可寫、不可執行。
  3. 每個檔案或目錄都有權限設定,ls -l 輸出的第一個櫚位為 drwx–x–x 代表意義為何?
    Sol. 此檔為一目錄,擁有人的權限為可讀、可寫、可執行;
    同群組使用者權限為不可讀、不可寫、可執行;
    其他使用者權限為不可讀、不可寫、可執行。
  4. 每個檔案或目錄都有權限設定,ls -l 輸出的第一個櫚位為 dr-x–x–x 代表意義為何?
    Sol. 此檔為一目錄,擁有人的權限為可讀、不可寫、可執行;
    同群組使用者權限為不可讀、不可寫、可執行;
    其他使用者權限為不可讀、不可寫、可執行。
  5. 每個檔案或目錄都有權限設定,ls -l 輸出的第一個櫚位為 -rwxr–r– 代表意義為何?
    Sol. 此檔為一檔案,擁有人的權限為可讀、可寫、可執行;
    同群組使用者權限為可讀、不可寫、不可執行;
    其他使用者權限為可讀、不可寫、不可執行。
  6. 每個檔案或目錄都有權限設定,ls -l 輸出的第一個櫚位為 -rw-r–r– 代表意義為何?
    Sol. 此檔為一檔案,擁有人的權限為可讀、可寫、不可執行;
    同群組使用者權限為可讀、不可寫、不可執行;
    其他使用者權限為可讀、不可寫、不可執行。
  7. 每個檔案或目錄都有權限設定,ls -l 輸出的第一個櫚位為 -rwxr-xr– 代表意義為何?
    Sol. 此檔為一檔案,擁有人的權限為可讀、可寫、可執行;
    同群組使用者權限為可讀、不可寫、可執行;
    其他使用者權限為可讀、不可寫、不可執行。
  8. 每個檔案或目錄都有權限設定,ls -l 輸出的第一個櫚位為 -rw——- 代表意義為何?
    Sol. 此檔為一檔案,擁有人的權限為可讀、可寫、不可執行;
    同群組使用者權限為不可讀、不可寫、不可執行;
    其他使用者權限為不可讀、不可寫、不可執行。
  9. 每個檔案或目錄都有權限設定,ls -l 輸出的第一個櫚位為 -r-xr-xr– 代表意義為何?
    Sol. 此檔為一檔案,擁有人的權限為可讀、不可寫、可執行;
    同群組使用者權限為可讀、不可寫、可執行;
    其他使用者權限為可讀、不可寫、不可執行。
  10. 每個檔案或目錄都有權限設定,ls -l 輸出的第一個櫚位為 lrwxrwxrwx 代表意義為何?
    Sol. 此檔為一連結檔,擁有人、同群組及其他使用者的權限皆為可讀、可寫、可執行。
  11. 每個檔案或目錄都有權限設定,ls -l 輸出的第一個櫚位為 brw——- 代表意義為何?
    Sol. 此檔為一可供儲存的周邊設備,擁有人的權限為可讀、可寫、不可執行;
    同群組使用者權限為不可讀、不可寫、不可執行;
    其他使用者權限為不可讀、不可寫、不可執行。
  12. 每個檔案或目錄都有權限設定,ls -l 輸出的第一個櫚位為 crw-rw—- 代表意義為何?
    Sol. 此檔為一序列埠設備,擁有人的權限為可讀、可寫、不可執行;
    同群組使用者權限為可讀、可寫、不可執行;
    其他使用者權限為不可讀、不可寫、不可執行。
  13. 每個檔案或目錄都有權限設定,ls -l 輸出的第七個櫚位為 .bashrc,其中檔名前有 『.』 代表意義為何?
    Sol. 表示此檔為『隱藏檔』。
  14. 進入某目錄成為『可工作目錄』的基本權限為何?
    Sol. 1.使用者可進入該目錄需具備 x 權限。 2.使用者可在該目錄查閱檔名,需具備 r 權限。
  15. 讀取一個檔案的基本權限為何?
    Sol. 1.使用者在該檔案所在的目錄至少要有 x 權限。 2.使用者對該檔案至少要有 r 權限。
  16. 修改一個檔案的基本權限為何?
    Sol. 1.使用者在該檔案所在的目錄至少要有 x 權限。 2.使用者對該檔案至少要有 r, w 權限。
  17. 建立一個檔案的基本權限為何?
    Sol. 使用者在該目錄要具有 w,x 的權限。
  18. 進入某目錄並執行該目錄下的某個指令之基本權限為何?
    Sol. 1.使用者在該目錄至少要有 x 的權限。 2.使用者在該檔案至少需要有 x 的權限。
  19. 在 Linux 檔案系統中,刪除一個檔案最少要具備什麼權限?
    Sol. 只需對檔案所在目錄具有 wx。
  20. 使用者 foo 屬於群組 foo,有一個目錄名稱為 foo,使於使用者 root 及群組 root,並且目錄 foo 的存取權限為『drwxr-x--x』,則使用者 foo 可不可以進入目錄 foo?
    Sol. 可以。
  21. 使用者 foo 屬於群組 foo,有一個目錄名稱為 foo,使於使用者 root 及群組 root,並且目錄 foo 的存取權限為『drwxr-x--x』,則使用者 foo 可不可以由 ls 看到目錄 foo 下有哪些檔案?
    Sol. 不可以。
  22. 使用者 foo 屬於群組 foo,有一個目錄名稱為 foo,使於使用者 root 及群組 root,並且目錄 foo 的存取權限為『drwxr-x--x』,如果目錄 foo 中有一檔案 bar 其存取權限為 777,使用者 foo 可不可以讀取 bar?
    Sol. 可以。

  DYWANG_HOME