国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

靈活運用Linux中的文件/目錄訪問控制機制
2012-01-10    TechTarget中國

文件/目錄訪問控制是Linux操作系統安全的重要組成部分。傳統的Linux操作系統支持用戶-用戶組-其它用戶的訪問控制機制,來限定系統用戶對文件/目錄的訪問權限,該機制已經廣泛為用戶所接受和應用。而在實際的使用過程中,用戶意識到在很多應用場景該機制并不能靈活、高效地滿足訪問控制需求,因而自Linux內核2.6版本開始便支持更為靈活的ACL(訪問控制列表)機制。本文將通過實例來詳細介紹這兩種機制的原理及使用。

1、傳統的用戶-用戶組-其他用戶(UGO)訪問控制機制

UGO(user,group,other)模式原理

Linux系統中的每個文件和目錄都有訪問許可權限,通過其確定誰可以通過何種方式對文件和目錄進行訪問和操作。文件或目錄的訪問權限分為只讀,只寫和可執行三種。以文件為例,只讀權限表示只允許讀其內容,而禁止對其做任何的更改操作;只寫權限允許對文件進行任何的修改操作;可執行權限表示允許將該文件作為一個程序執行。文件被創建時,文件所有者自動擁有對該文件的讀、寫和可執行權限,以便于對文件的閱讀和修改。用戶也可根據需要把訪問權限設置為需要的任何組合。

有三種不同類型的用戶可對文件或目錄進行訪問:文件所有者,同組用戶、其他用戶。所有者一般是文件的創建者。它可以允許同組用戶有權訪問文件,還可以將文件的訪問權限賦予系統中的其他用戶。在這種情況下,系統中的每一位用戶都能訪問該用戶擁有的文件或目錄。

每一個文件或目錄的訪問權限都有三組,每組用三位表示,分別為文件屬主的讀、寫和執行權限;與屬主同組的用戶的讀、寫和執行權限;系統中其他用戶的讀、寫和執行權限。當用ls-l命令顯示文件或目錄的詳細信息時,最左邊的一列為文件的訪問權限。例如:

#ls-l

總計76

-rw-------1rootroot79711-0620:41anaconda-ks.cfg

drwxr-xr-x2rootroot409611-0613:50Desktop

-rw-r--r--1rootroot4484311-0620:40install.log

-rw-r--r--1rootroot751311-0620:35install.log.syslog

橫線代表空許可(即表示不具有該權限)。r代表只讀,w代表寫,x代表可執行。注意:這里共有10個位置。第1個字符指定了文件類型。在通常意義上,一個目錄也是一個文件。如果第1個字符是橫線,表示是一個非目錄的文件。如果是d,表示是一個目錄。后面的9個字符每三個構成一組,依次表示文件主、組用戶、其他用戶對該文件的訪問權限。

確定了一個文件的訪問權限后,用戶可以利用Linux系統提供的chmod命令來重新設定不同的訪問權限。也可以利用chown命令來更改某個文件或目錄的所有者。

2、擴展的訪問控制列表(ACL)方式

為什么要采用ACL

UGO訪問控制機制在很多情況下難以滿足實際文件/目錄訪問授權的需求,比如,要設定一個組中的部分用戶對特定的文件/目錄具有讀取和訪問權限(rw-),而另外一部分用戶只能具備讀權限(r--);這在傳統的Linux訪問控制中無法通過單純地建立新的組和用戶來實現。因此,為了解決這些問題,人們提出了一種新的訪問控制方法,也就是訪問控制列表(ACL,AccessControlList)。

ACL是一個POSIX(可移植操作系統接口,PortableOperatingSystemInterface)標準。目前,支持ACL需要內核和文件系統的支持?,F在2.6內核配合EXT2/EXT3,JFS,XFS,ReiserFS等文件系統都是可以支持ACL的。在目前主流的發行套件,如RedHatEnterpriseLinux(RHEL)5、RHEL6、Fedora16等等,都已經支持ACL。

ACL的類型及權限位

ACL是由一系列的AccessEntry所組成的。每一條AccessEntry定義了特定的類別可以對文件擁有的操作權限。AccessEntry主要包括6個,可分為兩大類:一類包括owner、owninggroup和other,對應傳統UGO機制中的user、group和other;一類則包括nameduser、namedgroup和mask。這六類的主要說明如下:

user:相當于Linux里文件所有者的permission

