改變檔案權限

  1. chgrp:改變檔案所屬群組。

    chgrp 群組名稱 檔案或目錄
    

    • 群組名稱必須已存在於 /etc/group,否則會產生錯誤。
  2. chown:改變檔案擁有者。
    chown [ -R ] 帳號名稱 檔案或目錄
    chown [ -R ] 帳號名稱:群組名稱 檔案或目錄
    
    1. 帳號名稱必須已存在於 /etc/passwd,否則會產生錯誤。
    2. 選項 [ -R ] 可以連目錄下的所有次目錄或檔案同時更改擁有者。
    3. chown 亦可同時更改所屬群組。

  3. chmod:改變權限。
    chmod [ -R ] xyz 檔案或目錄
    chmod [ -R ] u = r 檔案或目錄
                 g + w 檔案或目錄
                 o - x 檔案或目錄
                 a     檔案或目錄
    chmod u=rwx,go=rx 檔案或目錄
    chmod a-x 檔案或目錄
    
    • xyz 為三組 rwx 屬性數值之加總。
      r : 4
      w : 2
      x : 1
    • -rwxr-xr-- 之屬性數值為 754
    • 符號類型
      u : user
      g : group
      o : other
      a : all
      + : 加入
      - : 除去
      = : 設定
  4. 例題:若從光碟複製某一目錄 abc (包含次目錄之所有檔案)至硬碟,則目前使用者雖為檔案擁有者,但卻無法修改該檔案,請問如何以簡單的方式,讓使用者可以修改所有檔案?
    chmod u+w -R abc
    

練習題

  1. 如何變更檔案 foo 所屬群組為 root?
    Sol. chgrp root foo
  2. 要變更檔案 foo 所屬群組為 csie,則群組 csie 必須存在,否則會產生錯誤,亦即 csie 必須存在於那個檔案中?
    Sol. /etc/group
  3. 如何變更檔案 foo 擁有者為 root?
    Sol. chown root foo
  4. 要變更檔案 foo 擁有者為 csie,則 csie 帳號必須存在,否則會產生錯誤,亦即 csie 必須存在於那個檔案中?
    Sol. /etc/passwd
  5. 如何以一個指令一次變更檔案 foo 擁有者為 root,且所屬群組為 wheel?
    Sol. chown root:wheel foo
  6. 如何以一個指令一次變更目錄 /root 及其下所有次目錄或檔案之擁有者為 root,且所屬群組為 wheel?
    Sol. chown root:wheel -R /root
  7. 如何以一個指令改變檔案 /tmp/pwfile 的擁有者為 csie 且所屬群組為 users?
    Sol. chown csie:users /tmp/pwfile
  8. 如何以一個指令改變目錄 /tmp/testdir 及其次目錄與檔案的擁有者為 csie1?
    Sol. chown -R csie1 /tmp/testdir
  9. 如何將檔案 /tmp/testfile 的權限改成 -rw-r—–?
    Sol. chmod 640 /tmp/testfile 或 chmod u=rw,g=r,o= /tmp/testfile
  10. 如何將檔案 /tmp/testfile 的權限改成 -rwxr-x—?
    Sol. chmod 750 /tmp/testfile 或 chmod u=rwx,g=rx,o= /tmp/testfile
  11. 如何變更目錄 foo 及其下所有次目錄或檔案,擁有者的權限為可讀及可寫,其他權限則不變?
    Sol. chmod u=rw -R foo
  12. 如何變更檔案 foo 擁有者的權限為可讀及可寫,其他權限則不變?
    Sol. chmod u=rw foo
  13. 如何去除擁有者對檔案 foo 可執行的權限,其他權限則不變?
    Sol. chmod u-x foo
  14. 如何增加擁有者對檔案 foo 可寫的權限,其他權限則不變?
    Sol. chmod u+w foo
  15. 如何變更目錄 foo 及其下所有次目錄或檔案,所屬群組及其他使用者的權限為可讀及可執行,其他權限則不變?
    Sol. chmod go=rx -R foo
  16. 如何變更檔案 foo 所屬群組及其他使用者的權限為可讀及可執行,其他權限則不變?
    Sol. chmod go=rx foo
  17. 如何去除其他使用者對檔案 foo 可寫的權限,其他權限則不變?
    Sol. chmod o-w foo
  18. 如何增加所屬群組對檔案 foo 可執行的權限,其他權限則不變?
    Sol. chmod g+x foo
  19. 如何以屬性數值設定檔案 foo 的權限,擁有者為可讀、可寫、可執行;所屬群組為可讀、不可寫、可執行;其他使用者則為不可讀、寫及執行?
    Sol. chmod 750 foo
  20. 如何以屬性數值設定檔案 foo 的權限,擁有者為可讀、可寫、可執行;所屬群組為可讀、不可寫、不可執行;其他使用者則為不可讀、寫及執行?
    Sol. chmod 740 foo
  21. 如何以屬性數值設定檔案 foo 的權限,擁有者為可讀、可寫、不可執行;所屬群組為可讀、不可寫、不可執行;其他使用者則為可讀、不可寫、不可執行?
    Sol. chmod 644 foo
  22. 如何以屬性數值設定目錄 foo 及其下所有次目錄或檔案的權限,擁有者為可讀、可寫、不可執行;所屬群組為可讀、不可寫、不可執行;其他使用者則為可讀、不可寫、不可執行?
    Sol. chmod 644 -R foo

  DYWANG_HOME