1. 文件與目錄權限
1) UID與GID
Ø UID
UID是一個數值,是Linux系統中唯一的用戶標識,用於區別不同的用戶。在系統內部管理進程和文件保護時使用UID字段。在Linux系統中,註冊名和UID都可以用於標識用戶,只不過對於系統來說UID更爲重要;而對於用戶來說註冊名使用起來更方便。在某些特定目的下,系統中可以存在多個擁有不同註冊名、但UID相同的用戶,事實上,這些使用不同註冊名的用戶實際上是同一個用戶。
/etc/passwd放賬號,/etc/shadow放密碼
passwd中每行以冒號隔開,分成7段,分別表示爲:用戶名:密碼:UID號碼:GID號碼:GECOS字段:主目錄:用戶登錄時要運行的SHELL,考慮到安全問題,現在的密碼已經不存放在passwd文件中,而是單獨存放在/etc/shadow裏,GECOS字段包含用戶的真實姓名
Ø GID
GID是當前用戶的缺省工作組標識。具有相似屬性的多個用戶可以被分配到同一個組內,每個組都有自己的組名,且以自己的組標識號相區分。像UID一樣,用戶的組標誌號也存放在passwd文件中。在現代的Unix/Linux中,每個用戶可以同時屬於多個組。除了在passwd文件中指定其歸屬的基本組之外,還在/etc/group文件中指明一個組所包含用戶。
/etc/group放賬號,/etc/gshadow放密碼
group中每行以冒號隔開,分成4段,分別表示爲:組羣名:組羣口令:GID號碼:組羣成員列表,考慮到安全問題,現在的密碼已經不存放在group文件中,而是單獨存放在/etc/gshadow裏
2) 文件所有者及匹配順序
Ø 文件所屬用戶(user)
如果UID匹配,就應用用戶權限
Ø 所屬用戶組(group)
否則,如果GID匹配,就應用組羣權限
Ø 其他用戶(other)
如果都不匹配,就應用其他權限
3) 權限
Ø 讀(read)
數字表示爲4,對於文件而言,可讀權限爲可以查看其文件內容,對於目錄而言,表示具有讀取目錄結構清單的權限,即(ls、ll等命令)
Ø 寫(write)
數字表示爲2,對於文件而言,可寫權限爲可以修改與刪除文件的內容或文件本身,對於目錄而言,表示在該目錄下是否可以建立新的文件與目錄,刪除已經存在的文件與目錄,將已存在的文件或目錄進行更名,移動該目錄內的文件、目錄的位置
Ø 執行(execute)
數字表示爲1,在Windows中一個文檔是否具有執行的能力是由後綴名來判斷的,例如.exe、.bat、.com等,但在Linux下,則是由是否具有x這個權限來決定的,跟文件名是沒有關係的
Ø 詳細列表
十進制
|
二進制
|
含義
|
0
|
0
|
無權限
|
1
|
1
|
可執行
|
2
|
10
|
可寫
|
3
|
11
|
可寫可執行
|
4
|
100
|
可讀
|
5
|
101
|
可讀可執行
|
6
|
110
|
可讀可寫
|
7
|
111
|
可讀可寫可執行
|
4) 權限位
Ø T:
文件類型,Linux系統對於設備、目錄、文件都當作是文件來處理,也就是說Linux下一切皆爲文件
文件標誌
|
文件類型
|
舉例
|
-
|
普通文件
|
數據文件、ASCII存文本文件、程序
|
d
|
目錄
|
/bin、/etc、/usr等
|
b
|
塊設備
|
/dev/hda(第一個IDE硬盤)或/dev/sda(第一個STAT硬盤)
|
c
|
字符設備
|
/dev/ttyS1(與DOS中的串口2等同)
|
p
|
命名管道
|
/dev/initctl(與”|”等同)
|
s
|
套接字
|
/dev/log
|
l
|
符號鏈接
|
/dev/cdrom->hdc
|
Ø U
用戶權限,從左到右3個U分別表示用戶的可讀,可寫,可執行
Ø G
組權限,從左到右3個G分別表示用戶組可讀,可寫,可執行
Ø O
其他用戶權限,從左到右3個O分別表示其他用戶可讀,可寫,可執行
5) 查看
顯示的信息從左到右分別權限、連接數、所有者、所屬組、文件大小、最後被修改的日期、文件名,其中權限裏-表示該文件爲普通文件,rw-表示該文件的用戶權限爲可讀可寫,第一個r--表示該文件的組權限爲可讀,第二個r--表示該文件的其他用戶權限爲可讀
2. 特殊權限位
1) 創建測試用戶
創建測試用戶zwb與zzj並設置好密碼
2) u+s位
當其他用戶(other)擁有執行權限,而user擁有s位時,other會成爲user,擁有它的最高權限,僅僅只對命令而言,如passwd、mount
文件/usr/bin/passwd爲用戶rws,其他用戶rx權限,切換到zwb用戶後,使用passwd可以修改密碼,回到root用戶,使用chmod u-s /usr/bin/passwd將用戶的s權限位減掉,再次切換到zwb用戶,使用passwd修改密碼時提示passwd:Authentication token manipulation error,驗證口令操作錯誤
3) g+s位
當g+s位時,不論誰在這個文件夾中創建,都屬於這個組
使用root用戶在/tmp目錄下創建zwbzzj目錄,並且給該目錄的組用戶加上s的權限,並且給其他用戶加上寫的權限,使用zwb用戶登錄後,在zwbzzj目錄下創建一個名爲zwb的文件,使用zzj用戶登錄後,在zwbzzj目錄下創建一個名爲zzj的文件,使用ll查看,看到使用不同的2個用戶所創建的2個文件都爲root組的
4) o+t位
誰創建誰刪除
tmp目錄本身就有o+t的權限,所以在tmp目錄下創建的文件,誰創建的文件,只有自己能刪除,使用zwb用戶在tmp目錄下創建一個zwb的文件,切換到zzj用戶後使用刪除命令刪除提示rm:cannot remove ‘zwb’:Operation not permitted,無法刪除’zwb’:不允許操作
5) 大小寫
有執行權限特殊權限爲小寫,無執行權限特殊權限爲大寫
ll查看到文件A的其他用戶權限爲rwt,t爲特殊權限,小寫代表其有執行權限,chmod o-x A將文件A的其他用戶的執行權限減去後,ll查看原先的小寫t變成了大寫T
6) 數字表示
數字
|
4
|
2
|
1
|
權限
|
u+s
|
g+s
|
o+t
|
3. 權限的修改
1) 默認權限
Ø umask值查看
第一個0表示特殊權限(不能修改),第二個0表示用戶,第三個0表示組,第四個0表示其他用戶
Ø 創建
目錄默認權限爲777-umask值,也就是0755,文件默認權限爲目錄默認權限減執行權限
Ø 修改
將umask值修改成0011後,創建文件夾zzj,zzj權限爲0766,第一個表示特殊權限的0不能修改,修改將會提示:
2) 修改文件與目錄權限
Ø 命令介紹
chmod
|
參數
|
a、u、g、o
|
+、-、=
|
r、w、x
|
文件名
|
數字
|
參數-R進行遞歸,就是目錄下的所有文件、目錄都更新成現在的設置
Ø 直接給權限
創建文件A與目錄zwb,使用chmod命令來改變其權限,其中u=rwx,g=rwx,o=rwx與u=rwx,g=rx,o=rx分別表示給A文件指定用戶權限爲rwx,組權限爲rwx,其他用戶權限爲rwx,給zwb目錄指定用戶權限爲rwx,組權限爲rx,其他用戶權限爲rx
Ø 加減權限
使用rm -fr *命令將上面創建的文件與目錄刪除,再次創建文件A與目錄zwb,使用chmod命令來改變其權限,其中g+x與o+x分別表示A文件的組權限在原有的基礎上加上可執行權限,zwb目錄的其他用戶權限在原有的基礎上加上可執行權限
Ø 數字表示權限
使用rm -fr *命令將上面創建的文件與目錄刪除,再次創建文件A與目錄zwb,使用chmod命令來改變其權限,其中4775表示用戶權限爲rwx,組權限爲rwx,其他用戶權限爲rx(1+4=5),前面的4爲特殊權限u+s,由於用戶有可執行權限所以s爲小寫,0700表示,無特殊權限,且用戶權限爲rwx
4. 改變文件與目錄的所有權
1) 命令介紹
chown
|
參數
|
新用戶
|
新組
|
文件名
|
參數-R進行遞歸,就是目錄下的所有文件、目錄都更新成現在的設置
2) 創建組
創建組名爲zwbgroup的組
3) 改變所有者
創建文件A與目錄zwb,使用chown zwb A與zwb/來更新新用戶
4) 改變用戶組
創建文件A與目錄zwb,使用chown :zwbgroup A與zwb/來更新新組
5) 同時改變
創建文件A與目錄zwb,使用chown zwb:zwbgroup A與zwb/來更新新用戶與新組