nameduser:定義了額外的用戶可以對此文件擁有的permission

group:相當于Linux里group的permission

namedgroup:定義了額外的組可以對此文件擁有的permission

mask:定義了nameduser,namedgroup和group的最大權限

other:相當于Linux里other的permission

舉個簡單的例子,對于如下的ACLEntry的定義:

#file:example.xml

#owner:liyang

#group:operation

user::rwx

user:shengping:rw-

group::rw-

group:dev:r-x

mask::rwx

other::r—

其中,前面三個以#開頭的定義了文件名、文件的所有者和所有者所在的組。后面緊跟著的六行則說明了如下的問題:

user::rwx說明文件所有者擁有讀寫和執行權限

user:shengping:rw-定義了用戶shengping擁有對文件的讀寫權限

group::rw-說明文件的group擁有讀寫權限

group:dev:r-x定義dev組擁有對文件的讀和執行權限

mask::rwx定義了mask的權限為讀

other::r--定義了other用戶的權限為讀

值得特別注意的是:mask的rwx權限定義,決定了user:shengping,group和group:dev對文件的最大權限分別是rw、rw和rx。這也是mask這個ACLEntry的用途所在,可以用它來批量控制權限。當然,在實際的使用過程中,并不需要用戶對該Entry直接進行操作,而只需要使用相應的setfacl命令即可,系統將會根據該命令的執行來自動生成上述Entry項,這其中就包含了mask這個Entry項。

#p#副標題#e#

ACL的基本命令

ACL的主要命令有2個:getfacl和setfacl。Getfacl用于或取文件或者目錄的ACL權限信息,而setfacl則用于設置文件或者目錄的ACL權限信息。下面分別對他們的使用進行簡單介紹。

Getfacl-獲取ACL權限信息

getfacl命令用于獲取文件的ACL權限信息,其基本用法為:getfacl[文件/目錄名]。

舉個例子,首先,使用touch命令先建立一個測試文件acl_test:

$touchfileacl_test

然后,使用ls命令來查看該文件的權限訪問屬性,發現其并沒有加入acl權限,因為沒有出現“+”符號:

$ls-lacl_test

-rw-rw-r--1gavingavin012-2011:49acl_test

接著,使用getfacl命令來獲取文件的ACL權限信息,得到如下結果:

$getfaclacl_test

#file:acl_test

#owner:gavin

#group:gavin

user::rw-

group::rw-

other::r—

值得注意的是:即使該文件系統上沒有開啟ACL選項,getfacl命令仍然可用,不過只顯示默認的文件訪問權限,即與ls-l顯示的內容相似。

Setfacl-設置ACL權限

為了設置文件的ACL權限,需要使用setfacl命令來詳細設置文件的訪問權限,其基本用法如下:

setfacl–[參數][文件/目錄],其常用的參數及作用如下所示:

-m:建立一個ACL規則

-x:刪除一個ACL規則

-b:刪除全部的ACL規則

-set:覆蓋ACL規則

下面來詳細介紹如何使用setfacl來設置文件/目錄的ACL權限。

(1)添加/修改ACL規則

需要使用-m選項來進行操作。

舉個例子,使用該命令為用戶gavin和組test設置acl_test文件的讀寫權限,并使用getfacl查看設置結果:

$setfacl-mu:gavin:rw,g:test:racl_test

$getfaclacl_test

#file:acl_test

#owner:gavin

#group:gavin

user::rw-

user:gavin:rw-

group::rw-

group:test:r--

mask::rw-

other::r—

在上面的命令示例中,可以清楚地看到加粗部分user:gavin、group:test、mask這3個ACLEntry的出現,表明對文件進行了ACL權限設置,否則,不會出現該標識。為了進一步驗證,我們使用ls-l來查看該文件的權限位中是否多了“+”這個標識位,如下所示:

$ls-lacl_test

-rw-rw-r--+1gavingavin012-2011:49acl_test

其中,user:gavin、group:test為我們設置的訪問權限,而mask::rw為自動添加的內容。

(2)刪除ACL規則

使用-x選項可以方便地刪除指定用戶對指定文件/目錄的訪問權限。

以下示例刪除用戶gavin對文件acl_test的訪問權限:

$setfacl-xu:gavinacl_test

$getfaclacl_test

#file:acl_test

#owner:gavin

#group:gavin

user::rw-

group::rw-

group:test:r--

mask::rw-

