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/來更新新用戶與新組