真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

acl命令詳解linux acl調用命令

Linux常用命令之--ACL(getfacl,setfacl)

ACL可以為某個文件單獨設置該文件具體的某用戶或組的權限,不走三類權限位

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網綜合服務,包含不限于成都網站建設、成都網站設計、湘橋網絡推廣、小程序開發(fā)、湘橋網絡營銷、湘橋企業(yè)策劃、湘橋品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供湘橋建站搭建服務,24小時服務熱線:13518219792,官方網址:www.cdcxhl.com

默認 ACL 權限的作用是:如果給父目錄設定了默認 ACL 權限,那么父目錄中所有新建的子文件都會繼承父目錄的 ACL 權限。但是要加 -R

※ACL權限更高,會先查看ACL再看傳統(tǒng)的權限。如果沒有ACL才會走三類權限位

※如果一個用戶在ACL的user中一個權限,他所在的ACL的group中是另外一個權限,會按照user權限來

? getfacl 文件名

獲取文件的訪問控制信息

? setfacl設置文件的acl

-m修改文件的acl

-x取消用戶或組對文件的權限

語法:

? setfacl –m u:用戶名:權限 文件名 設置某用戶名的訪問權限

? setfacl –m g:組名:權限 文件名 設置某個組的訪問權限

例1: 想要實現這個↓需求

user1:rwx,user2:rw-,user3:r-x,user4:r--,user5:--x,user6:-w-,

傳統(tǒng)權限無法滿足上述要求,這時就可以用↓命令進行權限添加

建一個名字為1的文件,查看文件1的權限↓

設置權限

修改后看文件1的權限↓

例2:

有組A(groupA)和組B(groupB)兩個組,文件1所屬于A組,如果通過三類權限位設置文件權限,其他用戶沒有任何權限,而B組為其他用戶,因此無法對文件1進行任何操作。這時可以通過ACL給組B設置權限:

setfacl -m g:groupB:r 1 B組里的所有成員就有讀權限了

? setfacl –x u:用戶名 文件名 //取消某用戶的訪問權限

? setfacl –x g:組名 文件名 //取消某個組的訪問權限

?↑這時是將這個user或group的ACL整個刪除,如果只是想刪除某一個權限,還是需要setfacl -m來進行重新設置

例3:

setfacl -m d:u:qin:rwx /caiwubu

d:default,即將caiwubu這個文件夾的權限對qin開放rwx權限,getfacl /caiwubu的時候會發(fā)現有一條default:user:qin:rwx。即在/caiwubu文件夾里 新建 的文件夾以及文件對qin的權限都為rwx,但是之前已經存在的文件及文件夾的權限在修改ACL權限之前是什么現在還是什么

setfacl -x u:qin /caiwubu/zhangben 取消qin這個用戶對該文件的acl權限

取消qin這個用戶對該文件的acl權限

?如果這個文件給兩個及兩個以上的用戶設定了ACL,取消其中一個用戶的權限可以用這個命令。但是如果這個文件只給一個用戶設定了ACL且想刪除ACL,或者想把該文件里所有的ACL權限都刪除的話,需要用↓的命令

setfacl -b /caiwubu/zhangben

關于權限列的.和+:

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權限列的點不是無意義字符

?在開啟SELinux的情況下創(chuàng)建的目錄和文件有這個點,權限列有這個點說明該目錄或文件設置了SELinux相關的權限①

?在禁用SELinux權限之后,在之前開啟SELinux權限時創(chuàng)建的文件或目錄保持原來的權限不便,權限列的點依然顯示,而新創(chuàng)建的目錄或文件在權限列無這個點顯示②

?權限列中最后一個位置如果是加號,說明這個目錄或文件已經設置了ACL權限相關的內容。如果加號存在,則已經有點的目錄或文件中的點的顯示會被覆蓋,但原來的SELinux屬性保持不變

在linux中 acl是什么意思

ACL的名詞定義

先來看看在ACL里面每一個名詞的定義.這些名詞我大多從man page上摘下來雖然有些枯燥,

但是對于理解下面的內容還是很有幫助的

ACL 是由一系列的Access Entry所組成的. 每一條Access Entry定義了特定的類別可以對

文件擁有的操作權限. Access Entry有三個組成部分: Entry tag type, qualifier

(optional), 權限

我們先來看一下最重要的Entry tag type, 它有以下幾個類型

ACL_USER_OBJ: 相當于Linux里file_owner的權限

ACL_USER: 定義了額外的用戶可以對此文件擁有的權限

ACL_GROUP_OBJ: 相當于Linux里group的權限

ACL_GROUP: 定義了額外的組可以對此文件擁有的權限

ACL_MASK: 定義了ACL_USER, ACL_GROUP_OBJ和ACL_GROUP的最大權限 (這個我下面還會專門討論)

ACL_OTHER: 相當于Linux里other的權限

