文件系統(tǒng)權(quán)限管理


權(quán)限就是對文件或目錄“加鎖”腺律,有不同權(quán)限的人才能進去不同的入口……

一止吁、正常權(quán)限

1.1權(quán)限的查看


其中rw-r--r--.就是這個文件的權(quán)限了把篓,而后邊的root root代表文件的屬主和數(shù)組单旁。

我們先來看一下權(quán)限用什么代表:

  • r:讀權(quán)限(read)
  • w:寫權(quán)限(write)
  • x執(zhí)行(execute)

所屬:

  • u:屬主
  • g:屬組
  • o:其他人

rw-r--r--9個位拦赠,分為三段巍沙,每段三個位,依次為r,w,x權(quán)限荷鼠,三段分別為屬主句携,屬組,其他人三種類別的權(quán)限允乐。
屬主具有讀寫權(quán)限矮嫉,屬組有讀權(quán)限削咆,其他人有讀權(quán)限,如果顯示為-蠢笋,則代表該類人沒有此權(quán)限拨齐。那么root用戶對此文件有讀和寫的權(quán)限,但是沒有執(zhí)行權(quán)限昨寞,什么是執(zhí)行權(quán)限呢瞻惋,比如說我們的Windows中的exe文件,能雙擊執(zhí)行的就為可執(zhí)行的援岩,那么linux中歼狼,x則代表可執(zhí)行,一般為腳本文件享怀,或者是二進制文件(比如說ls命令)羽峰。
root組的用戶對這個文件有只讀權(quán)限,也就是不能更改和執(zhí)行了添瓷,限寞。對于不是root用戶,和不屬于root組的用戶仰坦,則也是只有只讀權(quán)限履植。

那么如何才能有自己想有的權(quán)限呢,就要所屬用戶或者root用戶來設(shè)置了悄晃。

1.2權(quán)限設(shè)置相關(guān)命令

權(quán)限設(shè)置有兩種方法:
1.2.1模式法
對象+-=權(quán)限
對象:ugoa——a相當于ugo三種類別的人
權(quán)限:rwx

[root@centos7.3 app]#chmod a-x dir/ #去掉dir所有對象的執(zhí)行權(quán)限
[root@centos7.3 app]#ll
drwxr-xr-x. 2 root root   6 May 29 19:48 di2
drw-r--r--. 2 root root   6 May 29 19:48 dir  #dir的全部對象的執(zhí)行權(quán)限已經(jīng)去掉
[root@centos7.3 app]#chmod u+x dir/ #給屬主添加執(zhí)行權(quán)限
drwxr-xr-x. 2 root root   6 May 29 19:48 di2
drwxr--r--. 2 root root   6 May 29 19:48 dir #已經(jīng)有屬主執(zhí)行權(quán)限了

還可以復(fù)制其他文件的權(quán)限

[root@centos7 ~]#chmod --reference=dir dir2   #參考dir的權(quán)限玫霎,為dir2設(shè)置權(quán)限

1.2.2數(shù)字法
數(shù)字也可以代表權(quán)限,r使用4表示妈橄,w使用2表示庶近,x使用1表示,1眷蚓、2鼻种、4看著有規(guī)律啊,不錯沙热,的確rwx使用二進制表示的話叉钥,有權(quán)限使用1表示,沒有使用0篙贸,那么如下圖:


具體只要在相應(yīng)位上有權(quán)限投队,則二進制為1,則三個位組合起來爵川,再從二進制轉(zhuǎn)化為十進制則數(shù)字可計算出來權(quán)限敷鸦。

[root@centos7.3 app]#chmod 754 dir/  
#用數(shù)字法給dir的屬主賦予rwx權(quán)限,屬組為rx權(quán)限,其他人為只讀r權(quán)限
[root@centos7.3 app]#ll
drwxr-xr-x. 2 root root   6 May 29 19:48 di2
drwxr-xr-. 2 root root   6 May 29 19:48 dir 

1.3umask

umask值用來消除創(chuàng)建文件時的相應(yīng)位上的權(quán)限(從二進制方面理解)扒披;
新建文件: 666 - umask值就是新建文件的默認權(quán)限值依,因為新建文件默認沒有執(zhí)行權(quán)限的(沒有1權(quán)限,所以只要有奇數(shù)權(quán)限則代表有執(zhí)行權(quán)限)碟案,所以得到的權(quán)限必定是偶數(shù)鳞滨,如果umask為奇數(shù),則用666減去將得到奇數(shù)權(quán)限蟆淀,如果所得結(jié)果某位存在奇數(shù)權(quán)限拯啦,則將其權(quán)限+1(因為從二進制方面理解,如果相應(yīng)位沒有權(quán)限熔任,則多減了1褒链,故要加上1來彌補這個權(quán)限);

