Linux文件讀寫執行權限,以及對應的數字表示法

權限及對應的數字表示法

先看下ls命令的輸出:

jenkins@sHan:~/jenkins$ ll
total 75800
drwxrwxr-x 2 jenkins jenkins     4096 Jun 26 14:58 ./
drwxr-xr-x 8 jenkins jenkins     4096 Jun 26 14:58 ../
-rw-rw-r-- 1 jenkins jenkins        6 Jun 26 14:58 jenkins_pid
-rwxrwxr-- 1 jenkins jenkins      125 Jun 26 14:55 restart.sh*

如上圖所示,開頭的-rw-rw-r–這一字符串標識文件權限。

這個字符串有10位,可以分爲4段來解讀。注:r可讀,w可寫,x可執行。
第一段(第1位)表示是目錄還是文件,-表示是文件,d表示是目錄;
第二段(第2-4位,共3個字符串)表示文件所屬用戶對它的權限;
第三段(第5-7位,共3個字符串)表示文件所屬用戶組用戶對它的權限;
第四段(第8-10位,共3個字符串)表示其他用戶對它的權限;

注:我們用3位8進制來表示文件的權限,r用4標識,w用2標識,x用1標識

chmod 命令賦權

概念

文字設定法

chmod [who] [+ | - | =] [mode] 文件名

命令中各選項的含義爲:

操作對象who可是下述字母中的任一個或者它們的組合:
u 表示“用戶(user)”,即文件或目錄的所有者;
g 表示“同組(group)用戶”,即與文件屬主有相同組ID的所有用戶;
o 表示“其他(others)用戶”;
a 表示“所有(all)用戶”。它是系統默認值。

操作符號可以是:
+ 添加某個權限。
- 取消某個權限。
= 賦予給定權限並取消其他所有權限(如果有的話)。

設置mode所表示的權限可用下述字母的任意組合:
r 可讀。
w 可寫。
x 可執行。
X 只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x 屬性。
s 在文件執行時把進程的屬主或組ID置爲該文件的文件屬主。方式"u+s"設置文件的用戶ID位,"g+s"設置組ID位。
t 保存程序的文本到交換設備上。
u 與文件屬主擁有一樣的權限。
g 與和文件屬主同組的用戶擁有一樣的權限。
o 與其他用戶擁有一樣的權限。

文件名:以空格分開的要改變權限的文件列表,支持通配符。
在一個命令行中可給出多個權限方式,其間用逗號隔開。例如:chmod g+r,o+r example
使同組和其他用戶對文件example 有讀權限。

數字設定法

我們必須首先了解用數字表示的屬性的含義:0表示沒有權限,1表示可執行權限,2表示可寫權限,4表示可讀權限,然後將其相加。所以數字屬性的格式應爲3個從0到7的八進制數,其順序是(u)(g)(o)。

例如,如果想讓某個文件的屬主有“讀/寫”二種權限,需要把4(可讀)+2(可寫)=6(讀/寫)。

數字設定法的一般形式爲:

chmod [mode] 文件名

兩種方法的區別

文字設定法可以單獨增加權限,不影響現有權限,但是要更改現有權限則比較麻煩。
數字設定法不能單獨增加權限,但是更改現有權限非常方便,輸入字符量明顯少於文字設定法。

使用舉例

  1. 給當前用戶和用戶組增加文件example.sh的執行權限:
# 文字設定法
chmod ug+x example.sh
# 數字設定法無法實現增加
  1. 給當前用戶和用戶組設置文件example.sh的讀寫執行三個權限:
# 文字設定法
chmod ug=rwx example.sh
# 數字設定法
chmod 774 example.sh

一般情況下,用數字多一些,總感覺chmod ug+x file怪怪的,還是chmod 774 file 看着舒服。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章