ACL可以為某個(gè)文件單獨(dú)設(shè)置該文件具體的某用戶(hù)或組的權(quán)限,不走三類(lèi)權(quán)限位
目前創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、綿陽(yáng)服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、云夢(mèng)網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
默認(rèn) ACL 權(quán)限的作用是:如果給父目錄設(shè)定了默認(rèn) ACL 權(quán)限,那么父目錄中所有新建的子文件都會(huì)繼承父目錄的 ACL 權(quán)限。但是要加 -R
※ACL權(quán)限更高,會(huì)先查看ACL再看傳統(tǒng)的權(quán)限。如果沒(méi)有ACL才會(huì)走三類(lèi)權(quán)限位
※如果一個(gè)用戶(hù)在A(yíng)CL的user中一個(gè)權(quán)限,他所在的ACL的group中是另外一個(gè)權(quán)限,會(huì)按照user權(quán)限來(lái)
? getfacl 文件名
獲取文件的訪(fǎng)問(wèn)控制信息
? setfacl設(shè)置文件的acl
-m修改文件的acl
-x取消用戶(hù)或組對(duì)文件的權(quán)限
語(yǔ)法:
? setfacl –m u:用戶(hù)名:權(quán)限 文件名 設(shè)置某用戶(hù)名的訪(fǎng)問(wèn)權(quán)限
? setfacl –m g:組名:權(quán)限 文件名 設(shè)置某個(gè)組的訪(fǎng)問(wèn)權(quán)限
例1: 想要實(shí)現(xiàn)這個(gè)↓需求
user1:rwx,user2:rw-,user3:r-x,user4:r--,user5:--x,user6:-w-,
傳統(tǒng)權(quán)限無(wú)法滿(mǎn)足上述要求,這時(shí)就可以用↓命令進(jìn)行權(quán)限添加
建一個(gè)名字為1的文件,查看文件1的權(quán)限↓
設(shè)置權(quán)限
修改后看文件1的權(quán)限↓
例2:
有組A(groupA)和組B(groupB)兩個(gè)組,文件1所屬于A(yíng)組,如果通過(guò)三類(lèi)權(quán)限位設(shè)置文件權(quán)限,其他用戶(hù)沒(méi)有任何權(quán)限,而B(niǎo)組為其他用戶(hù),因此無(wú)法對(duì)文件1進(jìn)行任何操作。這時(shí)可以通過(guò)ACL給組B設(shè)置權(quán)限:
setfacl -m g:groupB:r 1 B組里的所有成員就有讀權(quán)限了
? setfacl –x u:用戶(hù)名 文件名 //取消某用戶(hù)的訪(fǎng)問(wèn)權(quán)限
? setfacl –x g:組名 文件名 //取消某個(gè)組的訪(fǎng)問(wèn)權(quán)限
?↑這時(shí)是將這個(gè)user或group的ACL整個(gè)刪除,如果只是想刪除某一個(gè)權(quán)限,還是需要setfacl -m來(lái)進(jìn)行重新設(shè)置
例3:
setfacl -m d:u:qin:rwx /caiwubu
d:default,即將caiwubu這個(gè)文件夾的權(quán)限對(duì)qin開(kāi)放rwx權(quán)限,getfacl /caiwubu的時(shí)候會(huì)發(fā)現(xiàn)有一條default:user:qin:rwx。即在/caiwubu文件夾里 新建 的文件夾以及文件對(duì)qin的權(quán)限都為rwx,但是之前已經(jīng)存在的文件及文件夾的權(quán)限在修改ACL權(quán)限之前是什么現(xiàn)在還是什么
setfacl -x u:qin /caiwubu/zhangben 取消qin這個(gè)用戶(hù)對(duì)該文件的acl權(quán)限
取消qin這個(gè)用戶(hù)對(duì)該文件的acl權(quán)限
?如果這個(gè)文件給兩個(gè)及兩個(gè)以上的用戶(hù)設(shè)定了ACL,取消其中一個(gè)用戶(hù)的權(quán)限可以用這個(gè)命令。但是如果這個(gè)文件只給一個(gè)用戶(hù)設(shè)定了ACL且想刪除ACL,或者想把該文件里所有的ACL權(quán)限都刪除的話(huà),需要用↓的命令
setfacl -b /caiwubu/zhangben
關(guān)于權(quán)限列的.和+:
ls -lZ :
① drwxrwxrwt. root root system_u:object_r:tmp_t:s0 tmp
② dr-xr-xr-x root root system_u:object_r:boot_t:s0 boot
③ drwxrwxr-x+ root root unconfined_u:object_r:admin_home_t:s0 DCGH-DIR
Linux權(quán)限列的點(diǎn)不是無(wú)意義字符
?在開(kāi)啟SELinux的情況下創(chuàng)建的目錄和文件有這個(gè)點(diǎn),權(quán)限列有這個(gè)點(diǎn)說(shuō)明該目錄或文件設(shè)置了SELinux相關(guān)的權(quán)限①
?在禁用SELinux權(quán)限之后,在之前開(kāi)啟SELinux權(quán)限時(shí)創(chuàng)建的文件或目錄保持原來(lái)的權(quán)限不便,權(quán)限列的點(diǎn)依然顯示,而新創(chuàng)建的目錄或文件在權(quán)限列無(wú)這個(gè)點(diǎn)顯示②
?權(quán)限列中最后一個(gè)位置如果是加號(hào),說(shuō)明這個(gè)目錄或文件已經(jīng)設(shè)置了ACL權(quán)限相關(guān)的內(nèi)容。如果加號(hào)存在,則已經(jīng)有點(diǎn)的目錄或文件中的點(diǎn)的顯示會(huì)被覆蓋,但原來(lái)的SELinux屬性保持不變
在 Linux 上指定目錄的讀寫(xiě)權(quán)限賦予用戶(hù),有兩種方法可以實(shí)現(xiàn)這個(gè)目標(biāo):第一種是使用 ACL (訪(fǎng)問(wèn)控制列表),第二種是創(chuàng)建用戶(hù)組來(lái)管理文件權(quán)限,下面會(huì)一一介紹。為了完成這個(gè)教程,我們將使用以下設(shè)置:
請(qǐng)確認(rèn)所有的命令都是使用 root 用戶(hù)執(zhí)行的,或者使用 sudo 命令來(lái)享受與之同樣的權(quán)限。讓我們開(kāi)始吧!下面,先使用 mkdir 命令來(lái)創(chuàng)建一個(gè)名為 share 的目錄。
1. 使用 ACL 來(lái)為用戶(hù)賦予目錄的讀寫(xiě)權(quán)限
重要提示: 打算使用此方法的話(huà),您需要確認(rèn)您的 Linux 文件系統(tǒng)類(lèi)型(如 ext3 和 ext4, NTFS, BTRFS)支持 ACL。
1.1. 首先, 依照以下命令在您的系統(tǒng)中檢查當(dāng)前文件系統(tǒng)類(lèi)型,并且查看內(nèi)核是否支持 ACL:
從下方的截屏可以看到,文件系統(tǒng)類(lèi)型是 ext4,并且從 CONFIG_EXT4_FS_POSIX_ACL=y 選項(xiàng)可以發(fā)現(xiàn)內(nèi)核是支持 POSIX ACL 的。
[圖片上傳失敗...(image-c85622-1574572716190)]
1.2. 查看文件系統(tǒng)(分區(qū))掛載時(shí)是否使用了 ACL 選項(xiàng)。
[圖片上傳失敗...(image-bdb4d9-1574572716190)]
通過(guò)上邊的輸出可以發(fā)現(xiàn),默認(rèn)的掛載項(xiàng)目中已經(jīng)對(duì) ACL 進(jìn)行了支持。如果發(fā)現(xiàn)結(jié)果不如所愿,你可以通過(guò)以下命令對(duì)指定分區(qū)(此例中使用 /dev/sda3)開(kāi)啟 ACL 的支持)。
1.3. 指定目錄 share 的讀寫(xiě)權(quán)限分配給名為 shenweiyan 的用戶(hù)了,依照以下命令執(zhí)行即可。
[圖片上傳失敗...(image-dfb909-1574572716190)]
在上方的截屏中,通過(guò)輸出結(jié)果的第二行 getfacl 命令可以發(fā)現(xiàn),用戶(hù) shenweiyan 已經(jīng)成功的被賦予了 /data/share 目錄的讀寫(xiě)權(quán)限。
如果想要獲取 ACL 列表的更多信息。請(qǐng)參考:
2. 使用用戶(hù)組來(lái)為用戶(hù)賦予指定目錄的讀寫(xiě)權(quán)限
2.1. 如果用戶(hù)已經(jīng)擁有了默認(rèn)的用戶(hù)組(通常組名與用戶(hù)名相同),就可以簡(jiǎn)單的通過(guò)變更文件夾的所屬用戶(hù)組來(lái)完成。
另外,我們也可以通過(guò)以下方法為多個(gè)用戶(hù)(需要賦予指定目錄讀寫(xiě)權(quán)限的)新建一個(gè)用戶(hù)組。如此一來(lái),也就創(chuàng)建了一個(gè)共享目錄。
2.2. 接下來(lái)將用戶(hù) shenweiyan 添加到 dbshare 組中:
2.3. 將目錄的所屬用戶(hù)組變更為 dbshare:
2.4. 現(xiàn)在,給組成員設(shè)置讀寫(xiě)權(quán)限。
ok,在 Linux 上給用戶(hù)賦予指定目錄的讀寫(xiě)權(quán)限就介紹到這里 !
參考資料:
自主訪(fǎng)問(wèn)控制(Discretionary Access Control, DAC)是指對(duì)象(比如程序、文件、進(jìn)程)的擁有者可以任意修改或者授予此對(duì)象相應(yīng)的權(quán)限。Linux的UGO(User, Group, Other)和ACL(Access Control List)權(quán)限管理方式就是典型的自主訪(fǎng)問(wèn)控制。UGO將權(quán)限信息存儲(chǔ)在節(jié)點(diǎn)的權(quán)限中,ACL將權(quán)限位信息存儲(chǔ)在節(jié)點(diǎn)的擴(kuò)展屬性中。
當(dāng)一個(gè)文件創(chuàng)建后,它具有讀(r)、寫(xiě)(w)、執(zhí)行(x)三種操作方式。UGO權(quán)限管理方式將訪(fǎng)問(wèn)文件的操作者簡(jiǎn)單分為三類(lèi):文件屬主(u)、同組用戶(hù)(g)與其他組用戶(hù)(o)。
文件的三種操作方式用三個(gè)二進(jìn)制位表示,第一位表示讀權(quán)限,第二位表示寫(xiě)權(quán)限,第三位表示執(zhí)行權(quán)限。一個(gè)文件的權(quán)限屬性就是有三類(lèi)用戶(hù)對(duì)該文件的權(quán)限使能的集合。
當(dāng)我們用ls查看一個(gè)文件的時(shí)候,會(huì)顯示如下結(jié)果
最前面的’-’,表示文件為普通類(lèi)型
第一組的‘rw-’,表示文件屬主對(duì)文件具有讀和寫(xiě)權(quán)限,但沒(méi)有執(zhí)行權(quán)限
第二組的’rw-’,表示同組其他用戶(hù)對(duì)文件具有讀和寫(xiě)權(quán)限,但沒(méi)有執(zhí)行權(quán)限
第三組的’r--’,表示其他組用戶(hù)對(duì)文件具有讀權(quán)限,但沒(méi)有寫(xiě)和執(zhí)行權(quán)限
上述每一組權(quán)限用可以用二進(jìn)制表示,例如’rw-’,二進(jìn)制表示是110,十進(jìn)制數(shù)值是6,‘r--’,二進(jìn)制表示100, 十進(jìn)制數(shù)值是4;所以對(duì)每一組權(quán)限都可以用十進(jìn)制來(lái)表示。當(dāng)使用chmod修改文件權(quán)限的時(shí)候就可以使用十進(jìn)制代替‘rwx’,例如
當(dāng)然也可以通過(guò)chmod u+x,o+w test實(shí)現(xiàn)與上述同樣的功能。具體使用哪種方式,單憑個(gè)人喜好。
在linux下一切皆文件,目錄也不例外,但目錄的讀寫(xiě)執(zhí)行權(quán)限與普通文件的讀寫(xiě)執(zhí)行權(quán)限含義有所不同,如下所示
1.1節(jié)描述了常用的權(quán)限位,但還有幾個(gè)特殊的權(quán)限位需要知道,分別是s(suid),s(sgid), t(Sticky Bit)。首先看一下linux下的/usr/passwd文件和/tmp目錄
可以看到/usr/bin/passwd的第一組權(quán)限位和上一節(jié)有所不同,第三個(gè)標(biāo)志位變成了s。當(dāng)屬主用戶(hù)對(duì)文件設(shè)置了suid位后,其他用戶(hù)在執(zhí)行該文件的時(shí)候則具有等同于屬主的權(quán)限。
還是以passwd命令為例,普通用戶(hù)可以用passwd修改自己的密碼,而用戶(hù)密碼的hash存儲(chǔ)在/etc/shadow文件中,修改密碼必然要修改此文件,我們看下此文件
發(fā)現(xiàn)只有root用戶(hù)可以修改此文件,也就是說(shuō)當(dāng)普通用戶(hù)執(zhí)行passwd命令的時(shí)候,其權(quán)限變?yōu)閞oot的權(quán)限,故可以修改/etc/shadow文件。
guid類(lèi)似
SUID對(duì)目錄沒(méi)有影響,SGID對(duì)目錄有影響,對(duì)于設(shè)置了SGID的目錄,所有用戶(hù)在該目錄下新建的文件屬主屬于該用戶(hù),但GID是該目錄所屬的組,如下
而對(duì)于t,又叫粘著位,僅對(duì)目錄生效。在具有t位的目錄下,如果用戶(hù)在該目錄下具有w及x權(quán)限,則當(dāng)用戶(hù)在該目錄下建立文件或目錄時(shí),只有文件擁有者與root才有權(quán)力刪除。/tmp目錄則是最好的例子,每個(gè)應(yīng)用都可以在tmp目錄下新建刪除自己的文件,但卻不能刪除其應(yīng)用建立的文件。
那么如何修改文件的sst權(quán)限呢?還是使用chmod命令,由第一節(jié)我們知道可以用十進(jìn)制數(shù)值設(shè)置UGO對(duì)文件的訪(fǎng)問(wèn)權(quán)限,同樣對(duì)于特殊權(quán)限位,也可以使用。只需在原來(lái)的數(shù)值前面加上sst的十進(jìn)制數(shù)值。有時(shí)候我們還會(huì)看到大寫(xiě)的SST,那是因?yàn)榭蓤?zhí)行位為0,所以顯示為大寫(xiě),例如
先做一個(gè)實(shí)驗(yàn),在linux下分別建立一個(gè)目錄和一個(gè)文件,查看其權(quán)限位
可以看到,新建的目錄全顯示775,新建的文件是664,為什么新建的文件和目錄權(quán)限不是777呢?就是由于掩碼的存在,當(dāng)用戶(hù)新建一個(gè)目錄的時(shí)候,是777與掩碼做與操作,當(dāng)用戶(hù)新建一個(gè)文件的時(shí)候,是666與掩碼做與操作??梢杂胾mask命令查看當(dāng)前系統(tǒng)掩碼
當(dāng)然,還可以通過(guò)umask命令修改系統(tǒng)掩碼,新建文件的權(quán)限位也跟著改變。
UGO權(quán)限管理方式只能對(duì)屬主、同組用戶(hù)和其他組用戶(hù)進(jìn)行權(quán)限管理,很難對(duì)每個(gè)用戶(hù)或用戶(hù)組進(jìn)行權(quán)限管理。比如有多個(gè)用戶(hù)想問(wèn)房一個(gè)目錄,但是每個(gè)人又要求不一樣的權(quán)限,ACL就是為了這種局限性而生的。
例如下圖所示:
從圖中可以看出,傳統(tǒng)的UGO權(quán)限管理,的確可以規(guī)定一些用戶(hù)的rwx權(quán)限,但是管理粒度太粗糙了,如果想實(shí)現(xiàn)對(duì)指定用戶(hù),指定用戶(hù)組精細(xì)化的權(quán)限控制,那么需要借助Linux ACL來(lái)實(shí)現(xiàn)!
Linux ACL(Access Control List, 訪(fǎng)問(wèn)控制列表),它是對(duì)UGO權(quán)限管理的方式進(jìn)行了擴(kuò)展、可以對(duì)任意的用戶(hù)/組分配讀、寫(xiě)和執(zhí)行權(quán)限。
其常用的命令有g(shù)etfacl和setfacl。
首先看一下幾種類(lèi)型
設(shè)置ACL的命令是setfacl,-m選項(xiàng)表示修改acl規(guī)則,使用方式是setfacl -m {u|g}:{user|group}:rwx;
u表示設(shè)置ACL_USER的權(quán)限,g表示修改ACL_GROUP的權(quán)限
例子如下
可以看到,當(dāng)設(shè)置ACL規(guī)則后,ls 查看權(quán)限位,在權(quán)限位后增加了一個(gè)’+’號(hào)。
上述例子演示了如何給指定用戶(hù)和指定組增加rwx權(quán)限,當(dāng)然rwx權(quán)限和UGO權(quán)限一樣,可以隨意修改。
設(shè)置完成后,xlzh用戶(hù)和dhcpd組的用戶(hù)對(duì)該文件具有讀、寫(xiě)、執(zhí)行的權(quán)限。
再看定義,ACL掩碼定義了ACL_USER、ACL_GROUP_OBJ,ACL_GROUP的最大權(quán)限。舉例如下
有上述例子可知兩點(diǎn):
1、當(dāng)文件設(shè)置ACL規(guī)則后,權(quán)限位的第二組顯示的不再是屬主同組對(duì)該文件的訪(fǎng)問(wèn)權(quán)限,而是顯示ACL的掩碼。所以當(dāng)ls看到權(quán)限位后面有‘+’號(hào)時(shí),應(yīng)該使用getfacl查看文件屬主所在組的權(quán)限。
2、當(dāng)修改ACL的掩碼后,例如把掩碼修改為r--,則可以看到ACL_USER,ACL_GROUP_OBJ和ACL_GROUP三行后面增加了#effective:r—,表示這三種類(lèi)型實(shí)際生效的權(quán)限只有讀權(quán)限,為什么會(huì)這樣?再看ACL_MASK的定義:ACL_USER、ACL_GROUP_OBJ,ACL_GROUP的最大權(quán)限。即當(dāng)把掩碼修改為r--后,也就限制了三種類(lèi)型最大的權(quán)限范圍,只能小于掩碼,不能大于掩碼。
默認(rèn)ACL僅對(duì)目錄有效, 為了讓子目錄和自文件繼承父母路權(quán)限而生 。如果對(duì)一個(gè)目錄設(shè)置了默認(rèn)ACL規(guī)則,則在該目錄下建立的所有文件都繼承此目錄的ACL規(guī)則。實(shí)例如下
上述實(shí)例有一點(diǎn)需要注意:
1、當(dāng)為dir設(shè)置完默認(rèn)ACl規(guī)則后,只是說(shuō)dir目錄下的所有文件和繼承該目錄的所有ACL規(guī)則,并不是是說(shuō)該目錄已經(jīng)具備了該ACL規(guī)則。如果Nets也想擁有對(duì)應(yīng)的權(quán)限,那么還要用相應(yīng)的命令單獨(dú)設(shè)置!
如果user權(quán)限和group權(quán)限遇到?jīng)_突的時(shí)候,會(huì)以u(píng)ser 權(quán)限為主。
還有一種用戶(hù)比較隱晦,也是以u(píng)ser的第一個(gè)權(quán)限為最高優(yōu)先級(jí),這種用戶(hù)就是文件所屬的用戶(hù)。
1、普通ACL規(guī)則可以設(shè)置普通文件和目錄文件,是對(duì)UGO文件權(quán)限方式的補(bǔ)充
2、默認(rèn)ACL規(guī)則只對(duì)目錄生效,且被該目錄下的文件繼承,而對(duì)該目錄本身的權(quán)限,還需要使用普通ACL規(guī)則
3、設(shè)置ACl規(guī)則后,文件屬組的權(quán)限位顯示的acl規(guī)則的掩碼,不再是原來(lái)的含義
4、ACL規(guī)則的掩碼限制了ACL_USER、ACL_GROUP、ACL_GROUP_OBJ的最大權(quán)限
1.
在了解到Linux系統(tǒng)上的文件目錄權(quán)限,有時(shí)候你會(huì)發(fā)現(xiàn)為什么剛創(chuàng)建的文件是 -rw-r--r-- 這個(gè)權(quán)限,目錄是 drwxr-xr-x 權(quán)限,有些是 -rwsr-xr-x ,又有些是 drwsrws--T ?這些則與umask、特殊權(quán)限有關(guān)。
什么是umask?umask一般是用在你初始創(chuàng)建一個(gè)目錄或者文件的時(shí)候賦予他們的權(quán)限。它與chmod的效果剛好相反,umask設(shè)置的是權(quán)限“補(bǔ)碼”,而chmod設(shè)置的是文件權(quán)限碼。一般在/etc/profile、
或用戶(hù)家目錄下的.bash_profile或.profile中設(shè)置umask值。
默認(rèn)的umask是0022,0022四個(gè)數(shù)字代表是賦值初始化準(zhǔn)備丟棄的權(quán)限。(相對(duì)應(yīng)文件來(lái)說(shuō),x權(quán)限就算沒(méi)說(shuō)明出來(lái)丟棄一樣必須默認(rèn)丟棄)
第一個(gè)0代表suid 丟棄的權(quán)限;
第二個(gè)0代表本文件/目錄擁有者什么權(quán)限都沒(méi)丟棄;
第三個(gè)2代表本文件/目錄的用戶(hù)組丟棄了w權(quán)限;
第四個(gè)2代表本文件/目錄的文件/目錄的用戶(hù)組丟棄了w權(quán)限。
一般我們會(huì)這樣表示:
umask +default permission(默認(rèn)權(quán)限) =777(目錄)/666(文件)
但存在特殊情況如果把umask設(shè)為135呢?
要了解特殊權(quán)限需對(duì)安全上下文有一個(gè)概念:
前提:進(jìn)程有屬主和屬組;文件有屬主和屬組
(1) 任何一個(gè)可執(zhí)行程序文件能不能啟動(dòng)為進(jìn)程,取決發(fā)起者對(duì)程序文件是否擁有執(zhí)行權(quán)限
(2) 啟動(dòng)為進(jìn)程之后,其進(jìn)程的屬主為發(fā)起者,進(jìn)程的屬組為發(fā)起者所屬的組
(3) 進(jìn)程訪(fǎng)問(wèn)文件時(shí)的權(quán)限,取決于進(jìn)程的發(fā)起者
(a) 進(jìn)程的發(fā)起者,同文件的屬主:則應(yīng)用文件屬主權(quán)限
(b) 進(jìn)程的發(fā)起者,屬于文件屬組;則應(yīng)用文件屬組權(quán)限
(c) 應(yīng)用文件“其它”權(quán)限
1.SUID 權(quán)限僅對(duì)二進(jìn)制程序(binary program)有效;
2.執(zhí)行者對(duì)于該程序需要具有x 的可執(zhí)行權(quán)限;
3.本權(quán)限僅在執(zhí)行該程序的過(guò)程中有效(run-time);
4.執(zhí)行者將具有該程序擁有者(owner) 的權(quán)限。
5.SUID設(shè)置在目錄上無(wú)意義
權(quán)限設(shè)定:
chmod u+s FILE...
chmod u-s FILE...
s 標(biāo)志在文件擁有者的x 項(xiàng)目為SUID,那s 在群組的x 時(shí)則稱(chēng)為Set GID
[root@centos7 ~]# ls -l /usr/bin/locate
-rwx--s--x. 1 root slocate 40496 Jun 10 2014 /usr/bin/locate
與SUID 不同的是,SGID 可以針對(duì)文件或目錄來(lái)設(shè)定!如果是對(duì)文件來(lái)說(shuō), SGID 有如下的功能:
-1.SGID 對(duì)二進(jìn)制程序有用;
-2.程序執(zhí)行者對(duì)于該程序來(lái)說(shuō),需具備x 的權(quán)限;
-3.執(zhí)行者在執(zhí)行的過(guò)程中將會(huì)獲得該程序群組的支持!
[root@centos7 ~]# ll /usr/bin/locate /var/lib/mlocate/mlocate.db
-rwx--s--x. 1 root slocate 40496 Jun 10 2014 /usr/bin/locate
-rw-r-----. 1 root slocate 2349055 Jun 15 03:44 /var/lib/mlocate/mlocate.db
與SUID 非常的類(lèi)似,使用xiaoming 這個(gè)賬號(hào)去執(zhí)行l(wèi)ocate 時(shí),那xiaoming將會(huì)取得slocate 群組的支持, 因此就能夠去讀取 mlocate.db 。
SGID 也能夠用在目錄上,這也是非常常見(jiàn)的一種用途
目錄設(shè)定了SGID 的權(quán)限后,他將具有如下的功能:
-1. 用戶(hù)若對(duì)于此目錄具有r 與x 的權(quán)限時(shí),該用戶(hù)能夠進(jìn)入此目錄;
-2.用戶(hù)在此目錄下的有效群組(effective group)將會(huì)變成該目錄的群組;
-3.用途:若用戶(hù)在此目錄下具有w 的權(quán)限(可以新建文件),則使用者所建立的新文件,該新文件的群組與此目錄的群組相同。
這個(gè) Sticky Bit, SBIT 目前只針對(duì)目錄有效,sticky 設(shè)置在文件上無(wú)意義。SBIT 對(duì)于目錄的作用是:
-1.當(dāng)用戶(hù)對(duì)于此目錄具有w, x 權(quán)限,亦即具有寫(xiě)入的權(quán)限時(shí);
-2.當(dāng)用戶(hù)在該目錄下建立文件或目錄時(shí),僅有自己與root 才有權(quán)力刪除該文件
SUID/SGID/SBIT 權(quán)限設(shè)定
-rwSrwSrwT 1 root root 0 Jun 16 02:53 test
設(shè)定權(quán)限成為 -rws--x--x 的模樣:
[root@centos7 tmp]# chmod u=rwxs,go=x test; ls -l test
-rws--x--x 1 root root 0 Jun 16 02:53 test
承上,加上 SGID 與 SBIT 在上述的文件權(quán)限中!
[root@centos7 tmp]# chmod g+s,o+t test; ls -l test
-rws--s--t 1 root root 0 Jun 16 02:53 test
1】ACL 是Access Control List 的縮寫(xiě),主要的目的是在提供傳統(tǒng)的owner,group,others 的read,write,execute 權(quán)限之外的細(xì)部權(quán)限設(shè)定。ACL 可以針對(duì)單一使用者,單一文件或目錄來(lái)進(jìn)行
ACL 主要可以針以下來(lái)控制權(quán)限呢:
1.使用者 (user):可以針對(duì)使用者來(lái)設(shè)定權(quán)限;
2.群組 (group):針對(duì)群組為對(duì)象來(lái)設(shè)定其權(quán)限;
3.默認(rèn)屬性(mask):還可以針對(duì)在該目錄下在建立新文件/目錄時(shí),規(guī)范新數(shù)據(jù)的默認(rèn)權(quán)限;
及1.ACL:Access Control List,實(shí)現(xiàn)靈活的權(quán)限管理;2.CentOS7默認(rèn)創(chuàng)建的xfs和ext4文件系統(tǒng)具有ACL功能;3.CentOS7之前版本,默認(rèn)手工創(chuàng)建的ext4文件系統(tǒng)無(wú)ACL功能,需手動(dòng)增加tune2fs –o acl/dev/sdb1
mount –o acl/dev/sdb1 /mnt/test
4.ACL生效順序:所有者,自定義用戶(hù),自定義組,其他人
為多用戶(hù)或者組的文件和目錄賦予訪(fǎng)問(wèn)權(quán)限r(nóng)wx
2】ACL 的設(shè)定技巧: getfacl, setfacl
-x :刪除后續(xù)的 acl 參數(shù),不可與 -m 合用;
-b :移除『所有的』 ACL 設(shè)定參數(shù);
-k :移除『預(yù)設(shè)的』 ACL 參數(shù),
-R :遞歸設(shè)定 acl ,亦即包括次目錄都會(huì)被設(shè)定起來(lái);
-d :設(shè)定『預(yù)設(shè) acl 參數(shù)』的意思!只對(duì)目錄有效,在該目錄新建的數(shù)據(jù)會(huì)引用此默認(rèn)值
例:[root@centos7 ~]# touch acl_test1
[root@centos7 ~]# ll acl_test1
-rw-r--r--. 1 root root 0 Jul 21 17:33 acl_test1
[root@centos7 ~]# setfacl -m u:xiaoming:rx acl_test1
[root@centos7 ~]# ll acl_test1
-rw-r-xr--+ 1 root root 0 Jul 21 17:33 acl_test1
[root@centos7 ~]# setfacl -m u::rwx acl_test1
[root@centos7 ~]# ll acl_test1
-rwxr-xr--+ 1 root root 0 Jul 21 17:33 acl_test1
設(shè)定值中的 u 后面無(wú)使用者列表,代表設(shè)定該文件擁有者
2.getfacl 指令用法余setfacl一樣
例:[root@centos7 ~]# getfacl acl_test1
file: acl_test1 ==說(shuō)明檔名而已!
owner: root ==說(shuō)明此文件的擁有者,亦即 ls -l 看到的第三使用者字段
group: root ==此文件的所屬群組,亦即 ls -l 看到的第四群組字段
user::rwx ==使用者列表欄是空的,代表文件擁有者的權(quán)限
user:xiaoming:r-x ==針對(duì)xiaoming 的權(quán)限設(shè)定為 rx ,與擁有者并不同!
group::r-- ==針對(duì)文件群組的權(quán)限設(shè)定僅有 r
mask::r-x ==此文件預(yù)設(shè)的有效權(quán)限 (mask)
other::r--
3】特定的單一群組的權(quán)限設(shè)定:『g:群組名:權(quán)限』
4】主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 參數(shù)。但是tar等常見(jiàn)的備份工具是不會(huì)保留目錄和文件的ACL信息
getfacl -R /tmp/dir1 acl.txt
setfacl -R -b /tmp/dir1
清除dir目錄的ACL權(quán)限
setfacl -R --set-file=acl.txt /tmp/dir1
setfacl --restore acl.txt
getfacl -R /tmp/dir1
網(wǎng)站名稱(chēng):linuxacl命令,linux中acl
轉(zhuǎn)載源于:http://aaarwkj.com/article44/dsispee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、微信公眾號(hào)、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站排名、外貿(mào)網(wǎng)站建設(shè)、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)