iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0

權限設定

這個章節中的練習需要使用 root 帳號進行操作。

變更擁有者和群組

使用 chownchgrp 改變擁有者和群組

在 Linux 裡,我們已經知道每個文件都載明了 User 與 Group。我們可以透過 chownchgrp 等 2 個主要指令來修改文件文的欄位,用法說明如下:

  • chown 使用者名:群組名 檔案名:改變檔案的擁有者和群組。
  • chgrp 群組名 檔案名:改變檔案的群組。

這些指令組合起來提供了強大的工具,可以精確地控制不同使用者和群組如何存取系統上的檔案和目錄。透過適當地設定和管理 ugo 權限,可以保護敏感資料,同時促進協作和共享。

變更權限

在 Linux 中,設定檔案或目錄的 ugo 權限主要使用 chmod 指令。下面是一些具體的使用方式:

使用數字表示法

我們可以使用數字(八進制)來設定權限。例如:

  • chmod 755 檔案名:設定檔案的使用者權限為讀、寫、執行(7),群組權限為讀、執行(5),其他人權限為讀、執行(5)。

使用符號表示法

您還可以使用符號來更靈活地設定權限:

  • chmod u+x 檔案名:對檔案的擁有者(u)添加執行(x)權限。
  • chmod g-w 檔案名:從檔案的群組(g)權限中移除寫入(w)權限。
  • chmod o=r 檔案名:設定其他人(o)的權限僅為讀取(r)。

權限應用設定

為了能夠瞭解權限的應用,我們假設需要完成下列需求:

  • 建立目錄 /class
  • 使用者群組關系如下
    • Group: grp1
      • User: user11, user12
    • Group: grp2
      • User: user21, user22
  • 設定下列目錄權限需求
    • /class/public: 所有人都可以寫入
    • /class/grp1: 只有 grp1 群組可以讀寫,其它人沒有任何權限
    • /class/grp2: 只有 grp2 群組可以讀寫,其它人有讀取權限

其具體做法如下:

  1. 建立 grp1, grp2 群組:

    root# groupadd grp1
    root# groupadd grp2
    
  2. 建立使用者和群組對應:

    建立 user11, user12 並設定主要群組為 grp1:

    root# useradd -g grp1 user11
    root# useradd -g grp1 user12
    

    建立 user21, user22 並設定主要群組為 grp2:

    root# useradd -g grp2 user21
    root# useradd -g grp2 user22
    

    檢查各帳戶的群組資訊:

    root# id user11
    root# id user12
    root# id user21
    root# id user22
    
  3. 建立需求目錄:

    建立 /clss 目錄並進入該目錄:

    root# mkdir /class
    root# cd /class/
    

    建立需求相關子目錄:

    root# mkdir public grp1 grp2
    root# ls -lh
    
  4. 設定所有使用者對 public/ 都有存取權:

    root# chmod u=rwx,g=rwx,o=rwx public/
    root# ls -lh
    
  5. 設定 grp1 的權限:

    root# chmod u=rwx,g=rwx,o=--- grp1
    root# ls -lh
    
  6. 設定 grp1 的權限:

    root# chmod u=rwx,g=rwx,o=rx grp2
    root# ls -lh
    
  7. 指定群組 grp1 對應到 grp1/ 目錄:

    root# chgrp -R grp1 grp1/
    root# ls -lh
    
  8. 指定群組 grp2 對應到 grp2/ 目錄:

    root# chgrp -R grp2 grp2/
    root# ls -lh
    

上一篇
Day 10: Linux 檔案系統權限
下一篇
Day 12: 什麼是訊息重導
系列文
Linux 升華:初學者的探索到專家的洞察30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言