一個文件一經創建就具有三種訪問方式:
1.讀
2.寫
3.執行
按照所針對的用戶,文件的權限可分爲三類:
1.文件屬主
2.同組用戶
3.其他用戶
1.1文件
一個文件一經創建系統將保存其所有信息(文件位置、文件類型、文件長度、文件的權限等)
1.2文件類型
文件的類型有7種(可以用ls -l 命令查看得出的結果的第一位看出)
d 目錄
l 符號鏈接(指向另一個文件)
s 套接文字
b 塊設備文件
c 字符設備
p 命令管道文件
- 普通文件(不屬於以上類型的文件)
1.3權限
使用touch創建一個測試文件
# touch test
然後使用 ls -l查看
#ls -l
-rw-r--r-- 1 root root 0 05-22 11:58 test
第一個 - 告訴我們這是一個普通文件
接下來的9個字符代表的意思分別爲:
rw- 文件屬主的權限
r-- 同組用戶的權限
r--其他人的權限
接着是1 表示該文件硬鏈接的數目
root 文件的屬主
root 文件屬主所在的用戶組
0 文件的長度 不是K字節
05-22 11:58 文件更新時間
test 文件名
三組字符中每一組字符中含有三個權限爲:
r 讀權限
w 寫權限/更改權限
x 執行該腳本或程序的權限
(- 表示被禁用)
下面我們來看一下剛纔創建的文件權限-rw-r--r--
- rw- r-- r--
屬於普通文件 屬主可以讀寫但不可以執行 同組用戶可以讀 但不可以寫和執行 其他用戶可讀 但不可寫和執行
示例:
- rwx r-x rw-
屬於普通文件 屬主可以讀寫執行 同組用戶可以讀和執行 但不可以寫 其他用戶可讀寫 但不可執行
1.4改變權限位
符號模式
chmod 格式:
chmod [who] operator [permission] filename
who :
u 文件屬主權限
g 同組用戶權限
o 其他用戶權限
a 所有用戶
operator :
+ 增加權限
- 取消權限
= 設定權限
permission:
r 讀
w 寫
x 執行
s
t
........
我們來修改我們剛纔創建的文件:-rw-r--r-- 1 root root 0 05-22 11:58 test
使其屬主具有執行的權限
#chmod u+x test
使其同組用戶具有寫的權限
#chmod g+w test
賦於同組用戶和其他用戶寫的權限
#chmod go+w test
絕對模式:
chmod [mode] file
mode是一個八進制數
對於八進制數和文件權限表
0400 文件屬主可讀
0200 文件屬主可寫
0100 文件屬主可執行
0040 同組用戶可讀
0020 同組用戶可讀
0010 同組用戶可執行
0004 其他用戶可讀
0002 其他用戶可寫
0001 其他用戶可執行
看我們剛纔的文件:-rw-r--r-- 1 root root 0 05-22 11:58 test
rw- = 0400 + 0200 = 0600
r-- = 0040
r-- = 0004
最後結果等於:0600 + 0040 + 0004 = 0644(644即表示rw-r--r--權限)
另外一種算法
r w - r - - r - -
4 +2 4 4 =644
r w x r - - r - -
4+2+1 4 4 = 744
r w x r w - r w -
4+2+1 4+2 4+2 =766
現在我們可以用絕對模式把我們剛纔創建的文件進行修改:
目前我們的文件:-rwxrwxr-- 1 root root 0 05-22 11:59 test
我們使其同組用戶和其他用戶只具有讀權限
#chmod 744 test
#ls -l
-rwxr--r-- 1 root root 0 05-22 11:59 test
我們使屬主不具有執行 並且同組用戶具有讀寫 其他用戶只具有讀權限
#chmod 664 test
#ls -l
-rw-rw-r-- 1 root root 0 05-22 11:59 test
如果想要一次設置一個目錄下面的所有文件的權限 可使用下面命令:
chmod 644*
這將使文件屬主不具有執行 並且同組用戶具有讀寫 其他用戶只具有讀權限
還可以使用-R選項連同子目錄下的文件一起設置
chmod -R 644 /usr/local/home/*
這樣就可以一次將/usr/local/home/
目錄下的所有文件連同各個子目錄下的文件的權限全部設置成644權限