讓我們來據個例子說明一下. 下面我們就用getfacl命令來查看一個定義好了的ACL文件

代碼:

[root@zyq-server data]# getfacl test.txt

# file: test.txt

# owner: root

# group: family

user::rw-

user:zyq:rw-

group::rw-

group:jackuser:rw-

mask::rw-

other::---

前面三個以#開頭的定義了文件名,文件所有者和文件擁有組. 這些信息沒有太大的作用,我

們可以用 --omit-header來省略掉

Linux UGO,ACL簡介

自主訪問控制(Discretionary Access Control, DAC)是指對象(比如程序、文件、進程)的擁有者可以任意修改或者授予此對象相應的權限。Linux的UGO(User, Group, Other)和ACL(Access Control List)權限管理方式就是典型的自主訪問控制。UGO將權限信息存儲在節(jié)點的權限中,ACL將權限位信息存儲在節(jié)點的擴展屬性中。

當一個文件創(chuàng)建后,它具有讀(r)、寫(w)、執(zhí)行(x)三種操作方式。UGO權限管理方式將訪問文件的操作者簡單分為三類:文件屬主(u)、同組用戶(g)與其他組用戶(o)。

文件的三種操作方式用三個二進制位表示,第一位表示讀權限,第二位表示寫權限,第三位表示執(zhí)行權限。一個文件的權限屬性就是有三類用戶對該文件的權限使能的集合。

當我們用ls查看一個文件的時候,會顯示如下結果

最前面的’-’,表示文件為普通類型

第一組的‘rw-’,表示文件屬主對文件具有讀和寫權限,但沒有執(zhí)行權限

第二組的’rw-’,表示同組其他用戶對文件具有讀和寫權限,但沒有執(zhí)行權限

第三組的’r--’,表示其他組用戶對文件具有讀權限,但沒有寫和執(zhí)行權限

上述每一組權限用可以用二進制表示,例如’rw-’,二進制表示是110,十進制數值是6,‘r--’,二進制表示100, 十進制數值是4;所以對每一組權限都可以用十進制來表示。當使用chmod修改文件權限的時候就可以使用十進制代替‘rwx’,例如

當然也可以通過chmod u+x,o+w test實現與上述同樣的功能。具體使用哪種方式,單憑個人喜好。

在linux下一切皆文件,目錄也不例外,但目錄的讀寫執(zhí)行權限與普通文件的讀寫執(zhí)行權限含義有所不同,如下所示

1.1節(jié)描述了常用的權限位,但還有幾個特殊的權限位需要知道,分別是s(suid),s(sgid), t(Sticky Bit)。首先看一下linux下的/usr/passwd文件和/tmp目錄

可以看到/usr/bin/passwd的第一組權限位和上一節(jié)有所不同,第三個標志位變成了s。當屬主用戶對文件設置了suid位后,其他用戶在執(zhí)行該文件的時候則具有等同于屬主的權限。

還是以passwd命令為例,普通用戶可以用passwd修改自己的密碼,而用戶密碼的hash存儲在/etc/shadow文件中,修改密碼必然要修改此文件,我們看下此文件

發(fā)現只有root用戶可以修改此文件,也就是說當普通用戶執(zhí)行passwd命令的時候,其權限變?yōu)閞oot的權限,故可以修改/etc/shadow文件。

guid類似

SUID對目錄沒有影響,SGID對目錄有影響,對于設置了SGID的目錄,所有用戶在該目錄下新建的文件屬主屬于該用戶,但GID是該目錄所屬的組,如下

而對于t,又叫粘著位,僅對目錄生效。在具有t位的目錄下,如果用戶在該目錄下具有w及x權限,則當用戶在該目錄下建立文件或目錄時,只有文件擁有者與root才有權力刪除。/tmp目錄則是最好的例子,每個應用都可以在tmp目錄下新建刪除自己的文件,但卻不能刪除其應用建立的文件。

那么如何修改文件的sst權限呢?還是使用chmod命令,由第一節(jié)我們知道可以用十進制數值設置UGO對文件的訪問權限,同樣對于特殊權限位,也可以使用。只需在原來的數值前面加上sst的十進制數值。有時候我們還會看到大寫的SST,那是因為可執(zhí)行位為0,所以顯示為大寫,例如

先做一個實驗,在linux下分別建立一個目錄和一個文件,查看其權限位

可以看到,新建的目錄全顯示775,新建的文件是664,為什么新建的文件和目錄權限不是777呢?就是由于掩碼的存在,當用戶新建一個目錄的時候,是777與掩碼做與操作,當用戶新建一個文件的時候,是666與掩碼做與操作??梢杂胾mask命令查看當前系統(tǒng)掩碼

當然,還可以通過umask命令修改系統(tǒng)掩碼,新建文件的權限位也跟著改變。

