這篇文章主要介紹“Linux的ACL權(quán)限怎么配置”,在日常操作中,相信很多人在Linux的ACL權(quán)限怎么配置問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Linux的ACL權(quán)限怎么配置”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)是一家專業(yè)提供肅北企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站設(shè)計(jì)、H5建站、小程序制作等業(yè)務(wù)。10年已為肅北眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
“很多初學(xué) Linux的人都會(huì)有這樣的疑惑,權(quán)限有什么作用呢?我為什么需要配置和修改權(quán)限呢?因?yàn)榻^大多數(shù)初學(xué)者使用的都是個(gè)人計(jì)算機(jī),個(gè)人計(jì)算機(jī)主要使用管理員身份登錄,而且不會(huì)有多個(gè)用戶同時(shí)存在。但是在服務(wù)器上,需要 root和普通用戶同時(shí)存在、同時(shí)登錄管理服務(wù)器,所以合理的權(quán)限分配是保證服務(wù)器安全與穩(wěn)定的前提?!?/strong>
在普通權(quán)限中,用戶對(duì)文件只有三種身份,就是所屬主、所屬組和其他人;每種用戶身份擁有讀(read)、寫(write)和執(zhí)行(execute)三種權(quán)限。但是在實(shí)際工作中,這三種身份實(shí)在是不夠用,舉個(gè)例子來(lái)看看。
根目錄中有一個(gè) /item目錄,這是班級(jí)的項(xiàng)目目錄。班級(jí)中的每個(gè)學(xué)員都可以訪問(wèn)和修改這個(gè)目錄,老師也需要對(duì)這個(gè)目錄擁有訪問(wèn)和修改權(quán)限,其他班級(jí)的學(xué)員當(dāng)然不能訪問(wèn)這個(gè)目錄。需要怎么規(guī)劃這個(gè)目錄的權(quán)限呢?應(yīng)該這樣:老師使用root 用戶,作為這個(gè)目錄的所屬主,權(quán)限為 rwx;班級(jí)所有的學(xué)員都加入 group 組,使 group 組作為 /item目錄的屬組,權(quán)限是 rwx;其他人的權(quán)限設(shè)定為 0。這樣這個(gè)目錄的權(quán)限就可以符合我們的項(xiàng)目開(kāi)發(fā)要求了。
有一天,班里來(lái)了一位試聽(tīng)的學(xué)員 st,她必須能夠訪問(wèn) /item目錄,所以必須對(duì)這個(gè)目錄擁有 r 和 x 權(quán)限;但是她又沒(méi)有學(xué)習(xí)過(guò)以前的課程,所以不能賦予她 w 權(quán)限,怕她改錯(cuò)了目錄中的內(nèi)容,所以學(xué)員 用戶st的權(quán)限就是 r-x??墒侨绾畏峙渌纳矸菽??變?yōu)閷僦鳎慨?dāng)然不行,要不 root 該放哪里?加入 group 組?也不行,因?yàn)?group 組的權(quán)限是 rwx,而我們要求學(xué)員 st 的權(quán)限是 r-x。如果把其他人的權(quán)限改為 r-x 呢?這樣一來(lái),其他班級(jí)的所有學(xué)員都可以訪問(wèn) /item目錄了。
當(dāng)出現(xiàn)這種情況時(shí),普通權(quán)限中的三種身份就不夠用了。ACL 權(quán)限就是為了解決這個(gè)問(wèn)題的。在使用 ACL 權(quán)限給用戶 st 陚予權(quán)限時(shí),st 既不是 /item 目錄的所屬主,也不是屬組,僅僅賦予用戶 st 針對(duì)此目錄的 r-x 權(quán)限。這有些類似于 Windows 系統(tǒng)中分配權(quán)限的方式,單獨(dú)指定用戶并單獨(dú)分配權(quán)限,這樣就解決了用戶身份不足的問(wèn)題。
開(kāi)啟ACL權(quán)限
在CentOS 6.x 系統(tǒng)中 ACL 權(quán)限默認(rèn)是開(kāi)啟的,不需要手工開(kāi)啟。不過(guò),如果你的操作系統(tǒng)不是 CentOS 6.x,那該如何查看 ACL權(quán)限是否開(kāi)啟了呢?可以這樣查看:
#mount(查看掛載的分區(qū)情況)
/dev/sda1 on /boottype xfs
#dumpe2fs –h /dev/sda3(查詢指定分區(qū)文件系統(tǒng)詳細(xì)信息)
-h:僅顯示超級(jí)塊中的信息,而不顯示磁盤塊組的詳細(xì)信息
使用mount 命令可以査看到系統(tǒng)中已經(jīng)掛載的分區(qū),而使用 dumpe2fs 命令可以査看到這個(gè)分區(qū)文件系統(tǒng)的詳細(xì)信息。大家可以看到,我們的 ACL 權(quán)限是 /dev/sda3 分區(qū)的默認(rèn)掛載選項(xiàng),所以不需要手工掛載。
不過(guò)我的 Linux 系統(tǒng)如果沒(méi)有默認(rèn)掛載,則可以手工掛載嗎?當(dāng)然可以,執(zhí)行如下命令:
#mount –o remount,acl /(重新掛載根分區(qū),并加入ACL權(quán)限)
使用mount 命令重新掛載,并加入 ACL 權(quán)限。不過(guò)使用此命令是臨時(shí)生效的。要想永久生效,需要修改 /etc/fstab 文件,命令如下:
#vi /etc/fstab
UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2/ext4 defaults,acl 1 1(加入ACL權(quán)限)
#mount –o remount(重新掛載文件系統(tǒng)或重啟系統(tǒng),使其生效)
在你需要開(kāi)啟 ACL 權(quán)限的分區(qū)行上(也就是說(shuō) ACL 權(quán)限針對(duì)的是分區(qū)),手工在 defaults 后面加入",acl"即可永久在此分區(qū)中開(kāi)啟 ACL 權(quán)限。
1:ACL權(quán)限設(shè)置
1:ACL權(quán)限管理命令
我們知道了 ACL 權(quán)限的作用,也知道了如何開(kāi)啟 ACL 權(quán)限,接下來(lái)學(xué)習(xí)如何査看和設(shè)定 ACL 權(quán)限。命令如下:
#getfacle filename(查看ACL權(quán)限)
#setfacl option filename(設(shè)定ACL權(quán)限)
選項(xiàng):
m:設(shè)定 ACL 權(quán)限。如果是給予用戶 ACL 權(quán)限,則使用"u:用戶名:權(quán)限"格式賦予;如果是給予組 ACL 權(quán)限,則使用"g:組名:權(quán)限" 格式賦予;
-x:刪除指定的 ACL 權(quán)限;
-b:刪除所有的 ACL 權(quán)限;
-d:設(shè)定默認(rèn) ACL權(quán)限。只對(duì)目錄生效,指目錄中新建立的文件擁有此默認(rèn)權(quán)限;
-k:刪除默認(rèn) ACL權(quán)限;
-R:遞歸設(shè)定 ACL 權(quán)限。指設(shè)定的 ACL 權(quán)限會(huì)對(duì)目錄下的所有子文件生效
2:給用戶和用戶組添加ACL權(quán)限
舉個(gè)例子,就來(lái)看看圖 1 中的權(quán)限怎么分配。我們要求root 是 /item 目錄的屬主,權(quán)限是 rwx;tgroup是此目錄的屬組,tgroup 組中擁有班級(jí)學(xué)員 zhangsan 和lisi,權(quán)限是rwx;其他人的權(quán)限是 0。這時(shí),試聽(tīng)學(xué)員 st 來(lái)了,她的權(quán)限是 r-x。我們來(lái)看具體的分配命令。
#useradd zhangsan
#useradd lisi
#useradd st
#groupadd tgroup
#mkdir /item
#chown root:tgroup /item/
#chmod 770 /item/
#ll –d /item/
#setfacl –m u:st:rx /item/
#cd /
#ll –d item/
drwxrwx---+ 3 root tgroup 4096 1月19日 05:20 item/
#getfacl item
大家可以看到,st 用戶既不是 /item目錄的屬主、屬組,也不是其他人,我們單獨(dú)給 st用戶分配了r-x 權(quán)限。這樣分配權(quán)限太方便了,完全不用先辛苦地規(guī)劃用戶身份了。
我想給用戶組賦予 ACL 權(quán)限可以嗎?當(dāng)然可以,命令如下:
#groupadd tgroup2
#setfacl –m g:tgroup2:rwx item/
#ll –d item/
#getfacl item/
mask 是用來(lái)指定最大有效權(quán)限的。mask的默認(rèn)權(quán)限是 rwx,如果我給 st 用戶賦予了 r-x的 ACL 權(quán)限,mj 需要和 mask 的 rwx 權(quán)限"相與"才能得到 st 的真正權(quán)限,也就是 r-x "相與"rwxtj出的值是 r-x,所以 st 用戶擁有 r-x權(quán)限。
如果把 mask 的權(quán)限改為 r--,和 st 用戶的權(quán)限相與,也就是 r--"相與"r-x得出的值是 r--,st 用戶的權(quán)限就會(huì)變?yōu)橹蛔x。大家可以這么理解:用戶和用戶組所設(shè)定的權(quán)限必須在mask 權(quán)限設(shè)定的范圍之內(nèi)才能生效,mask權(quán)限就是最大有效權(quán)限。
不過(guò)我們一般不更改 mask 權(quán)限,只要給予 mask 最大權(quán)限 rwx,那么任何權(quán)限和mask 權(quán)限相與,得出的值都是權(quán)限本身。也就是說(shuō),我們通過(guò)給用戶和用戶組直接賦予權(quán)限,就可以生效,這樣做更直觀。
補(bǔ)充:邏輯與運(yùn)算的運(yùn)算符是"and"。可以理解為生活中所說(shuō)的"并且"。也就是相與的兩個(gè)值都為真,結(jié)果才為真;有一個(gè)值為假,與的結(jié)果就為假。比如 A 相與 B,結(jié)果入表 2 所示。
A | B | and |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
Sheet2邏輯與運(yùn)算
那么兩個(gè)權(quán)限相與和上面的結(jié)果類似,我們以讀(r)權(quán)限為例,結(jié)果如表 3 所示。
A | B | And |
---|---|---|
r | r | r |
r | - | - |
- | r | - |
- | - | - |
所以,"rwx"相與"r-x",結(jié)果是"r-x";"r--"相與"r-x",結(jié)果是"r--"。
修改最大有效權(quán)限的命令如下:
#setfacl –m m:rx item/
#getfacl item/
我們已經(jīng)給/item 目錄設(shè)定了ACL 權(quán)限,那么,在這個(gè)目錄中新建一些子文件和子目錄,這些文件是否會(huì)繼承父目錄的ACL 權(quán)限呢?Let’s go!
#cd /item/
#touch abc
#mkdir d1
#ll
子文件 abc 和子目錄 d1 因?yàn)槭呛蠼⒌?,所以并沒(méi)有繼承父目錄的 ACL 權(quán)限。當(dāng)然,我們可以手工給這兩個(gè)文件分配 ACL 權(quán)限,但是如果在目錄中再新建文件,都要手工指定,則顯得過(guò)于麻煩。這時(shí)就需要用到默認(rèn)ACL 權(quán)限。
默認(rèn)ACL 權(quán)限的作用是:如果給父目錄設(shè)定了默認(rèn) ACL 權(quán)限,那么父目錄中所有新建的子文件都會(huì)繼承父目錄的 ACL 權(quán)限。默認(rèn)ACL 權(quán)限只對(duì)目錄生效。命令如下:
setfacl –m d:u:st:rx /item/
#getfacl item/
#cd item/
#touch bcd
#mkdir d2
#ll
原先的abc 和 d1 還是沒(méi)有ACL 權(quán)限,因?yàn)槟J(rèn) ACL 權(quán)限是針對(duì)新建立的文件生效的。
再說(shuō)說(shuō)遞歸 ACL 權(quán)限。遞歸是指父目錄在設(shè)定ACL 權(quán)限時(shí),所有的子文件和子目錄也會(huì)擁有相同的 ACL 權(quán)限。
#setfacl –m u:st:rx –R/item/
-R:遞歸
#ll
默認(rèn) ACL權(quán)限指的是針對(duì)父目錄中新建立的文件和目錄會(huì)繼承父目錄的 ACL 權(quán)限,格式是"setfacl-m d:u:用戶名:權(quán)限 文件名";遞歸 ACL 權(quán)限指的是針對(duì)父目錄中已經(jīng)存在的所有子文件和子目錄繼承父目錄的 ACL 權(quán)限,格式是"setfacl-m u:用戶名: 權(quán)限 -R 文件名"。
我們來(lái)看看怎么刪除 ACL 權(quán)限,命令如下:
刪除指定的ACL權(quán)限:
#setfacl –x u:st /item/刪除指定用戶和用戶組的ACL權(quán)限
#getfacl item/
刪除所有ACL權(quán)限
#setfacl –b item/(會(huì)刪除文件的所有ACL權(quán)限)
#getfacl item/(所有ACL權(quán)限已被刪除)
到此,關(guān)于“Linux的ACL權(quán)限怎么配置”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
分享文章:Linux的ACL權(quán)限怎么配置
本文鏈接:http://jinyejixie.com/article26/ppehjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、企業(yè)網(wǎng)站制作、網(wǎng)站排名、品牌網(wǎng)站設(shè)計(jì)、全網(wǎng)營(yíng)銷推廣、定制開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)