欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

linuxacl命令,linux中acl

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

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

目前創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設、域名、虛擬空間、綿陽服務器托管、企業(yè)網(wǎng)站設計、云夢網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

默認 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: 想要實現(xiàn)這個↓需求

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ā)現(xiàn)有一條default:user:qin:rwx。即在/caiwubu文件夾里 新建 的文件夾以及文件對qin的權限都為rwx,但是之前已經(jīng)存在的文件及文件夾的權限在修改ACL權限之前是什么現(xiàn)在還是什么

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)建的目錄或文件在權限列無這個點顯示②

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

在 Linux 上給用戶賦予指定目錄的讀寫權限

在 Linux 上指定目錄的讀寫權限賦予用戶,有兩種方法可以實現(xiàn)這個目標:第一種是使用 ACL (訪問控制列表),第二種是創(chuàng)建用戶組來管理文件權限,下面會一一介紹。為了完成這個教程,我們將使用以下設置:

請確認所有的命令都是使用 root 用戶執(zhí)行的,或者使用 sudo 命令來享受與之同樣的權限。讓我們開始吧!下面,先使用 mkdir 命令來創(chuàng)建一個名為 share 的目錄。

1. 使用 ACL 來為用戶賦予目錄的讀寫權限

重要提示: 打算使用此方法的話,您需要確認您的 Linux 文件系統(tǒng)類型(如 ext3 和 ext4, NTFS, BTRFS)支持 ACL。

1.1. 首先, 依照以下命令在您的系統(tǒng)中檢查當前文件系統(tǒng)類型,并且查看內核是否支持 ACL:

從下方的截屏可以看到,文件系統(tǒng)類型是 ext4,并且從 CONFIG_EXT4_FS_POSIX_ACL=y 選項可以發(fā)現(xiàn)內核是支持 POSIX ACL 的。

[圖片上傳失敗...(image-c85622-1574572716190)]

1.2. 查看文件系統(tǒng)(分區(qū))掛載時是否使用了 ACL 選項。

[圖片上傳失敗...(image-bdb4d9-1574572716190)]

通過上邊的輸出可以發(fā)現(xiàn),默認的掛載項目中已經(jīng)對 ACL 進行了支持。如果發(fā)現(xiàn)結果不如所愿,你可以通過以下命令對指定分區(qū)(此例中使用 /dev/sda3)開啟 ACL 的支持)。

1.3. 指定目錄 share 的讀寫權限分配給名為 shenweiyan 的用戶了,依照以下命令執(zhí)行即可。

[圖片上傳失敗...(image-dfb909-1574572716190)]

在上方的截屏中,通過輸出結果的第二行 getfacl 命令可以發(fā)現(xiàn),用戶 shenweiyan 已經(jīng)成功的被賦予了 /data/share 目錄的讀寫權限。

如果想要獲取 ACL 列表的更多信息。請參考:

2. 使用用戶組來為用戶賦予指定目錄的讀寫權限

2.1. 如果用戶已經(jīng)擁有了默認的用戶組(通常組名與用戶名相同),就可以簡單的通過變更文件夾的所屬用戶組來完成。

另外,我們也可以通過以下方法為多個用戶(需要賦予指定目錄讀寫權限的)新建一個用戶組。如此一來,也就創(chuàng)建了一個共享目錄。

2.2. 接下來將用戶 shenweiyan 添加到 dbshare 組中:

2.3. 將目錄的所屬用戶組變更為 dbshare:

2.4. 現(xiàn)在,給組成員設置讀寫權限。

ok,在 Linux 上給用戶賦予指定目錄的讀寫權限就介紹到這里 !

參考資料:

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,十進制數(shù)值是6,‘r--’,二進制表示100, 十進制數(shù)值是4;所以對每一組權限都可以用十進制來表示。當使用chmod修改文件權限的時候就可以使用十進制代替‘rwx’,例如

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

