1. 程式人生 > >預設ACL許可權和遞迴ACL許可權-linux35

預設ACL許可權和遞迴ACL許可權-linux35

上節我們學習的是ACL最大有效許可權和刪除ACL許可權,今天我們繼續學習ACL預設許可權和遞迴ACL許可權
一、遞迴ACL許可權
遞迴的意思在所有程式語言裡都是代表設定了父目錄的同時子目錄或子檔案都同時生效。

1、那麼ACL許可權遞迴同樣道理,就是在設定父目錄ACL許可權時,所有子檔案和子目錄也同時會擁有相同的ACL許可權。
[[email protected] ~]# setfacl -m u:使用者名稱:許可權 -R 目錄名
例如:
我們在/project目錄裡新建兩個使用者,然後我們用
[[email protected] ~]# setfacl -m u:st:rx /project/
這樣來設定這個st使用者對這個目錄的ACL許可權,我們可以檢視目錄裡面的檔案的許可權是不是沒有ACL許可權啊,如圖:


設定acl許可權
也就是我們只給目錄設定了ACL,而裡面的檔案沒有隨著父目錄而改變。

那麼我們按照遞迴的方法來設定這個目錄:
[[email protected] ~]# setfacl -m u:st:rx -R /project/
如圖:
設定遞迴ACL許可權
看,是不是這裡目錄裡面的兩個檔案也都具有了ACL許可權了啊。
二、預設ACL許可權
上面我們利用遞迴的方法設定了/project目錄的ACL許可權后里面的檔案也都跟著具備了ACL許可權。
但是這個時候如果我在目錄裡面再從新建一個檔案,那麼這個檔案是不會有acl許可權的,因為他是在設定了父目錄的acl許可權後才建立的。如圖:
遞迴ACL不作用於新建檔案

那麼這樣一來如果我們每新建一個檔案都需要從新設定一下ACL許可權,這樣豈不是很麻煩,所以就用到了ACL的預設許可權。

預設ACL許可權的作用是如果給父目錄設定了預設ACL許可權,那麼父目錄中所有新建的子檔案都會繼承父目錄的ACL許可權。
設定方法:
[[email protected] ~]# setfacl -m d:u:使用者名稱:許可權 目錄名
這樣就解決了上面的問題。
好的,那麼我們來設定一下:
[[email protected] ~]# setfacl -m d:u:st:rx /project/
然後我們再新建一個檔案看看是不是他也同時具備了ACL許可權。
如圖:
預設ACL許可權和遞迴ACL許可權
但是大家會發現兩個問題:
首先裡面的cde檔案還是沒有ACL許可權,為什麼呢?因為他是在執行ACL預設許可權命令之前設定的,所以沒有起作用,設定預設ACL許可權只對新建的使用者有作用。


其次,我們利用遞迴命令設定的ACL許可權時,子檔案會同時具備父目錄的執行許可權。因為遞迴的作用就是同時給父目錄和子目錄或子檔案同時設定許可權,所以同時給目錄裡的檔案也設定了rx許可權。而設定了預設的ACL許可權後,新建的檔案是不具備執行許可權的。因為任何新建的檔案預設都是不帶執行許可權的。

另外還有一點需要注意,就是這兩個命令都是針對目錄的,是不能給檔案設定的,因為檔案是不具備子檔案的。

本教程原創作者:mageo,出自每集部落格,尊重作者勞動,轉載請註明出處:http://www.ql2015.cn,謝謝!

相關推薦

預設ACL許可權ACL許可權-linux35

上節我們學習的是ACL最大有效許可權和刪除ACL許可權,今天我們繼續學習ACL預設許可權和遞迴ACL許可權一、遞迴ACL許可權遞迴的意思在所有程式語言裡都是代表設定了父目錄的同時子目錄或子檔案都同時生效。 1、那麼ACL許可權遞迴同樣道理,就是在設定父目錄ACL許可權時,

ACL許可權-檢視、設定、最大有效許可權mask、ACL許可權預設ACL許可權與刪除

設定ACL許可權的命令[[email protected]~]#setfacl 選項 檔名選項:-m   設定ACL許可權-x   刪除指定的ACL許可權-b   刪除所有的ACL許可權-d   設定預設ACL許可權-k   刪除預設ACL許可權-R   遞迴設定ACL許可權格式:setfacl -

演算法之 迭代

在計算機程式設計實現中有常常兩種方法: 一為迭代(iterate);二為遞迴(recursion)。 一、概念區分 迭代:利用已知的變數值,根據遞推公式不斷演進得到變數新值得程式設計思想。 遞迴:是指程式呼叫自身的程式設計思想,即一個函式呼叫本身 如果遞迴是自己呼叫

python 學習第二十四天(同步鎖鎖)

同步鎖 給一段程式碼加了同步鎖之後,在這段程式碼執行時只能有一個執行緒執行。 import time import threading def addNum(): global num #在每個執行緒中都獲取這個全域性變數 #num-=1

