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