文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>ACL权限设置

ACL权限设置

时间:2010-09-18  来源:cup

Acl(access control list):提供传统的owner,group,other的read,write,excute权限之外进行细部权限设置。Acl可以针对单一用户,单一文件或单一目录进行r、w、x的权限设置,对于需要特殊权限设置的用户、文件、目录十分有用。

Acl可以针对用户、群组、默认属性进行权限设置:

用户:可以针对单一用户进行权限设置

群组:可以针对某一群组进行权限设置

默认属性(umask):在目录下建立文件/目录时,可以使用设置的默认权限

在使用ACL之前先要启动ACL。如下所示:

[root@localhost ~]# mount -o remount,acl /dev/sda4

[root@localhost ~]# mount |grep /dev/sda4

/dev/sda4 on /mnt/sda4 type ext3 (rw,acl)

如果想设置为开机自动开启ACL,修改/etc/fstab即可。

[root@localhost ~]# cat /etc/fstab

……………………………………………………………………………………

/dev/sda4 /mnt/sda4 ext3 defaults,acl 0 3

重启之后,自动加载的分区就支持acl设置了。

Setfacl –m:设置一个acl权限

Setfacl –d:取消一个acl权限

Setfacl –b:取消全部的acl权限

Setfacl –d:设置默认的acl权限,仅针对目录有效

接下来举例说明权限的应用

在新建的分区/dev/sda4中创建一个目录a,将其分配给test用户(即目录a的拥有者为test),用户small属于small用户组,用户small需要拥有目录a的r、w权限;用户sky属于sky用户组,用户sky需要拥有目录a的r权限。

分析:按照上述要求,可以看出用户small和sky不属于test用户组,但需要拥有对目录a的不同权限,没有acl之前,需要将其加入到test中,但是针对这两个用户的权限不同又无法设置。

[root@localhost ~]# cd /mnt/sda4

[root@localhost sda4]# mkdir a

[root@localhost sda4]# ls –l

总计 20

drwxr-xr-x 2 root root 4096 09-18 11:54 a

drwx------ 2 root root 16384 09-17 22:39 lost+found

[root@localhost sda4]# chmod 770 a

[root@localhost sda4]# chown test.test a        #设置权限,并将目录a分配给用户test

[root@localhost sda4]# ls –l

总计 20

drwxrwx--- 2 test test 4096 09-18 11:54 a

drwx------ 2 root root 16384 09-17 22:39 lost+found

[root@localhost sda4]# setfacl -m u:small:rw a         #设置其他组用户small对目录a有读写权限

[root@localhost sda4]# setfacl -m u:sky:r a         #设置其他组用户sky对目录a有读权限

[root@localhost sda4]# getfacl a                    #取得/查看某个文件/目录的权限

# file: a                                        前三行显示此文件的传统权限

# owner: test

# group: test

user::rwx                                        #此处显示针对"默认用户"的权限设置

user:small:rw-                                    #此处显示针对用户small的权限设置

user:sky:r--                                    #此处显示针对用户sky的权限设置

group::rwx                                    #此处显示针对"默认用户组"的权限设置

mask::rwx                                    #此处显示此文件的默认权限

other::---                                        #此处显示针对其他用户的权限设置

 

[root@localhost sda4]# setfacl -m g:test:rw a

[root@localhost sda4]# getfacl a

# file: a

# owner: test

# group: test

user::rwx

user:small:rw-

user:sky:r--

group::rwx

group:test:rw-                                    #此处显示对用户组的权限位rw

mask::rwx

other::---

[root@localhost sda4]# setfacl -m m:rx a            #对整个目录的下的文件进行设置,之后原先设置的ACL权限都要与这个权限相与,得到其有效权限

[root@localhost sda4]# getfacl a

# file: a

# owner: test

# group: test

user::rwx

user:small:rw- #effective:r—

small之前具有rw权限,设置默认权限rx之后取消了w权限,两个权限比较后的权限为r--,所以small的有效权限为r--

user:sky:r--

group::rwx #effective:r-x

mask::r-x                         #此处显示默认权限修改为r-w

other::---

注意:使用chmod改变文件权限时相应的ACL也会改变,同理改变ACL值,相应的文件权限也会改变

[root@localhost sda4]# ls -l

总计 24

drwxr-x---+ 3 test test 4096 09-18 14:11 a

drwx------ 2 root root 16384 09-17 22:39 lost+found

如果ls –l之后发现权限位后有"+"表示该文件a设置了ACL

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载