当前位置: 主页 > Linux安装教程 >

Linux中通过setfacl实现目录下创建文件

时间:2018-10-12 09:19来源:网络整理 作者:Linux先生 举报 点击:
在Linux 系统中,可以通过setfacl 来实现目录下创建文件或子目录,并继承父目录的权限。

在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: rootuser::rwxuser:user1:rwx // 此时user1才能对share有写权限group::r-xmask::rwxother::r-xdefault:user::rwx //默认子目录或文件的权限信息default:user:user1:rwxdefault:group::r-xdefault:mask::rwxdefault: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]# lsroota rootb rootdir1 rootdir2[root@redhat-7 share]# getfacl roota# file: roota# owner: root# group: rootuser::rw-user:user1:rwx #effective:rw-group::r-x #effective:r--mask::rw-other::r--[root@redhat-7 share]# getfacl rootdiragetfacl: rootdira: No such file or directory[root@redhat-7 share]# getfacl rootdirrootdir1/ rootdir2/[root@redhat-7 share]# getfacl rootdir1# file: rootdir1# owner: root# group: rootuser::rwxuser:user1:rwxgroup::r-xmask::rwxother::r-xdefault:user::rwxdefault:user:user1:rwxdefault:group::r-xdefault:mask::rwxdefault: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 .

setfacl实现Linux文件权限继承 http://www.linuxidc.com/Linux/2012-07/65229.htm

------分隔线----------------------------
推荐内容