other::r--

$ls-lacl_test

-rw-rw-r--+1gavingavin012-2011:49acl_test

通過上述2段ACL權限顯示的對比可以清楚地看到:用戶gavin對于文件acl_test的訪問權限已經完全刪除了,表現為user:gavin:rw-已經不存在了。這里提醒注意的是:我們不能夠通過setfacl命令來指定刪除用戶/組對文件/目錄的某一個特定權限(如r、w或者x)。同時,也可以看到,使用ls-l命令顯示文件的9個權限位還是沒有改變,因為改變的只是ACL權限,而不是最基本的user、group和others權限。

(3)刪除文件/目錄的所有ACL規則

使用-b選項可以刪除文件/目錄的ACL權限。如下命令將刪除文件acl_test的所有ACL權限。可以看到,使用getfacl命令來查看是,mask項已經消失,即該文件已經沒有了所有的ACL權限:

$setfacl-bacl_test

$getfaclacl_test

#file:acl_test

#owner:gavin

#group:gavin

user::rw-

group::rw-

other::r—

(4)覆蓋文件的原有ACL規則

需要使用--set選項。此處需要強調一下-m選項和--set選項的區別:-m選項只是修改已有的配置或是新增加一些;而--set選項和-m不同,它會把原有的ACL項全都刪除,并用新的替代。另外,--set選項的參數中一定要包含UGO的設置,不能象-m一樣只是添加ACL就可以了。

以下示例該選項的使用方法:

$setfacl--setu::rw,g::rw,o::r,u:gavin:rwx,g:test:rxacl_test

$getfaclacl_test

#file:acl_test

#owner:gavin

#group:gavin

user::rw-

user:gavin:rwx

group::rw-

group:test:r-x

mask::rwx

other::r--

$ls-lacl_test

-rw-rwxr--+1gavingavin012-2011:49acl_test

這里需要提醒注意的是:上述acl_test文件的權限標識位中的group的rwx權限,并不是表明acl_test文件所屬用戶的用戶組對其有x權限,實際上只具有rw權限,而是因為在group:test:r-x中指定了test這個組具有x權限,所以ACL機制在這個標識位上進行了體現,在實際的應用中要特別注意,切記不要弄混淆了。

(5)其他選項

除了上述介紹的4類用法外,setfacl還可以使用如下一些選項,如下表,供大家在實際使用中參考:

為目錄創建默認ACL

在日常的使用過程中,經常是通過對目錄來設定ACL權限來滿足應用的需求,而很少僅僅通過設置特定的文件來實現,因為這樣做比較繁瑣和低效。因此,下面就介紹如何來為目錄創建默認的ACL。

如果希望在一個目錄中新建的文件和目錄都使用同一個預定的ACL,那么我們可以使用默認ACL(DefaultACL)。在對一個目錄設置了默認的ACL以后,每個在目錄中創建的文件都會自動繼承目錄的默認ACL作為自己的ACL。

具體的設置命令為:setfacl-d[目錄名]。

下面的例子對新建的test目錄進行ACL權限設置,并在其中新建了test1和test2文件,來看看默認ACL的設置情況。

首先,對文件夾test進行ACL權限查看如下:

$getfacltest

#file:test

#owner:gavin

#group:gavin

user::rwx

group::rwx

other::r-x

接著,對其進行權限設置如下:

$setfacl-d-mg:test:rtest

$getfacltest

#file:test

#owner:gavin

#group:gavin

user::rwx

group::rwx

other::r-x

default:user::rwx

default:group::rwx

default:group:test:r--

default:mask::rwx

default:other::r-x

可以看到,經過setfacl設置后,該文件夾的權限增加了以default開始的幾項,表明設置成功。

然后,建立兩個新的文件,然后查看他們的ACL權限信息如下:

$touchtest1test2

$getfacltest1

#file:test1

#owner:gavin

#group:gavin

user::rw-

group::rwx#effective:rw-

group:test:r--

mask::rw-

other::r--

$getfacltest2

#file:test2

#owner:gavin

#group:gavin

user::rw-

group::rwx#effective:rw-

group:test:r--

mask::rw-

other::r--

可以清楚地看到:文件test1和test2自動繼承了test設置的ACL。

備份和恢復ACL