UGO權限管理方式只能對屬主、同組用戶和其他組用戶進行權限管理,很難對每個用戶或用戶組進行權限管理。比如有多個用戶想問房一個目錄,但是每個人又要求不一樣的權限,ACL就是為了這種局限性而生的。

例如下圖所示:

從圖中可以看出,傳統(tǒng)的UGO權限管理,的確可以規(guī)定一些用戶的rwx權限,但是管理粒度太粗糙了,如果想實現對指定用戶,指定用戶組精細化的權限控制,那么需要借助Linux ACL來實現!

Linux ACL(Access Control List, 訪問控制列表),它是對UGO權限管理的方式進行了擴展、可以對任意的用戶/組分配讀、寫和執(zhí)行權限。

其常用的命令有getfacl和setfacl。

首先看一下幾種類型

設置ACL的命令是setfacl,-m選項表示修改acl規(guī)則,使用方式是setfacl -m {u|g}:{user|group}:rwx;

u表示設置ACL_USER的權限,g表示修改ACL_GROUP的權限

例子如下

可以看到,當設置ACL規(guī)則后,ls 查看權限位,在權限位后增加了一個’+’號。

上述例子演示了如何給指定用戶和指定組增加rwx權限,當然rwx權限和UGO權限一樣,可以隨意修改。

設置完成后,xlzh用戶和dhcpd組的用戶對該文件具有讀、寫、執(zhí)行的權限。

再看定義,ACL掩碼定義了ACL_USER、ACL_GROUP_OBJ,ACL_GROUP的最大權限。舉例如下

有上述例子可知兩點:

1、當文件設置ACL規(guī)則后,權限位的第二組顯示的不再是屬主同組對該文件的訪問權限,而是顯示ACL的掩碼。所以當ls看到權限位后面有‘+’號時,應該使用getfacl查看文件屬主所在組的權限。

2、當修改ACL的掩碼后,例如把掩碼修改為r--,則可以看到ACL_USER,ACL_GROUP_OBJ和ACL_GROUP三行后面增加了#effective:r—,表示這三種類型實際生效的權限只有讀權限,為什么會這樣?再看ACL_MASK的定義:ACL_USER、ACL_GROUP_OBJ,ACL_GROUP的最大權限。即當把掩碼修改為r--后,也就限制了三種類型最大的權限范圍,只能小于掩碼,不能大于掩碼。

默認ACL僅對目錄有效, 為了讓子目錄和自文件繼承父母路權限而生 。如果對一個目錄設置了默認ACL規(guī)則,則在該目錄下建立的所有文件都繼承此目錄的ACL規(guī)則。實例如下

上述實例有一點需要注意:

1、當為dir設置完默認ACl規(guī)則后,只是說dir目錄下的所有文件和繼承該目錄的所有ACL規(guī)則,并不是是說該目錄已經具備了該ACL規(guī)則。如果Nets也想擁有對應的權限,那么還要用相應的命令單獨設置!

如果user權限和group權限遇到沖突的時候,會以user 權限為主。

還有一種用戶比較隱晦,也是以user的第一個權限為最高優(yōu)先級,這種用戶就是文件所屬的用戶。

1、普通ACL規(guī)則可以設置普通文件和目錄文件,是對UGO文件權限方式的補充

2、默認ACL規(guī)則只對目錄生效,且被該目錄下的文件繼承,而對該目錄本身的權限,還需要使用普通ACL規(guī)則

3、設置ACl規(guī)則后,文件屬組的權限位顯示的acl規(guī)則的掩碼,不再是原來的含義

4、ACL規(guī)則的掩碼限制了ACL_USER、ACL_GROUP、ACL_GROUP_OBJ的最大權限

1.

linux如何查看與設定ACL權限介紹(2)

body{

line-height:200%;

}

linux如何查看與設定ACL權限介紹(2)

1.查看ACL命令

[root@localhost~]#

getfacle

文件名

#查看acl權限

2.設定ACL權限的命令

[root@localhost~]#

setfacl

選項

文件夾

選項:

-m

設定ACL權限

-x

刪除指定的ACL權限

-b

刪除所有的ACL權限

-d

設定默認ACL權限

-k

刪除默認ACL權限

-R

遞歸設定ACL權限。

3.給用戶設定ACL權限

注意:其實我們說,不管windows還是Linux,需要給一個文件或文件夾分配權限,才可以在服務器上正常使用。只是對于個人用戶來講,大對數人都是管理員登錄,根本沒有考慮權限這個問題,但這樣子對服務器安全性存在風險,因此需給用戶組設定ACL權限。

4.給用戶組設定ACL權限

root@localhost~]#

groupadd

tgroup2

root@localhost~]#

setfacl

-m

g:tgroup2:rwx

project/

#位組tgroup2分配ACL權限。使用“g:組名:權限”格式


文章題目:acl命令詳解linux acl調用命令
瀏覽地址:http://weahome.cn/article/dodojsd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部