iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
自我挑戰組

大二萌新的學習紀錄系列 第 26

Day 26 : Linux - 檔案or目錄的權限該怎麼看?又該如何做更改?

如標題,今天想和大家聊聊權限這東西
權限在Linux是個非常非常重要的東西,如果你一直被terminal告知沒有權限,那你一定要看這篇!!


首先,你先在你的家目錄下建立兩個檔案,分別為test_1.txttest_2.txt
再用ls -l查看「所有檔案or目錄」的詳細資料

這裡可分成4大類:

  1. 是「權限的標示代號」,也是本篇的重頭戲
  2. 是檔案or目錄的「擁有者
  3. 是「擁有者的群組名稱
  4. 是檔案or目錄的「相關資訊
    https://ithelp.ithome.com.tw/upload/images/20211010/201410883vLGuFHuKa.png

這裡我們把1. 獨立拿出來講,假設有一個「目錄」,它的權限代號為:「drwxrwxrwx
通常會將它們分成1333的形式,所以會變成:

d  rwx  rwx  rwx

那他們分別代表什麼意思呢?

第一組的d代表的是「檔案屬性
第二組的rwx代表「檔案擁有者」的權限
第三組的rwx代表「同群組使用者」的權限
第四組的rwx代表「其他使用者」的權限


首先,我們先來講第一組的「檔案屬性」有哪幾種標示方法:

  1. d: 表示這是一個「目錄」
  2. -: 表示這是一個「普通的檔案」
  3. l: 表示這是一個「符號連結」的檔案,你可以把它的意思想成是windows裡的「捷徑」
  4. b、c: 是特殊形態的檔案,分別代表「區塊設備」和其他的「周邊設備」
  5. s、p: 通常很少見到,這些檔案關係到系統的「資料結構」和「管線」

再來,我們講第二三四組的「權限代號」代表什麼意思

  1. r (Read - 讀取): 對「檔案」而言,使用者有「讀取檔案內容」的權限;對「目錄」而言,使用者有「瀏覽此目錄內容」的權限。但擁有瀏覽目錄的權限,「不代表」可以讀取該目錄下的檔案,能否讀取,仍取決於該檔案的「-r」權限為何
  2. w(Write - 寫入): 對「檔案」而言,使用者有「修改檔案內容」的權限;對「目錄」而言,使用者有「刪除、移動該目錄內檔案」的權限
  3. x(eXecute - 執行): 對「檔案」而言,使用者具有「執行檔案」的權限;對「目錄」而言,使用者有「進入目錄」的權限,但「不一定」可讀取該目錄下的檔案,能否讀取,仍取決於該檔案的「-r」權限為何
  4. - : 表示不具有該項權限

這樣講有點抽象,我們來舉幾個例子看看

我們先來看檔案的:
Ex 1: -rwx------: 只有「檔案擁有者」有讀取寫入執行等權限,其他人對此檔案沒有任何權限
Ex 2: -rwxr--r--: 「檔案擁有者」有讀取寫入執行等權限,而「群組使用者」、「其他使用者」只有讀取的權限
Ex 3: -rw-rw-r--: 「檔案擁有者」和「群組使用者」有讀取寫入等權限,而「其他使用者」只有讀取的權限

再看目錄的:
Ex 1: drwx------: 只有「目錄擁有者」有讀取寫入執行等權限,其他人對此檔案沒有任何權限
Ex 2: drwx--x--x: 「目錄擁有者」有讀取寫入執行等權限,而「群組使用者」、「其他使用者」只有執行的權限,但「沒辦法讀取」該目錄下的檔案列表


那如果我想更改權限呢?你可以用「數字表示法」去做更改

那什麼是數字表示法呢?就是將rwx分別用數字去對應:

r對應的數字為4
w對應的數字為2
x對應的數字為1

所以,假設有一檔案權限為「-rwxrwxrwx」,這裡我們只看2~9的字元,3個為一組去做加總,則它的權限表示方法就是777,如果是「----------」,則為000


我們再多看幾個例子:

Ex 1. -rwx------: 700
Ex 2. -rwxr—r--: 744
Ex 3. -rw-rw---x: 661
Ex 4. dr-xr-xr--: 554
Ex 5. d-wx-rwx-wx: 373

不管檔案屬性是-(檔案)還是d(目錄)都不影響,因為它只看2~9的字元
切記: 需3個為一組去做加總


了解數字表示法後,再用chomd去做更改,格式為: chomd 權限數字 檔案or目錄名稱

這裡我們用檔案test_1.txt做示範,我們將它的權限從664改成777,也就是-rwxrwxrwx
https://ithelp.ithome.com.tw/upload/images/20211010/201410880WjksGzNNH.png


以上就是今天的介紹

希望大家看完能對權限更加了解


上一篇
Day 25 : Linux - 如何在windows使用scp去傳送檔案至Linux上?
下一篇
Day 27 : Python - 什麼是列表推導式?又該如何將它和if、if-else一起做使用?
系列文
大二萌新的學習紀錄30

尚未有邦友留言

立即登入留言