在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ā)現(xiàn)只有root用戶可以修改此文件,也就是說當普通用戶執(zhí)行passwd命令的時候,其權限變?yōu)閞oot的權限,故可以修改/etc/shadow文件。

guid類似

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

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

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

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

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

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

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

例如下圖所示:

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

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ī)則,并不是是說該目錄已經(jīng)具備了該ACL規(guī)則。如果Nets也想擁有對應的權限,那么還要用相應的命令單獨設置!

如果user權限和group權限遇到?jīng)_突的時候,會以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下的umask、特殊權限與ACL權限

在了解到Linux系統(tǒng)上的文件目錄權限,有時候你會發(fā)現(xiàn)為什么剛創(chuàng)建的文件是 -rw-r--r-- 這個權限,目錄是 drwxr-xr-x 權限,有些是 -rwsr-xr-x ,又有些是 drwsrws--T ?這些則與umask、特殊權限有關。

什么是umask?umask一般是用在你初始創(chuàng)建一個目錄或者文件的時候賦予他們的權限。它與chmod的效果剛好相反,umask設置的是權限“補碼”,而chmod設置的是文件權限碼。一般在/etc/profile、

或用戶家目錄下的.bash_profile或.profile中設置umask值。

默認的umask是0022,0022四個數(shù)字代表是賦值初始化準備丟棄的權限。(相對應文件來說,x權限就算沒說明出來丟棄一樣必須默認丟棄)

第一個0代表suid 丟棄的權限;

第二個0代表本文件/目錄擁有者什么權限都沒丟棄;

第三個2代表本文件/目錄的用戶組丟棄了w權限;

第四個2代表本文件/目錄的文件/目錄的用戶組丟棄了w權限。

一般我們會這樣表示:

umask +default permission(默認權限) =777(目錄)/666(文件)

但存在特殊情況如果把umask設為135呢?

要了解特殊權限需對安全上下文有一個概念:

前提:進程有屬主和屬組;文件有屬主和屬組

(1) 任何一個可執(zhí)行程序文件能不能啟動為進程,取決發(fā)起者對程序文件是否擁有執(zhí)行權限

(2) 啟動為進程之后,其進程的屬主為發(fā)起者,進程的屬組為發(fā)起者所屬的組

(3) 進程訪問文件時的權限,取決于進程的發(fā)起者

(a) 進程的發(fā)起者,同文件的屬主:則應用文件屬主權限

(b) 進程的發(fā)起者,屬于文件屬組;則應用文件屬組權限

(c) 應用文件“其它”權限

1.SUID 權限僅對二進制程序(binary program)有效;

2.執(zhí)行者對于該程序需要具有x 的可執(zhí)行權限;

3.本權限僅在執(zhí)行該程序的過程中有效(run-time);

4.執(zhí)行者將具有該程序擁有者(owner) 的權限。

5.SUID設置在目錄上無意義

權限設定:

chmod u+s FILE...

chmod u-s FILE...

s 標志在文件擁有者的x 項目為SUID,那s 在群組的x 時則稱為Set GID

[root@centos7 ~]# ls -l /usr/bin/locate

-rwx--s--x. 1 root slocate 40496 Jun 10 2014 /usr/bin/locate

與SUID 不同的是,SGID 可以針對文件或目錄來設定!如果是對文件來說, SGID 有如下的功能:

-1.SGID 對二進制程序有用;

-2.程序執(zhí)行者對于該程序來說,需具備x 的權限;

-3.執(zhí)行者在執(zhí)行的過程中將會獲得該程序群組的支持!

