1压昼、Linux權(quán)限介紹
2、Linux文件屬性
3瘤运、如何改變Linux文件屬性權(quán)限
4窍霞、新建文件默認(rèn)權(quán)限
1、Linux權(quán)限介紹
Linux是個多人多任務(wù)系統(tǒng)拯坟。而為了讓各個用戶具有較保密的文件數(shù)據(jù)但金,因此文件的權(quán)限管理就比較重要了。
Linux一般將文件存儲的身份分為三個類別似谁,分別是owner/group/other傲绣,而且三種身份各有read/write/excude等權(quán)限。
Linux系統(tǒng)中巩踏,默認(rèn)情況下:
用戶相關(guān)信息存放在/etc/passwd秃诵;密碼存放在/etc/shadow;組名都存放在/etc/group塞琼。
文件權(quán)限:
r:可使用文件查看類工具獲取其內(nèi)容
w:可修改其內(nèi)容
x:可以把此文件提請內(nèi)核啟動為一個進(jìn)程
目錄權(quán)限:
r:可以使用ls查看此目錄中文件列表
w:可在此目錄中創(chuàng)建文件菠净,也可刪除此目錄中的文件
x:可以cd進(jìn)入此目錄,也可以執(zhí)行目錄里面的文件。執(zhí)行是基礎(chǔ)權(quán)限毅往。
目錄的執(zhí)行權(quán)限是基礎(chǔ)權(quán)限:
- ls命令需要r和x權(quán)限牵咙,否則看不了文件的元數(shù)據(jù),只能看到文件明名攀唯,也無法讀目錄里面的文件
- 創(chuàng)建和刪除目錄的文件必須同時有目錄的w和x權(quán)限
X(x權(quán)限特殊形式)
對于目錄洁桌,給目錄執(zhí)行權(quán)限。
對于文件如果文件任意一種角色有執(zhí)行權(quán)限侯嘀,那么文件會被加上執(zhí)行權(quán)限另凌;如果文件三種角色都沒有執(zhí)行權(quán)限,那么X不會給該文件執(zhí)行權(quán)限
我們想給某個目錄下所有子目錄執(zhí)行權(quán)限戒幔,而不給目錄下的文件執(zhí)行權(quán)限吠谢,就用到X。
例子:chmod -R o+X /app
注意:判斷一個用戶能否刪除文件诗茎,是看該用戶對于文件所在的目錄的權(quán)限工坊,而不是用戶對于文件的權(quán)限。因為刪除某個文件敢订,本質(zhì)上是刪除文件所在目錄上的文件名數(shù)據(jù)王污。
2、Linux文件屬性
[root@CentOS7 ~]#ls -al
dr-xr-x---. 14 root root 4096 May 18 10:18 .
dr-xr-xr-x. 18 root root 244 May 17 14:50 ..
-rw-------. 1 root root 1758 May 17 14:51 anaconda-ks.cfg
-rw-------. 1 root root 962 May 18 10:18 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
drwx------. 11 root root 222 May 17 15:05 .cache
drwx------. 17 root root 4096 May 17 16:34 .config
文件的屬性有七個字段楚午,其中第一個字段分別代表文件的類型以及owner/group/other三種身份的read/write/execude權(quán)限玉掸。
系統(tǒng)判斷某個用戶的權(quán)限時,匹配的順序是:是否文件所有者>是否屬于文件所屬組>other醒叁。
假如用戶已經(jīng)匹配上某種身份,不會再去看其他身份的權(quán)限泊业。
例如這個文件
----r--r--. 1 luo luo 176 Dec 29 2013 lizi
這個文件中把沼,luo用戶沒有任何讀寫執(zhí)行權(quán)限。 因為luo用戶是文件的owner吁伺,權(quán)限是---饮睬,因此系統(tǒng)不會看組的權(quán)限,也不會看other的權(quán)限篮奄。
root帳號有所有文件的讀寫權(quán)限捆愁。
一個文件如果所有角色都沒有執(zhí)行權(quán)限,那么root也沒有執(zhí)行權(quán)限窟却。
一個文件如果某個角色有執(zhí)行權(quán)限昼丑,那么root也有執(zhí)行權(quán)限。(root可以蹭權(quán)限)
3夸赫、如何改變Linux文件屬性權(quán)限
chgrp
改變文件所屬群組(普通用可以把屬于自己的文件改成自己所在的組)
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
-R 遞歸
chown
改變文件擁有者(普通用戶無權(quán)限把屬于自己的文件權(quán)限改成他人的)
chown [OPTION]... [OWNER][:[GROUP]] FILE...
用法:
OWNER
OWNER:GROUP
:GROUP
命令中的冒號可用.替換
-R: 遞歸
chown [OPTION]... --reference=RFILE FILE...
chmod
改變文件的權(quán)限
改變文件權(quán)限的方法有兩種:分別可以用數(shù)字或者符號進(jìn)行權(quán)限的變更菩帝。
(1)數(shù)字類型改變文件權(quán)限
權(quán)限分?jǐn)?shù)對照如下:
r:4
w:2
x:1
每種身份(owner/group/others)各自的三個權(quán)限(r/w/x)分?jǐn)?shù)是需要累
加的,例如當(dāng)權(quán)限為[-rwxrwx---] 分?jǐn)?shù)則是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
例子:chmod 777 .config
//把.config文件的owner/group/other的權(quán)限改為rwxrwxrwx
(2) 符號類型改變文件權(quán)限
u、g呼奢、o分別代表user宜雀、group、other握础,此外a代表all即全部身份而
rwx分別帶表讀寫執(zhí)行權(quán)限辐董。-表示去除,+表示增加禀综,=表示賦予简烘。
例子:chmod g-wr .config //e.config的group增加w和r權(quán)限
4、新建文件默認(rèn)權(quán)限
我們創(chuàng)建一個文件菇存,系統(tǒng)會默認(rèn)設(shè)置文件的權(quán)限值夸研,umask就是用來設(shè)置新文件權(quán)限的掩碼命令。
umask [選項] [掩碼]
當(dāng)新目錄或者文件被創(chuàng)建時依鸥,其最初的權(quán)限由umask決定亥至。用戶每次注冊進(jìn)入系統(tǒng)時,umask命令都被執(zhí)行贱迟,并自動設(shè)置掩碼改變默認(rèn)值姐扮,新的權(quán)限將會把舊的覆蓋。
umask:從777(目錄)或者666(文件)中衣吠,將文件對應(yīng)的權(quán)限位去掉茶敏,得到默認(rèn)權(quán)限。
算法:將umask取二進(jìn)制反碼缚俏,和777或者666進(jìn)行與運算惊搏。
例子:umask為021的時候,系統(tǒng)創(chuàng)建新文件的權(quán)限計算如下:
021---->000010001
反碼--->111101110
666---->110110110
權(quán)限--->110100110--->646--->rw-r--wr
umask: 查看
umask #: 設(shè)定
umask 002
umask –S 模式方式顯示
umask –p 輸出可被調(diào)用
全局設(shè)置: /etc/bashrc 用戶設(shè)置: ~/.bashrc
5忧换、linux文件的特殊權(quán)限SUID恬惯、SGID、Sticky
(1) 任何一個可執(zhí)行程序文件能不能啟動為進(jìn)程,取決發(fā)起者對程序文件是否擁有執(zhí)行權(quán)限
(2) 啟動為進(jìn)程之后亚茬,其進(jìn)程的屬主為發(fā)起者,進(jìn)程的屬組為發(fā)起者所屬的組
(3) 進(jìn)程訪問文件時的權(quán)限酪耳,取決于進(jìn)程的發(fā)起者
- 進(jìn)程的發(fā)起者,同文件的屬主:則應(yīng)用文件屬主權(quán)限
- 進(jìn)程的發(fā)起者刹缝,屬于文件屬組碗暗;則應(yīng)用文件屬組權(quán)限
- 應(yīng)用文件“其它”權(quán)限
SUID和GUID作用在可執(zhí)行的二進(jìn)制程序文件上
SUID:讓本來沒有執(zhí)行該文件的用戶運行這個程序時,繼承了程序所有者的權(quán)限梢夯,從而可以訪問沒有權(quán)限訪問的資源言疗。
權(quán)限設(shè)定:
chmod u+s FILE
chmod u-s FILE
例如普通用戶是沒有對shadow的讀寫權(quán)限的,但當(dāng)普通用戶使用passwd時厨疙,繼承了passwd這個程序的所有者root的權(quán)限洲守,從而有了對shadow文件修改的權(quán)限疑务。(當(dāng)然,普通用戶只能修改自己的密碼)
GUID:讓本來沒有執(zhí)行該文件的用戶運行這個程序時梗醇,繼承了程序所屬組的權(quán)限知允,從而可以訪問沒有權(quán)限訪問的資源。
當(dāng)SUID作用在目錄下的作用另有含義:新建文件的所屬組自動繼承父目錄所屬組叙谨。
Sticky:作用在目錄下温鸽,只有文件所有者和root才能刪除該文件。
sticky 設(shè)置在文件上無意義
權(quán)限設(shè)定:
chmod o+t DIR
chmod o-t DIR