python 迭代法 實現斐波那契演算法

題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少? 1.程式分析: 兔子的規律為數列1,1,2,3,5,8,13,21…. 由規律可知: f(n) = f(n-1)+f(n-2) 符合斐波那契數

python學習筆記(25) 堆疊實現三級選單

menu = { '北京':{ '海淀':{ '五道口':{}, '上地':{}, '西三旗':{} }, '昌平':{}, '朝陽':{}, '東城':{} }

玩轉資料結構——第四章:連結串列

內容概要: Leetcode中和連結串列相關的問題 測試自己的Leetcode連結串列程式碼 遞迴繼承與遞迴的巨集觀語意 連結串列的天然遞迴結構性質 遞迴執行機制:遞迴的微觀解讀 遞迴演算法的除錯 更多和連結串列相關的問題 1-Leetcode中

漢諾塔問題(棧的實現)

前邊寫的數值轉換是利用棧的先進後出的性質儲存數字的各位數,行編輯是利用棧的只允許在一端進行操作的特性,迷宮問題中棧儲存走過的通道塊,棧還可以輔助遞迴的實現,漢諾塔就是一個典型的例子 漢諾塔問題描述:塔X上的圓盤全部移動到塔Z,且移動過程中,小盤始終位於大盤上方。解決思路就是欲將n個圓盤從X移動到

206. 反轉連結串列 [Leetcode] 206. 反轉連結串列 java 迭代

 一、迭代(https://blog.csdn.net/fx677588/article/details/72357389 ) class Solution { public ListNode reverseList(ListNode head) {

java實現二分查詢演算法,兩種方式實現,非

java實現二分查詢演算法 1、概念 2、前提 3、思想 4、過程 4、複雜度 5、實現方式 1. 非遞迴方式 2. 遞迴方式

佇列、棧遍歷目錄

棧 棧是一種記憶體結構,先進後出,後進先出。python中沒有棧的概念,我們目前只能仿寫。   # 模擬棧結構 stack = [] # 入棧(新增元素) stack.append("A") print(stack) stack.append("B") print(st

排序演算法,查詢的學習

1. 氣泡排序演算法 ## 氣泡排序演算法的中心思想 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 對每一個相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。 針對所有的元素重複以上的步驟,除了最後一個。 4

python全棧開發之匿名函式函式

python全棧開發,匿名函式,遞迴函式 匿名函式 lambda函式也叫匿名函式,即函式沒有具體的名稱。是為了解決一些功能很簡單需求而設計的一句話函式。如下: #這段程式碼defcalc(n):returnn**nprint(calc(10))#換成匿名函式calc =lambdan:n

1.java 基本資料型別、運算子、控制語句、方法

1.基本資料型別   Java是一種強型別語言,每個變數都必須宣告其資料型別。 Java的資料型別可分為兩大類:基本資料型別(primitive data type)和引用資料型別(reference data type)。 Java中定義了3類8種基本資料型別 (1)整

二叉樹遍歷(迴圈

遞迴 1.前序遍歷 void preorder(BinTree *T) { if(T==NULL) return; cout << T->data; preorder(T->left); preorder(T->rig

Java新手:異常

異常 異常是指我們在寫程式碼時出現的編譯或者執行時的錯誤。 異常的體系結構: 1、Throwable是Java語言中所有錯誤或異常的超類,Throwable有兩個子類,Error和Exception,Error是指出現的不能夠處理的嚴重問題,Exception是樂意處理的異常

圓括號運算子,return 語句

呼叫函式時,要使用圓括號運算子。 圓括號之中,可以加入函式的引數。 function add(x, y) { return x + y; } add(1, 1) // 2 函式體內部的return語句,表示返回。JavaScript 引擎遇到return語句,就直接返回return

數學歸納法函式

1.什麼是數學歸納法? 數學歸納法用於證明在自然數上的一些斷言是否成立。 怎麼證明斷言對所有自然數成立? 第一步:證明N=1是成立的 第二步:證明N>1時,如果對於N-1成立,那麼對於N成立 (第二步不是直接證明,而是先假設N-1成立,再利用這個結論證明N是成立的) 例

javascript分別用for迴圈計算不死神兔

function getSum(n) {   var n1 = 1;  //初始化兩個月的兔子個數   var n2 = 1;   var sum = 1;  //定義一個累加和 ,如果傳遞的是1或者2,預設值為1   for(var i = 3; i <= n; i++) {   sum =

19.Java語言File類呼叫

File類 Java.io.File(類):表示磁碟上的一個檔案或者目錄,可以獲取檔案或目錄的一些屬性,檔案和目錄的建立、查詢和刪除等操作 構造方法: 1.public File(String pathname) :通過將給定的路徑名字串轉換為抽象路徑名來建立新的 Fi