[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 非常的類似,使用xiaoming 這個賬號去執(zhí)行l(wèi)ocate 時,那xiaoming將會取得slocate 群組的支持, 因此就能夠去讀取 mlocate.db 。

SGID 也能夠用在目錄上,這也是非常常見的一種用途

目錄設定了SGID 的權限后,他將具有如下的功能:

-1. 用戶若對于此目錄具有r 與x 的權限時,該用戶能夠進入此目錄;

-2.用戶在此目錄下的有效群組(effective group)將會變成該目錄的群組;

-3.用途:若用戶在此目錄下具有w 的權限(可以新建文件),則使用者所建立的新文件,該新文件的群組與此目錄的群組相同。

這個 Sticky Bit, SBIT 目前只針對目錄有效,sticky 設置在文件上無意義。SBIT 對于目錄的作用是:

-1.當用戶對于此目錄具有w, x 權限,亦即具有寫入的權限時;

-2.當用戶在該目錄下建立文件或目錄時,僅有自己與root 才有權力刪除該文件

SUID/SGID/SBIT 權限設定

-rwSrwSrwT 1 root root 0 Jun 16 02:53 test

設定權限成為 -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 在上述的文件權限中!

[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 的縮寫,主要的目的是在提供傳統(tǒng)的owner,group,others 的read,write,execute 權限之外的細部權限設定。ACL 可以針對單一使用者,單一文件或目錄來進行

ACL 主要可以針以下來控制權限呢:

1.使用者 (user):可以針對使用者來設定權限;

2.群組 (group):針對群組為對象來設定其權限;

3.默認屬性(mask):還可以針對在該目錄下在建立新文件/目錄時,規(guī)范新數(shù)據(jù)的默認權限;

及1.ACL:Access Control List,實現(xiàn)靈活的權限管理;2.CentOS7默認創(chuàng)建的xfs和ext4文件系統(tǒng)具有ACL功能;3.CentOS7之前版本,默認手工創(chuàng)建的ext4文件系統(tǒng)無ACL功能,需手動增加tune2fs –o acl/dev/sdb1

mount –o acl/dev/sdb1 /mnt/test

4.ACL生效順序:所有者,自定義用戶,自定義組,其他人

為多用戶或者組的文件和目錄賦予訪問權限rwx

2】ACL 的設定技巧: getfacl, setfacl

-x :刪除后續(xù)的 acl 參數(shù),不可與 -m 合用;

-b :移除『所有的』 ACL 設定參數(shù);

-k :移除『預設的』 ACL 參數(shù),

-R :遞歸設定 acl ,亦即包括次目錄都會被設定起來;

-d :設定『預設 acl 參數(shù)』的意思!只對目錄有效,在該目錄新建的數(shù)據(jù)會引用此默認值

例:[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

設定值中的 u 后面無使用者列表,代表設定該文件擁有者

2.getfacl 指令用法余setfacl一樣

例:[root@centos7 ~]# getfacl acl_test1

file: acl_test1 ==說明檔名而已!

owner: root ==說明此文件的擁有者,亦即 ls -l 看到的第三使用者字段

group: root ==此文件的所屬群組,亦即 ls -l 看到的第四群組字段

user::rwx ==使用者列表欄是空的,代表文件擁有者的權限

user:xiaoming:r-x ==針對xiaoming 的權限設定為 rx ,與擁有者并不同!

group::r-- ==針對文件群組的權限設定僅有 r

mask::r-x ==此文件預設的有效權限 (mask)

other::r--

3】特定的單一群組的權限設定:『g:群組名:權限』

4】主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 參數(shù)。但是tar等常見的備份工具是不會保留目錄和文件的ACL信息

getfacl -R /tmp/dir1 acl.txt

setfacl -R -b /tmp/dir1

清除dir目錄的ACL權限

setfacl -R --set-file=acl.txt /tmp/dir1

setfacl --restore acl.txt

getfacl -R /tmp/dir1

網(wǎng)站名稱:linuxacl命令,linux中acl
轉載源于:http://chinadenli.net/article44/dsispee.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航微信公眾號網(wǎng)站設計公司網(wǎng)站排名外貿網(wǎng)站建設Google

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設網(wǎng)站維護公司