[root@CentOS7 ~]# umask
0022
[root@CentOS7 ~]# umask 135     #將當前umask設(shè)為135,
[root@CentOS7 ~]# umask
0135       #修改成功
[root@CentOS7 ~]# touch f2
[root@CentOS7 ~]# ls -l f2
-rw-r---w-. 1 root root 0 Jun  3 20:45 f2#按理說666-135=531疑苔,但是奇數(shù)權(quán)限加上1甫匹,則成為642

新建目錄: 777 - umask值就是新建目錄的默認權(quán)限;
管理員的umask 是 022
普通用戶的umask是 002

[root@centos7.3 app]#umask  #查看當前用戶的umask值
0022 #root的umask值是002
[root@centos7.3 app]#umask 002 #把當前用戶的umask值改為002
[root@centos7.3 app]#umask
0002 #修改成功
[root@centos7.3 app]#umask -S #模式方式顯示
u=rwx,g=rwx,o=rx
[root@centos7.3 app]#umask -p #顯示全部惦费,輸出可被程序調(diào)用
umask 0002

1.4X權(quán)限的理解

X的作用(x權(quán)限特殊形式)
針對目錄增加x權(quán)限
對文件
1 無執(zhí)行的文件兵迅,不會增加x權(quán)限
2 任意三種人有執(zhí)行權(quán)限,也會增加x權(quán)限
目錄

[root@CentOS7 ~]# chmod 600 tmp/
[root@CentOS7 ~]# ls -ld /root/tmp/
drw-------. 2 root root 38 Jun  3 16:02 /root/tmp/
[root@CentOS7 ~]# chmod u+X tmp/
[root@CentOS7 ~]# ls -ld tmp/
drwx------. 2 root root 38 Jun  3 16:02 tmp/

文件:

[root@CentOS7 ~]# chmod 000 f1 #去掉文件的所以權(quán)限薪贫,以便看的更清楚
[root@CentOS7 ~]# ls -l f1
----------. 1 root root 1098 Jun  3 19:34 f1
[root@CentOS7 ~]# chmod u+X f1 #賦予X權(quán)限
[root@CentOS7 ~]# ls -l f1 #并沒有權(quán)限x被賦予
----------. 1 root root 1098 Jun  3 19:34 f1
[root@CentOS7 ~]# chmod 100 f1#一旦賦予任何一類人x權(quán)限
[root@CentOS7 ~]# chmod a+X f1
[root@CentOS7 ~]# ls -l f1
---x--x--x. 1 root root 1098 Jun  3 19:34 f1#則所以位都被賦予x權(quán)限

1.5文件與目錄的權(quán)限與注意

對目錄的權(quán)限意義:
只有讀:只能查看目錄文件列表恍箭,不能訪問文件,也不能cd目錄(查看瞧省,刪除)
只有執(zhí)行:可以cd進去,不能ls,可以訪問目錄中的文件扯夭。執(zhí)行是基礎(chǔ)權(quán)限
寫權(quán)取:配合x權(quán)限才生效

二鞍匾、特殊權(quán)限

2.1SUID

SUID權(quán)限代表不管是誰執(zhí)行此程序交洗,將繼承此程序所有者的權(quán)限
比如修改密碼命令passwd,因此每個用戶都可以用此命令修改自己的密碼橡淑,由于其繼承的是屬主root用戶的權(quán)限构拳。

[root@CentOS7 ~]# ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd

創(chuàng)建一個文件,賦予s權(quán)限

[root@CentOS7 ~]# touch f3
[root@CentOS7 ~]# ll f3
-rw-r---w-. 1 root root 0 Jun  3 21:17 f3
[root@CentOS7 ~]# chmod u+s f3
[root@CentOS7 ~]# ll f3
-rwSr---w-. 1 root root 0 Jun  3 21:17 f3  #此處為S權(quán)限
#由于其沒有x權(quán)限梁棠,S并不能代表SUID權(quán)限置森,必須賦予x權(quán)限使其成為可執(zhí)行程序,此時將自動變?yōu)閟
[root@CentOS7 ~]# chmod u+x f3
[root@CentOS7 ~]# ll f3
-rwsr---w-. 1 root root 0 Jun  3 21:17 f3

2.2SGID

