Linux權(quán)限管理是Linux很重要的一項內(nèi)容,重則引起用戶信息泄露,輕則導(dǎo)致文件錯亂和丟失。企業(yè)服務(wù)器里有些目錄下面的東西暫時保密,不希望別人可以進(jìn)入目錄并查看。有些文件希望別人可以看,但不能刪除。有些目錄只有root等管理員權(quán)限的賬戶才能修改,
Linux服務(wù)器供多個人登錄使用,要是沒有權(quán)限管理就亂了,大家都一樣的權(quán)限。有些維護(hù)系統(tǒng)的命令比較復(fù)雜,經(jīng)驗豐富的管理員運行這些命令沒事,普通新用戶運行的話,可以會導(dǎo)致linux服務(wù)器癱瘓。
就像咱們?nèi)粘I钪?,全世界人的?quán)限都一樣不就亂了嗎。
今天我們來介紹一下Linux權(quán)限管理的ACL權(quán)限,它是用戶管理結(jié)束之后必須要經(jīng)歷的一步。Linux系統(tǒng)的用戶管理包括Linux用戶和用戶組管理之相關(guān)配置文件,用戶管理的相關(guān)配置文件,內(nèi)容有用戶信息文件/etc/passwd,用戶密碼文件/etc/shadow;用戶組信息文件/etc/group,用戶組密碼文件/etc/gshadow。用戶的家目錄,以及用戶的模板目錄;Linux用戶和用戶組管理之用戶管理命令,管理用戶和用戶組的命令,包括新建、修改、查看等等以及用的比較多的切換用戶命令 su。
下面我們正式開始介紹:
1、什么是 ACL 權(quán)限?
比如有如下場景:
某大牛在QQ群內(nèi)直播講解Linux系統(tǒng)的權(quán)限管理,講解完之后,他在一個公有的Linux系統(tǒng)中創(chuàng)建了一個 /project 目錄,里面存放的是課后參考資料。那么 /project 目錄對于大牛而言是所有者,擁有讀寫可執(zhí)行(rwx)權(quán)限,對于QQ群內(nèi)的所有用戶他們都分配的一個所屬組里面,也都擁有讀寫可執(zhí)行(rwx)權(quán)限,而對于 QQ 群外的其他人,那么我們不給他訪問/project 目錄的任何權(quán)限,那么 /project 目錄的所有者和所屬組權(quán)限都是(rwx),其他人權(quán)限無。
問題來了,這時候直播有旁聽的人參與(不屬于QQ群內(nèi)),聽完之后,我們允許他訪問/project目錄查看參考資料,但是不能進(jìn)行修改,也就是擁有(r-x)的權(quán)限,這時候我們該怎么辦呢?我們知道一個文件只能有一個所屬組,我們將他分配到QQ群所在的所屬組內(nèi),那么他擁有了寫的權(quán)限,這是不被允許的;如果將這個旁聽的人視為目錄/project 的其他人,并且將/project目錄的其他人權(quán)限改為(r-x),那么不是旁聽的人也能訪問我們/project目錄了,這顯然也是不被允許的。怎么解決呢?
我們想想windows系統(tǒng)里面給某個文件分配權(quán)限的辦法:
如上圖,我們想要讓某個用戶不具備某個權(quán)限,直接不給他分配這個目錄的相應(yīng)權(quán)限就行了。那么對應(yīng)到Linux系統(tǒng)也是這樣,我們給指定的用戶指定目錄分配指定的權(quán)限,也就是 ACL 權(quán)限分配。
2、查看分區(qū) ACL 權(quán)限是否開啟:dump2fs
我們看某個文件(Linux系統(tǒng)中目錄也是文件,一切皆是文件)是否支持 ACL 權(quán)限,首先要看文件所在的分區(qū)是否支持 ACL 權(quán)限。
①、查看當(dāng)前系統(tǒng)有哪些分區(qū):df -h
②、查看指定分區(qū)詳細(xì)文件信息:dumpe2fs -h 分區(qū)路徑
下面是查看 根分區(qū)/ 的詳細(xì)文件信息
3、開啟分區(qū) ACL 權(quán)限
①、臨時開啟分區(qū) ACL 權(quán)限
mount -o remount,acl /
重新掛載根分區(qū),并掛載加入 acl 權(quán)限。注意這種命令開啟方式,如果系統(tǒng)重啟了,那么根分區(qū)權(quán)限會恢復(fù)到初始狀態(tài)。
②、永久開啟分區(qū) ACL 權(quán)限
一、修改配置文件 /etc/fstab
上面是修改根分區(qū)擁有 acl 權(quán)限
UUID=490ed737-f8cf-46a6-ac4b-b7735b79fc63 / ext4 defaults,acl 1 1
二、重新掛載文件系統(tǒng)或重啟系統(tǒng),使得修改生效
mount -o remount /
4、設(shè)定 ACL 權(quán)限:setfacl 選項 文件名
①、給用戶設(shè)定 ACL 權(quán)限:setfacl -m u:用戶名:權(quán)限 指定文件名
②、給用戶組設(shè)定 ACL 權(quán)限:setfacl -m g:組名:權(quán)限 指定文件名
注意:我們給用戶或用戶組設(shè)定 ACL 權(quán)限其實并不是真正我們設(shè)定的權(quán)限,是與 mask 的權(quán)限“相與”之后的權(quán)限才是用戶的真正權(quán)限,一般默認(rèn)mask權(quán)限都是rwx,與我們所設(shè)定的權(quán)限相與就是我們設(shè)定的權(quán)限。mask 權(quán)限下面我們會詳細(xì)講解
范例:所有者root用戶在根目錄下創(chuàng)建一個文件目錄/project,然后創(chuàng)建一個QQ群所屬組,所屬組里面創(chuàng)建兩個用戶zhangsan和lisi。所有者和所屬組權(quán)限和其他人權(quán)限是770。
然后創(chuàng)建一個旁聽用戶 pt,給他設(shè)定/project目錄的 ACL 為 r-x。
目錄 /project 的所有者和所屬組其他人權(quán)限設(shè)定為 770。接下來我們創(chuàng)建旁聽用戶 pt,并賦予 acl 權(quán)限 rx
為了驗證 pt 用戶對于 /project 目錄沒有寫權(quán)限,我們用 su 命令切換到 pt 用戶,然后進(jìn)入 /project 目錄,在此目錄下創(chuàng)建文件,看是否能成功:
上面提示權(quán)限不夠,說明 acl 權(quán)限賦予成功,注意如下所示,如果某個目錄或文件下有 + 標(biāo)志,說明其具有 acl 權(quán)限。
5、查看 ACL 權(quán)限:getfacl 文件名
6、最大有效權(quán)限 mask
前面第4點我們講過,我們給用戶或用戶組設(shè)定 ACL 權(quán)限其實并不是真正我們設(shè)定的權(quán)限,是與 mask 的權(quán)限“相與”之后的權(quán)限才是用戶的真正權(quán)限,一般默認(rèn)mask權(quán)限都是rwx,與我們所設(shè)定的權(quán)限相與就是我們設(shè)定的權(quán)限。
我們通過getfacl 文件名 也能查看 mask 的權(quán)限,那么我們怎么設(shè)置呢?
setfacl -m m:權(quán)限 文件名
7、刪除 ACL 權(quán)限
①、刪除指定用戶的 ACL 權(quán)限
setfacl -x u:用戶名 文件名
②、刪除指定用戶組的 ACL 權(quán)限
setfacl -x g:組名 文件名
③、刪除文件的所有 ACL 權(quán)限
setfacl -b 文件名
8、遞歸 ACL 權(quán)限
通過加上選項 -R 遞歸設(shè)定文件的 ACL 權(quán)限,所有的子目錄和子文件也會擁有相同的 ACL 權(quán)限。
setfacl -m u:用戶名:權(quán)限 -R 文件名
9、默認(rèn) ACL 權(quán)限
如果給父目錄設(shè)定了默認(rèn)的 ACL 權(quán)限,那么父目錄中所有新建的子文件會繼承父目錄的 ACL 權(quán)限。
setfacl -m d:u:用戶名:權(quán)限 文件名
10、總結(jié)
本篇博客我們介紹了權(quán)限管理的ACL權(quán)限,通過設(shè)定 ACL 權(quán)限,我們?yōu)槟硞€用戶指定某個文件的特定權(quán)限,在實際權(quán)限管理中還是用的比較多的
↓↓↓
-
Linux
+關(guān)注
關(guān)注
87文章
11479瀏覽量
213040 -
ACL
+關(guān)注
關(guān)注
0文章
61瀏覽量
12375
原文標(biāo)題:Linux權(quán)限管理之ACL權(quán)限最全解讀
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
鴻蒙原生應(yīng)用元服務(wù)-訪問控制(權(quán)限)開發(fā)應(yīng)用權(quán)限列表一
鴻蒙原生應(yīng)用元服務(wù)-訪問控制(權(quán)限)開發(fā)應(yīng)用權(quán)限列表二
鴻蒙原生應(yīng)用元服務(wù)-訪問控制(權(quán)限)開發(fā)應(yīng)用權(quán)限列表三
Linux 中文件權(quán)限管理的探討
基于ACL的權(quán)限系統(tǒng)實現(xiàn)

Linux ACL權(quán)限詳細(xì)分析
Linux進(jìn)程權(quán)限的分析說明
Linux基礎(chǔ)的用戶權(quán)限
ACL、RBAC、ABAC三大權(quán)限管理模型,到底怎么選?

linux文件訪問權(quán)限怎么設(shè)置
Linux把目錄權(quán)限給指定用戶
linux權(quán)限管理詳解
Linux權(quán)限管理基礎(chǔ)入門

評論