一、使用者與群組
我們使用useradd創建用戶時知道該用戶是屬于某一個group組里的,除了超級用戶root外,按照所針對的用戶,文件的權限可分為三類:
1) 文件屬主,創建該文件的用戶。
2) 同組用戶,擁有該文件的用戶組中的任何用戶。
3) 其他用戶,即不屬于擁有該文件的用戶組的某一用戶。
一個文件一經創建,就具有三種訪問方式:
1) 讀,可以顯示該文件的內容。
2) 寫,可以編輯或刪除它。
3) 執行,如果該文件是一個 s h e l l腳本或程序。
二、linux檔案的權限
1、Linux 檔案的屬性
查看當前目錄下的所有文件 ls -al
輸出結果中各字段的含義
(1) 文件類型與權限,共10位
(2) i-node,硬連接數(表示占用 i-node數。i-node是文件內容的真實表達,而filename是inode上層的表示方法。因此,每個文件名只能對應一個i-node,一個i-node可以對應多個文件名)
(3) 文件屬主
(4) 文件屬組
(5) 文件大小
(6) 創建時間
(7) 文件名
2、文件類型與權限詳細說明
第1位表示文件類型,共有7種類型:
d表示目錄文件
l表示符號連接文件
s表示socket文件
c表示字符設備文件
b表示塊設備文件
p表示命名管道文件
- 表示普通文件,或者更準確地說,不屬于以上幾種類型的文件
第2至10位,9個字母分成3組,3個一組,分別代表“屬主權限”、“屬組權限”、“其他權限”,其形式為rwx:
r:可讀,文件可讀其內容,目錄可列出基下文件
w:可寫,文件可修改內容,目錄創建、刪除文件
x:可執行,文件可執行,目錄可進入
-:表示沒有權限
例如:drwxr-xr-x 則表示該文件是一個文件屬主可讀、寫、執行,同組用戶和其他用戶可讀、執行的目錄
3、改變文件的權限chmod
對于屬于你的文件,可以按照自己的需要改變其權限位的設置
三、更改文件的訪問權限 chmod
1. 命令格式:
chmod [-cfvR] [--help] [--version] mode file
2. 命令功能:
用于改變文件或目錄的訪問權限,用它控制文件或目錄的訪問權限。
3. 命令參數:
必要參數:
-c 當發生改變時,報告處理信息
-f 錯誤信息不輸出
-R 處理指定目錄以及其子目錄下的所有文件
-v 運行時顯示詳細處理信息
選擇參數:
--reference=<目錄或者文件> 設置成具有指定目錄或者文件具有相同的權限
--version 顯示版本信息
4. 命令使用:
該命令有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。
1)文字設定法:
chmod [who] [+ - =] [mode] 文件名
who表示權限范圍是:
u :目錄或者文件的當前的用戶
g :目錄或者文件的當前的群組
o :除了目錄或者文件的當前用戶或群組之外的用戶或者群組
a :所有的用戶及群組(默認)
o p e r a t o r的含義:
+ 增加權限。
- 取消權限。
= 設定權限。
權限代號:
r :讀權限,用數字4表示
w :寫權限,用數字2表示
x :執行權限,用數字1表示
- :無權限,用數字0表示
s :特殊權限
使用示例:
① 增加文件所有用戶組可執行權限 chmod -v a+x test.txt
說明:
即設定文件log2012.log的屬性為:文件屬主(u) 增加執行權限;與文件屬主同組用戶(g) 增加執行權限;其他用戶(o) 增加執行權限。
② 同時修改不同用戶權限 chmod ug+w,o-x test.txt
說明:
即設定文件text的屬性為:文件屬主(u) 增加寫權限;與文件屬主同組用戶(g) 增加寫權限;其他用戶(o) 刪除執行權限
③ 使用“=”設置權限 chmod u=r test.txt
說明:
撤銷原來所有的權限,然后使擁有者具有可讀權限
2)數字設定法
chmod [mode] 文件名
將代表所需權限的數字相加,得到3個從0到7的八進制數,其順序是(u)(g)(o)。數字與字符對應關系如下:r=4,w=2,x=1 ,-=0
若要rwx屬性則4+2+1=7
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=5。
使用示例:
① 設置文件的權限為文件屬主可讀可寫可執行,同組用戶可讀可寫,其他用戶只可讀 chmod -v 754 test.txt
② 設置當前目錄及其子目錄下所有文件的權限 chmod -R 755 .
說明:
遞歸地給當前目錄下所有文件和子目錄的屬主分配權限
四、更改文件的屬主 chown
chown將指定文件的擁有者改為指定的用戶或組,用戶可以是用戶名或者用戶ID;組可以是組名或者組ID;文件是以空格分開的要改變權限的文件列表,支持通配符。
1.命令格式:
chown [選項]... [所有者][:[組]] 文件...
2.命令功能:
改變文件的擁有者和群組。普通用戶不能將自己的文件改變成其他的擁有者。其操作權限一般為管理員。
3.命令參數:
必要參數:
-c 顯示更改的部分的信息
-f 忽略錯誤信息
-h 修復符號鏈接
-R 處理指定目錄以及其子目錄下的所有文件
-v 顯示詳細的處理信息
-deference 作用于符號鏈接的指向,而不是鏈接文件本身
選擇參數:
--reference=<目錄或文件> 把指定的目錄/文件作為參考,把操作的文件/目錄設置成參考文件/目錄相同擁有者和群組
--from=<當前用戶:當前群組> 只有當前用戶和群組跟指定的用戶和群組相同時才進行改變
--help 顯示幫助信息
--version 顯示版本信息
4.命令使用
① 修改文件名以t 開頭的文件的屬主和群組 chown ppnie:ppnie t*
② 改變指定目錄以及其子目錄下的所有文件的擁有者和群組 chown -v -R root:root .
五、更改文件的群組 chgrp
在lunix系統里,文件或目錄的權限的掌控以擁有者及所訴群組來管理。可以使用chgrp指令取變更文件與目錄所屬群組,這種方式采用群組名稱或群組識別碼都可以。Chgrp命令就是change group的縮寫!要被改變的組名必須要在/etc/group文件內存在才行。
1.命令格式:
chgrp [選項] [組] [文件]
2.命令功能:
chgrp命令可采用群組名稱或群組識別碼的方式改變文件或目錄的所屬群組。使用權限是超級用戶。
3.命令參數:
命令參數:
必要參數:
-c 當發生改變時輸出調試信息
-f 不顯示錯誤信息
-R 處理指定目錄以及其子目錄下的所有文件
-v 運行時顯示詳細的處理信息
--dereference 作用于符號鏈接的指向,而不是符號鏈接本身
--no-dereference 作用于符號鏈接本身
選擇參數:
--reference=<文件或者目錄>
--help 顯示幫助信息
--version 顯示版本信息
4.命令使用
例:根據指定文件改變文件的群組屬性
說明:改變文件test1.txt 的群組屬性,使得文件test1.txt的群組屬性和參考文件test.txt的群組屬性相同