SGID作用于目錄或可執(zhí)行程序掰茶,作用于目錄代表在此目錄創(chuàng)建的文件或目錄暇藏,默認的屬組繼承此目錄的屬組

[root@CentOS7 ~]# ls -ld tmp/  查看權(quán)限
drwx------. 2 root bin 58 Jun  3 21:32 tmp/
[root@CentOS7 ~]# chmod g+s tmp #賦予此目錄的g有s權(quán)限
[root@CentOS7 ~]# ll -d tmp
drwx--S---. 2 root bin 58 Jun  3 21:32 tmp
[root@CentOS7 ~]# chmod g+wx tmp
[root@CentOS7 ~]# ll -d tmp
drwx-ws---. 2 root bin 58 Jun  3 21:32 tmp
[root@CentOS7 ~]# touch tmp/  #驗證權(quán)限
f1         f2         functions  profile    
[root@CentOS7 ~]# touch tmp/f3
[root@CentOS7 ~]# ll tmp/f3
-rw-r--r--. 1 root bin 0 Jun  3 21:40 tmp/f3  #發(fā)現(xiàn)屬組為bin,成功

2.3Sticky

粘貼位權(quán)限濒蒋,只能作用于目錄上,只有自己才能刪除自己創(chuàng)建的文件.使用t來表示,同樣需要執(zhí)行權(quán)限x沪伙,否則表現(xiàn)為T
有這樣的需求瓮顽,如果多人合作,希望整個團隊的人都能更改這個目錄的文件围橡,但是這個目錄的文件 不能被其他人刪除暖混,比如說系統(tǒng)的/tmp目錄,這個目錄每個用戶都可以在里面創(chuàng)建文件翁授,但是不能刪除其他用戶創(chuàng)建的文件拣播,除了root

 ll /tmp -d
drwxrwxrwt. 27 root root 4096 Jun  3 21:40 /tmp


[root@CentOS7 ~]# touch /tmp/f1
[root@CentOS7 ~]# ls /tmp/f1 
/tmp/f1
[root@CentOS7 ~]# ls /tmp/f1  -l
-rw-r--r--. 1 root root 0 Jun  3 21:48 /tmp/f1
[root@CentOS7 ~]# chown xiaoming:xiaoming /tmp/f1
[root@CentOS7 ~]# su - chenxuliang
Last login: Sat Jun  3 21:35:11 CST 2017 on pts/0
[chenxuliang@CentOS7 ~]$ echo "aaa" > /tmp/f1
-bash: /tmp/f1: Permission denied   #當然此處需要賦予其他用戶可w權(quán)限。

[chenxuliang@CentOS7 ~]$ rm -f /tmp/f1
rm: cannot remove ‘/tmp/f1’: Operation not permitted
#此處tmp其他用戶擁有rwx權(quán)限收擦,卻不能刪除其中的文件贮配,則就是因為加了粘貼位sticky權(quán)限的原因。(刪除文件與文件本身的權(quán)限無關(guān))

2.4特殊權(quán)限除了可以用模式方法設(shè)置塞赂,還可以使用數(shù)字法

特殊權(quán)限:
SUID:4
SGID:2
Sticky:1

[root@centos7.3 app]#ll #查看當前目錄文件列表和文件屬性
drwxr-xr-x. 2 root root  24 May 30 19:46 dir  
[root@centos7.3 app]#chmod 1755 dir/  # 為dir目錄設(shè)置權(quán)限泪勒,1表示Sticky權(quán)限,755表示普通權(quán)限
[root@centos7.3 app]#ll #查看當前目錄文件列表和文件屬性
drwxr-xr-t. 2 root root  24 May 30 19:46 dir #在其他用戶權(quán)限的x位上出現(xiàn)了t宴猾,表示Sticky權(quán)限添加成功

2.5特殊權(quán)限總結(jié)與注意

SUID只能作用于二進制可執(zhí)行程序圆存,不能作用于目錄,因為其對應(yīng)的是程序仇哆,程序需要能執(zhí)行
為什么對于一個文件有讀寫執(zhí)行權(quán)限沦辙,依然不能刪除呢,因為刪除文件要看其父目錄是否有權(quán)限讹剔。刪除的是目錄項中的文件名(詳細請看我的inode博客)

三怕轿、ACL權(quán)限

3.1為什么要有ACL權(quán)限

因為文件權(quán)限管理職能對三類人有效,在生產(chǎn)中遠遠不能滿足要求辟拷,ACL則應(yīng)運而生

3.2ACL權(quán)限的查看

