Linux中通過setfacl實現目錄下建立檔案

2021-06-27 04:18:46 字數 3353 閱讀 9841

在linux 系統中,可以通過setfacl 來實現目錄下建立檔案或子目錄,並繼承父目錄的許可權。

下面以 root 用普通使用者 user1 .在目錄/mnt下

[root@redhat-7 mnt]# setfacl -m u:user1:rwx share        //為目錄新增ower = user1 ,並賦予rwx 的權根。

[root@redhat-7 mnt]# setfacl -d -m  u:user1:rwx share    //為目錄新增預設的acl許可權,此目錄下建立目錄和檔案都會繼承此許可權資訊

[root@redhat-7 mnt]#

[root@redhat-7 mnt]#

[root@redhat-7 mnt]# getfacl share        //檢視share的facl資訊

# file: share

# owner: root

# group: root

user::rwx

user:user1:rwx                            // 此時user1才能對share有寫許可權

group::r-x

mask::rwx

other::r-x

default:user::rwx                        //預設子目錄或檔案的許可權資訊

default:user:user1:rwx

default:group::r-x

default:mask::rwx

default:other::r-x

[root@redhat-7 mnt]# cd share/

[root@redhat-7 share]# ls

[root@redhat-7 share]# touch roota

[root@redhat-7 share]# touch rootb

[root@redhat-7 share]# mkdir rootdir1

[root@redhat-7 share]# mkdir rootdir2

[root@redhat-7 share]# ls

roota  rootb  rootdir1  rootdir2

[root@redhat-7 share]# getfacl roota

# file: roota

# owner: root

# group: root

user::rw-

user:user1:rwx                  #effective:rw-

group::r-x                      #effective:r--

mask::rw-

other::r--

[root@redhat-7 share]# getfacl rootdira

getfacl: rootdira: no such file or directory

[root@redhat-7 share]# getfacl rootdir

rootdir1/ rootdir2/

[root@redhat-7 share]# getfacl rootdir1

# file: rootdir1

# owner: root

# group: root

user::rwx

user:user1:rwx

group::r-x

mask::rwx

other::r-x

default:user::rwx

default:user:user1:rwx

default:group::r-x

default:mask::rwx

default:other::r-x

[root@redhat-7 share]#

現在用user1 進入此目錄來檢測許可權:

[user1@redhat-7 share]$

[user1@redhat-7 share]$

[user1@redhat-7 share]$

[user1@redhat-7 share]$ ll

total 8

-rw-rw-r--+ 1 root root 0 nov 19 22:52 roota

-rw-rw-r--+ 1 root root 0 nov 19 22:52 rootb

drwxrwxr-x+ 2 root root 6 nov 19 22:52 rootdir1

drwxrwxr-x+ 2 root root 6 nov 19 22:52 rootdir2

[user1@redhat-7 share]$ touch user1a

[user1@redhat-7 share]$ touch user1dir1

[user1@redhat-7 share]$ getfacl user1a        //檢視新檔案的許可權

# file: user1a

# owner: user1

# group: user1

user::rw-

user:user1:rwx                  #effective:rw-

group::r-x                      #effective:r--

mask::rw-

other::r--

[user1@redhat-7 share]$ rm roota        //嘗試刪除root建立的檔案,成功

[user1@redhat-7 share]$ rm rootdir1    //嘗試刪除root建立的目錄,成功

rm: cannot remove arootdir1a: is a directory

[user1@redhat-7 share]$ rm rootdir1 -r

[user1@redhat-7 share]$ ll

total 4

-rw-rw-r--+ 1 root  root  0 nov 19 22:52 rootb

drwxrwxr-x+ 2 root  root  6 nov 19 22:52 rootdir2

-rw-rw-r--+ 1 user1 user1 0 nov 19 22:57 user1a

-rw-rw-r--+ 1 user1 user1 0 nov 19 22:57 user1dir1

[user1@redhat-7 share]$

所以,當有需求要做權根的繼承操作時,可以使用這個方來實現。

在新的rhel7 中, 會有新的工具chacl 類似於 setfacl .

ssh配置檔案詳解

linux檔案系統路徑學習

linux資料夾許可權建立方法

Linux 下 setfacl訪問控制的使用

setfacl m u bill x bin bash 給於使用者 bill 有執行的許可權 setfacl m u bill bin bash 給於使用者 bill 沒有執行的許可權 setfacl b bin bash 清楚所有的acl規則 b,remove all 刪除所有擴充套件的acl規則...

linux中通過VNC建立weblogic域

最近更新列表 1.ibm的aix中安裝jdk 7月21更新 2.linux centos 中安裝jdk 7月21更新 3.linux centos 安裝weblogic 7月22更新 4.aix系統中安裝weblogic 7月22更新 5.ibm實體機aix中建立weblogic域 7月23更新 6...

Linux中通過 dev mem操控實體地址

dev mem是物理記憶體的全映像,可以用來訪問物理記憶體,用mmap來訪問物理記憶體以及外設的io資源,是實現使用者空間驅動的一種方法 我們先用hexedit來看下 dev mem,hexedit dev mem 可以物理記憶體的資訊,當然肉眼是無法看的畢竟是16進製制。00000000 53 f...