三、Linux 檔案權限
首先來查看一下當前目錄下的檔案內容吧
ls -l 查看當前目錄下的檔案串列
ls -l xxx.xxx (xxx.xxx是檔案名) 查看指定的檔案

我們可以看到檔案的權限,-rw-rw-r-- ,一共有10位數,
其中: 最前面那個 - 代表的是型別(詳細如下面貼圖所示)
中間那三個 rw- 代表的是所有者(user)
然后那三個 rw- 代表的是組群(group)
最后那三個 r-- 代表的是其他人(other)
然后我再解釋一下后面那9位數:
r 表示檔案可以被讀(read)
w 表示檔案可以被寫(write)
x 表示檔案可以被執行(如果它是程式的話)
- 表示相應的權限還沒有被授予
檔案和檔案夾操作權限:
| 權限 | 簡寫 | 對普通檔案的作用 | 對檔案夾的作用 |
|---|---|---|---|
| 讀取 | r | 查看檔案內容 | 列出檔案夾中的檔案(ls) |
| 寫入 | w | 修改檔案內容 | 在檔案夾中洗掉、添加或重命名檔案(夾) |
| 執行 | x | 檔案可以作為程式執行 | cd 到檔案夾 |
圖解:


需要注意的一點是,一個目錄同時具有讀權限和執行權限才可以打開并查看內部檔案,而一個目錄要有寫權限才允許在其中創建其它檔案,這是因為目錄檔案實際保存著該目錄里面的檔案的串列等資訊,
補充:
特殊權限SUID、SGID、Sticky
在 linux 系統中還有三種與用戶身份無關的三個檔案權限屬性,即SUID、SGID和Sticky,
SUID(Set User ID, 4):
該屬性只對有執行權限的檔案有效,對目錄無效,執行具有SUID權限的程式時,引發的行程的所有者是程式檔案的所有者,而不是啟動程式的用戶(除非二者是同一個人),比如,如果一個程式的所有者是root且具有SUID屬性,一個普通用戶執行此程式時,如同root執行此程式一樣,(請注意該屬性對Shell腳本程式無效)該屬性為一些特殊程式(如lpr)的啟動帶來了方便,但有時也帶來了安全隱患:比如一個具有SUID屬性的程式如果在執行時運行了一個shell,那么用戶可以籍此得到系統的最高權限,SUID可用s表示,如:
$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 47032 Feb 16 2014 /usr/bin/passwd
SGID(Set Group ID, 4):
對于可執行檔案,SGID與SUID類似,引發的行程的所有組是程式檔案所屬的組,對于目錄,SGID屬性會使目錄中新建檔案的所屬組與該目錄相同,SGID也可以用
s
表示,如:
$ ls -l /var
drwxrw
s
r-x 2 root staff 4096 Apr 10 2014 local
drwxrwxr-x 15 root syslog 4096 Apr 4 19:57 log
Sticky, 1:
僅對目錄有效,帶sticky屬性的目錄下的檔案或目錄可以被其擁有者洗掉或改名,常利用sticky屬性創建這樣的目錄:組用戶可以在此目錄中創建新檔案、修改檔案內容,但只有檔案所有者才能對自己的檔案進行洗掉或改名,如系統中的/tmp檔案夾,在屬性字串中,通常用
t
表示,
$ ls -l /
drwxrwxrw
t
8 root root 4096 Apr 4 23:57 tmp
修改檔案和檔案夾對應用戶的操作權限
如果你有一個自己的檔案不想被其他用戶讀、寫、執行,那么就需要對檔案的權限做修改,這里有兩種方式:
方式一:二進制數字表示

每個檔案的三組權限:
u 代表所有者(user)
g 代表所有者所在的組群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
根據上圖,其中:rwx也可以用數字來代替
r ------------4w -----------2x ------------1- ------------0
當大家都明白了上面的東西之后,那么我們常見的以下的一些權限就很容易都明白了:
-rw------- (600) 只有所有者才有讀和寫的權限
-rw-r--r-- (644) 只有所有者才有讀和寫的權限,組群和其他人只有讀的權限
-rwx------ (700) 只有所有者才有讀,寫,執行的權限
-rwxr-xr-x (755) 只有所有者才有讀,寫,執行的權限,組群和其他人只有讀和執行的權限
-rwx--x--x (711) 只有所有者才有讀,寫,執行的權限,組群和其他人只有執行的權限
-rw-rw-rw- (666) 每個人都有讀寫的權限
-rwxrwxrwx (777) 每個人都有讀寫和執行的權限
上實際操作
查看了test的權限,是所有者擁有讀、寫、執行的權限:

然后向檔案里添加了些內容,更改了下權限(700:-rwx------),并嘗試在shiyanlou(所有者)下讀取檔案,可以讀取,

更換到其他用戶Peter,如下圖再嘗試讀取,顯示是權限不夠,無法讀取,

方式二:加減賦值操作
u 代表所有者(user)
g 代表所有者所在的組群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
+ 和 - 分別表示增加和去掉相應的權限,+號一般不顯示(初學練手時我還是會加上)
在終端輸入:
chmod o+w xxx.xxx
chmod o w xxx.xxx 表示給其他人授予寫xxx.xxx這個檔案的權限
chmod go-rw xxx.xxx 表示洗掉xxx.xxx中組群和其他人的讀和寫的權限
chmod ug-r xxx.xxx


修改檔案或檔案夾的擁有者/所屬的組
使用命令chown改變目錄或檔案的所有權(所有者/組)
注釋:這里說的斷斷續續的,將在學習下一個內容(用戶/組 增刪改查)之后補充
檔案與目錄不僅可以改變權限,其所有權及所屬用戶組也能修改,和設定權限類似,用戶可以通過圖形界面來設定,或執行chown命令來修改,
我們先執行ls -l看看目錄情況:

可以看到test檔案的所屬用戶組為root,所有者為root,
執行下面命令,把上圖中test檔案的所有權轉移到用戶peter:
# chown peter test

要改變所屬組,將test檔案從root組中轉移到組Peter中,可使用下面命令:
# chown :peter test

將所屬的用戶和組一起更改
將檔案夾或檔案test的擁有者修改成shiyanlou,所屬的組修改成shiyanlou,如下圖:


本文由博客一文多發平臺 OpenWrite 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/252403.html
標籤:其他
上一篇:linux系統下載
下一篇:手機linux系統安裝