[root@CentOS7 ~]# getfacl f1
# file: f1
# owner: root
# group: root
user::--x
group::--x
other::--x

3.3ACL權(quán)限的設(shè)定

  1. setfacl的選項和常用參數(shù)
  2. getfacl 文件 或 目錄 #查看文件或目錄的acl權(quán)限
  3. setfacl - m u:用戶名:權(quán)限 文件或目錄 #可以使用模式方法也可以使用數(shù)字方法設(shè)置
  4. setfacl - R #R表示遞歸
  5. setfacl - M 配置文件 文件或目錄 #M表示把配置文件里權(quán)限設(shè)置給后面的文件或者目錄撞羽,你可以先寫好一個權(quán)限保存在文件中來批量設(shè)置
  6. setfacl - m g:組名:權(quán)限 #g表示組
  7. setfacl - m d:u:用戶:rx #d選項表示創(chuàng)建默認權(quán)限不影響其他acl權(quán)限,加了d之后在目錄下創(chuàng)建的文件都會獲得父目錄的設(shè)置默認acl權(quán)限
  8. setfacl - k #刪除默認權(quán)限
  9. setfacl - x u:用戶 #刪除單個權(quán)限
  10. setfacl - X #X和M選線功能相似只不過X是按照文件的內(nèi)容刪除acl權(quán)限
  11. setfacl -b #刪除所有acl權(quán)限
  12. setfacl -- set #set選項會把原來的acl設(shè)置用新的代替衫冻,相當于覆蓋

舉例:

[root@centos7.3 app]#setfacl -m u:admin:rw dir/ #為admin設(shè)置權(quán)限
[root@centos7.3 app]#getfacl dir/  #查看權(quán)限
# file: dir/
# owner: root
# group: root
user::rwx  
user:admin:rw- #設(shè)置的admin的權(quán)限
group::r-x  
mask::rwx #mask值是acl權(quán)限的上線诀紊,mask是除了所有者和其他的之外的人和組的最大權(quán)限
#在設(shè)置了acl權(quán)限之后文件的屬組權(quán)限和mask值是綁定的
other::r-x

3.4復(fù)制其他文件ACL權(quán)限

root@centos7.3 app]#getfacl dir |setfacl -set-file=- dir2

3.5ACL權(quán)限的備份與還原

[root@centos7.3 app]#getfacl -R dir > acl.txt #把dir目錄和子文件的acl權(quán)限備份至acl.txt文件
[root@centos7.3 app]#setfacl -R --set-file=acl.txt  dir #恢復(fù)acl權(quán)限
[root@centos7.3 app]#setfacl --restore acl.txt #第二種方法

終于寫完啦,但是這還只是理論上的隅俘,還沒有應(yīng)用于實踐邻奠,想要在應(yīng)用中完美結(jié)合,還差的很遠为居,畢竟文件權(quán)限管理是一門基礎(chǔ)的大學(xué)問碌宴。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蒙畴,隨后出現(xiàn)的幾起案子贰镣,更是在濱河造成了極大的恐慌呜象,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碑隆,死亡現(xiàn)場離奇詭異恭陡,居然都是意外死亡,警方通過查閱死者的電腦和手機上煤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門休玩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人劫狠,你說我怎么就攤上這事拴疤。” “怎么了独泞?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵呐矾,是天一觀的道長。 經(jīng)常有香客問我阐肤,道長凫佛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任孕惜,我火速辦了婚禮愧薛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘衫画。我一直安慰自己毫炉,他們只是感情好,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布削罩。 她就那樣靜靜地躺著瞄勾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪弥激。 梳的紋絲不亂的頭發(fā)上进陡,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機與錄音微服,去河邊找鬼趾疚。 笑死,一個胖子當著我的面吹牛以蕴,可吹牛的內(nèi)容都是我干的糙麦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼丛肮,長吁一口氣:“原來是場噩夢啊……” “哼赡磅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宝与,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤焚廊,失蹤者是張志新(化名)和其女友劉穎冶匹,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體节值,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡徙硅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年榜聂,在試婚紗的時候發(fā)現(xiàn)自己被綠了搞疗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡须肆,死狀恐怖匿乃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情豌汇,我是刑警寧澤幢炸,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站拒贱,受9級特大地震影響宛徊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜逻澳,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一闸天、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧斜做,春花似錦苞氮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至霸旗,卻和暖如春贷帮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诱告。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工撵枢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蔬啡。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓诲侮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親箱蟆。 傳聞我的和親對象是個殘疾皇子沟绪,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容