目前,Linux系統中的主要的文件操作命令,如cp、mv、ls等都支持ACL。因此,在基本的文件/目錄操作中可以很好地保持文件/目錄的ACL權限。然而,有一些其它的命令,比如tar(文件歸檔)等常見的備份工具是不會保留目錄和文件的ACL信息的。因此,如果希望備份和恢復帶有ACL的文件和目錄,那么可以先把ACL備份到一個文件里,待操作完成以后,則可以使用--restore選項來恢復這個文件/目錄中保存的ACL信息。

下面給出一個具體的例子來進行說明。

(1)獲取文件acl_test的ACL權限

$getfaclacl_test

#file:acl_test

#owner:gavin

#group:gavin

user::rwx

user:test:r--

group::---

mask::r--

other::---

(2)將該文件的ACL權限保存至acl_test.acl文件中并進行查看

$getfaclacl_test>acl_test.acl

$catacl_test.acl

#file:acl_test

#owner:gavin

#group:gavin

user::rwx

user:test:r--

group::---

mask::r--

other::---

(3)使用tar命令進行文件操作,并查看生成文件acl.tar的ACL權限,發現其并不具備ACL權限

$tarczvfacl.taracl_test

acl_test

$getfaclacl.tar

#file:acl.tar

#owner:gavin

#group:gavin

user::rw-

group::rw-

other::r--

(4)刪除acl_test文件,并釋放acl.tar,查看其ACL權限,發現經過tar命令后,acl_test文件不在具備第(1)步顯示的任何ACL權限,表明tar命令不能保持文件的ACL權限

$rm-rfacl_test

$tar-xzvfacl.tar

acl_test

$getfaclacl_test

#file:acl_test

#owner:gavin

#group:gavin

user::rwx

group::r--

other::---

(5)使用命令從文件恢復acl_test的ACL權限,進行查看,表明成功恢復。

$setfacl--restoreacl_test.acl

$getfaclacl_test

#file:acl_test

#owner:gavin

#group:gavin

user::rwx

user:test:r--

group::---

mask::r--

other::---

熱詞搜索:

上一篇:選對不選貴 Linux用戶必選七款服務器
下一篇:云計算與虛擬化時代 刀片服務器優勢何在?

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
91片黄在线观看| 欧美一级xxx| 免费人成精品欧美精品| 国产精品成人午夜| 精品久久久久久久人人人人传媒 | 国内外精品视频| 亚洲一二三区视频在线观看| 欧美国产亚洲另类动漫| 日韩视频在线永久播放| 欧美性三三影院| 不卡欧美aaaaa| 国产精品资源在线看| 日本不卡视频一二三区| 亚洲精品中文字幕在线观看| 中文字幕免费不卡| 久久久综合精品| 日韩一区二区精品葵司在线| 欧美日韩午夜影院| 色综合天天综合网国产成人综合天| 国产一区二区三区黄视频| 欧美a级一区二区| 日韩国产精品大片| 性做久久久久久免费观看欧美| 成人欧美一区二区三区小说| 国产区在线观看成人精品| 久久亚洲影视婷婷| 日韩欧美电影一二三| 在线不卡一区二区| 欧美挠脚心视频网站| 欧美视频在线播放| 在线视频亚洲一区| 日本伦理一区二区| 色爱区综合激月婷婷| 91在线小视频| 91蜜桃在线观看| 99re热视频这里只精品| 色综合久久综合网| 日本精品一级二级| 91成人看片片| 欧美视频自拍偷拍| 制服丝袜在线91| 7777精品伊人久久久大香线蕉 | 日韩精品一区二区三区视频播放| 91免费看片在线观看| 99精品偷自拍| 在线看日本不卡| 欧美日韩精品系列| 欧美一区二区成人6969| 在线播放91灌醉迷j高跟美女 | 亚洲少妇屁股交4| 国产精品久久久99| 亚洲男人的天堂网| 一区二区三区四区中文字幕| 洋洋av久久久久久久一区| 亚洲成年人网站在线观看| 天堂在线一区二区| 国内外精品视频| 成人性生交大片免费看中文网站| 成人av在线影院| 欧美亚洲动漫制服丝袜| 91精品国产麻豆国产自产在线 | 精品日产卡一卡二卡麻豆| 久久精品欧美一区二区三区不卡 | 久久激情综合网| 国产69精品一区二区亚洲孕妇| 91女厕偷拍女厕偷拍高清| 欧美电影影音先锋| 久久久蜜臀国产一区二区| 亚洲欧美日韩国产综合在线| 亚洲国产sm捆绑调教视频| 麻豆精品精品国产自在97香蕉| 国产91精品在线观看| 在线日韩国产精品| 精品国产123| 亚洲婷婷综合色高清在线| 日韩专区一卡二卡| 成人综合在线网站| 欧美婷婷六月丁香综合色| 欧美mv日韩mv| 亚洲一区二区三区美女| 国产一区二区久久| 欧美日韩在线播放| 国产亚洲污的网站| 亚洲成av人片在线观看| 国产sm精品调教视频网站| 欧美日韩一区二区欧美激情| 2017欧美狠狠色| 亚洲一区二区三区中文字幕| 另类综合日韩欧美亚洲| 一本大道久久a久久综合婷婷| 日韩欧美亚洲一区二区| 亚洲色图在线播放| 国产一区二区三区四区五区入口| 91福利视频网站| 亚洲国产精品99久久久久久久久| 五月天欧美精品| 99免费精品视频| 日韩欧美电影在线| 亚洲成av人片观看| 96av麻豆蜜桃一区二区| 久久久不卡网国产精品一区| 日韩国产欧美视频| 在线观看日韩一区| 中文字幕日韩一区二区| 国产老妇另类xxxxx| 日韩一区二区在线播放| 一区二区三区丝袜| 成人午夜av电影| 欧美精品一区二区三| 婷婷成人综合网| 91成人国产精品| 综合色中文字幕| 国产精品99久久久| 日韩欧美二区三区| 日本亚洲视频在线| 在线观看日产精品| 一区二区三区四区精品在线视频| 成人网在线免费视频| 国产日韩精品一区二区浪潮av | 一本一道综合狠狠老| 国产精品久久毛片| 国产精品538一区二区在线| 精品免费99久久| 久久99精品国产.久久久久久| 欧美一区二区日韩| 三级精品在线观看| 欧美精品在线视频| 亚洲国产精品综合小说图片区| 91免费国产视频网站| 亚洲乱码日产精品bd| 91美女蜜桃在线| 亚洲男人天堂一区| 91国偷自产一区二区三区成为亚洲经典| ...xxx性欧美| 91久久免费观看| 亚洲在线中文字幕| 欧美日韩一区二区欧美激情| 午夜精品久久久久久不卡8050| 欧美日韩视频专区在线播放| 偷偷要91色婷婷| 91精品国产色综合久久不卡蜜臀| 日本视频一区二区三区| 日韩欧美aaaaaa| 国产精品一色哟哟哟| 国产清纯在线一区二区www| 高清av一区二区| 亚洲激情图片qvod| 欧美日韩中文一区| 日韩在线一区二区三区| 欧美一区二区在线免费播放| 久久99国产精品久久99果冻传媒| 精品国产一二三| 丁香婷婷深情五月亚洲| ㊣最新国产の精品bt伙计久久| 日本高清成人免费播放| 日本不卡一区二区| 国产色综合一区| 97精品国产露脸对白| 亚洲一区二区三区在线看| 欧美一区二区三区啪啪| 国产九色sp调教91| 亚洲欧美一区二区久久| 在线观看亚洲一区| 美女一区二区久久| 中文字幕亚洲精品在线观看| 欧美日韩在线播放三区| 国产揄拍国内精品对白| 中文字幕中文乱码欧美一区二区| 91精彩视频在线| 久久国产夜色精品鲁鲁99| 国产精品毛片久久久久久| 欧美色图片你懂的| 国内外成人在线| 一区二区三区四区av| 精品成人佐山爱一区二区| 99视频在线精品| 奇米影视在线99精品| 国产精品国产三级国产三级人妇| 欧美日产国产精品| 粉嫩av亚洲一区二区图片| 亚洲不卡在线观看| 欧美国产日韩a欧美在线观看| 国产乱码一区二区三区| 国产福利一区二区| 亚洲一区二区偷拍精品| 久久日韩粉嫩一区二区三区| 欧美日韩在线直播| 成人黄色片在线观看| 蜜臀av一区二区| 亚洲美女电影在线| 精品国产凹凸成av人网站| 欧洲一区在线电影| 成人av免费在线| 久久爱www久久做| 亚洲一区视频在线| 欧美国产禁国产网站cc| 欧美一二三区在线| 欧美日韩三级视频| 97久久超碰精品国产| 国产乱码一区二区三区|