仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 579|回复: 8
打印 上一主题 下一主题

[CentOS(社区)] 给大家带来CentOS下ACL(会见把持列表)先容

[复制链接]
不帅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:17:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
欢迎大家来到仓酷云论坛!我们晓得,在Linux操纵体系中,传统的权限办理分是以三种身份(属主、属M和别的人)搭配三种权限(可读、可写和可实行),而且搭配三种特别权限(SUID,SGID,SBIT),来完成对体系的宁静回护。可是,跟着营业和需求的开展和扩展,唯一的这类形式已不克不及满意以后庞大情况下的权限把持需求。
好比,以后有一个/data目次,如今必要AM成员可以可写,BM成员仅读,CM成员可读可写可实行,此时怎样办呢?
关于以上的需求,仅仅依托现有的传统权限办理形式,是没法完成的。为懂得决该范例的成绩,Linux开辟出了一套新的文件体系权限办理***,叫做文件会见把持列表ACL(AccessControlLists)。经由过程利用ACL,能够完善办理如上范例的需求成绩。
那末上去来看,甚么是会见把持列表?

甚么是ACL

ACL是AccessControlList的缩写,次要目标是针对在传统的三种身份和三种权限以外,供应加倍细化的部分权限设定。官方手册来说,它次要针对用户、用户组、和掩码方面把持权限。
复杂往了解就是,ACL能够针对单个用户、单个用户组来举行权限细化的把持。
而在windows体系上,没有这个ACL,ACL是类Unix(Unix-like)操纵体系权限的分外撑持项目,因而要利用ACL必需要有文件体系的撑持才行。次要包含ReiserFS,EXT2/EXT3/ext4,JFS,XFS等文件体系。

文件体系是不是撑持ACL

必要注重的是,因为ACL是必需依托文件体系的,因而并非每一个文件体系都撑持ACL。好比我们win平台的NTFS文件体系,FAT32文件体系是不撑持ACL的。在Linux平台上,罕见的撑持ACL的文件爱你体系有以下几类,如EXT2/EXT3/ext4,JFS,XFS等等。
那末,怎样检察你的体系是不是撑持ACL呢?
我们能够经由过程以下操纵来检察:
[root@lh~]#tune2fs-l/dev/vda1|grepoptions
Defaultmountoptions:user_xattracl
[root@lh~]#dumpe2fs/dev/vda1|grepoptions
dumpe2fs1.41.12(17-May-2010)
Defaultmountoptions:user_xattracl



以上两条下令任选一个便可!
假如在输入的信息,默许挂载选项中有acl这个标识,就代表你的文件体系是撑持的。
假定,你的文件体系不撑持大概撑持可是并没有显现这个acl标识怎样办呢?针对此种情形,我们能够经由过程利用tune2fs来为他增加,大概mount往增加都能够。
[root@lh~]#tune2fs-oacl/dev/vda1
tune2fs1.41.12(17-May-2010)




ACL相干下令详解
先容完了ACL是甚么,也说了怎样使文件体系撑持ACL的功效,上面就来讲说怎样操纵。
ACL的相干的操纵次要有3个下令,分离是getface、setfacl和chacl,经常使用的次要是getfacl和setfacl。
getfacl检察文件/目次的ACL设定内容
setfacl设置文件/目次的ACL内容
chacl检察和变动文件/目次的ACL内容,因为一样平常有setfacl,因而chacl历来不必,故本文不作先容



getfacl一样平常都是间接在前面跟你所要检察的文件大概目次的路径,因而把握怎样检察便可。操纵以下:
[root@lh~]#getfacl/tmp
getfacl:Removingleading/fromabsolutepathnames
#file:tmp
#owner:root
#group:root
#flags:--t
user::rwx
group::rwx
other::rwx
[root@lh~]#getfacl/etc/passwd
getfacl:Removingleading/fromabsolutepathnames
#file:etc/passwd
#owner:root
#group:root
user::rw-
group::r--
other::r--




setfacl是利用最多的,基础ACL方面的操纵都是它,因而它的选项也是蛮多的。起首来setfacl的利用语法:
setfacl[-bkRd][{-m|-x}acl参数]文件/目次路径
选项先容:
-b:删除一切的acl参数
-k:删除预设的acl参数
-R:递回设置前面的acl参数
-d:设置预设的acl参数(只对目次无效,在该目次新建的文件也会利用此ACL默许值)
-m:设置(修正)前面acl参数
-x:删除前面指定的acl参数




ACL参数次要由3局部构成,构成布局以下:
三种身份:对应身份名:三种权限
[u|g|o]:[用户名|用户组名]:[rwx]





实例实习
上面来看几个实例,来了解进修ACL的操纵:
如今在/mnt目次,有文件test和目次dir,它们的权限都是600,属主和属M都是root。
[root@lhmnt]#touchtest
[root@lhmnt]#mkdirdir
[root@lhmnt]#chmod600test
[root@lhmnt]#chmod600dir
[root@lhmnt]#ll
total4
drw-------.2rootroot4096Jul417:56dir
-rw-------.1rootroot0Jul417:56test




如今请求完成以下请求:
1、为文件test增添acl权限,使sunsky用户能够可读可写
[root@lhmnt]#setfacl-mu:sunsky:rwtest
[root@lhmnt]#getfacltest
#file:test
#owner:root
#group:root
user::rw-
user:sunsky:rw-
group::---
mask::rw-
other::---
[root@lhmnt]#su-sunsky#切换到sunsky用户下,举行测试
WellcometoLinuxWorld
[sunsky@lh~]$echo1>>/mnt/test#很分明能写进数据
[sunsky@lh~]$cat/mnt/test1




2、为文件test增添acl权限,使sunM的一切用户都能读该文件
[root@lhmnt]#setfacl-mg:sun:rtest
[root@lhmnt]#getfacltest
#file:test
#owner:root
#group:root
user::rw-
user:sunsky:rw-
group::---
group:sun:r--
mask::rw-
other::---

[root@lhmnt]#su-sun
WellcometoLinuxWorld
[sun@lh~]$cat/mnt/test#很分明能检察test文件的内容
1
[sun@lh~]$echo2>>/mnt/test#因为我们没有给sunM成员变动权限,因而不克不及变动
-bash:/mnt/test:Permissiondenied




3、为目次dir增添acl权限,使sunM的一切用户都可以对该目次可读可写可实行
[root@lhmnt]#setfacl-mg:sun:rwdir
[root@lhmnt]#getfacldir
#file:dir
#owner:root
#group:root
user::rw-
group::---
group:sun:rwx
mask::rwx
other::---

[root@lhmnt]#su-sun#切换到sun用户下,举行测试
[sun@lh~]$echo"date">>/mnt/dir/date.sh
[sun@lh~]$bash/mnt/dir/date.sh
FriJul418:01:48CST2014




4、删除文件test上,关于sunM的acl权限
[root@lhmnt]#setfacl-xg:suntest
[root@lhmnt]#getfacltest
#file:test
#owner:root
#group:root
user::rw-
user:sunsky:rw-
group::---
mask::rw-
other::---




5、删除目次dir的一切ACL权限
[root@lhmnt]#setfacl-bdir
[root@lhmnt]#getfacldir
#file:dir
#owner:root
#group:root
user::rw-
group::---
other::---




6、为目次dir增添默许ACL权限,使dir目次下新创立的文件或目次,都默许具有sunsky用户可读可写可实行
[root@lhmnt]#setfacl-md:u:sunsky:rwxdir
[root@lhmnt]#getfacldir
#file:dir
#owner:root
#group:root
user::rw-
group::---
other::---
default:user::rw-
default:user:sunsky:rwx
default:group::---
default:mask::rwx
default:other::---
[root@lhmnt]#touch/mnt/dir/sunsky
[root@lhmnt]#getfacl/mnt/dir/sunsky
getfacl:Removingleading/fromabsolutepathnames
#file:mnt/dir/sunsky
#owner:root
#group:root
user::rw-
user:sunsky:rwx#effective:rw-
group::---
mask::rw-
other::---



在第六题中,我们发明,在user:sunsky:rwx前面多了一个#effective:rw-,这是为何呢?我们在切换到sunsky用户下,看看它是不是有实行该文件的权限!
[root@lhmnt]#su-sunsky
WellcometoLinuxWorld
[sunsky@lh~]$bash/mnt/dir/sunsky
bash:/mnt/dir/sunsky:Permissiondenied



很分明,只管我们利用setfacl给了sunsky对dir目次下默许重生成的文件可读可写可实行的权限,可是仍旧是没有实行权限的。这是为何呢?
我们发明多了输入#effective:rw-,它是因为甚么出来的呢?
effective失效的为rw,他是受我们输入中的mask影响的。可是我们发明,我们并没有设置过mask啊,为啥他默许酿成rw了。这里我就来先容一下mask!
mask的感化是为了用来限定除属主和其别人之外的一切用户或组的权限,mask权限为这些用户他们大概具有的最高权限。
假如碰到设置的用户权限与mask权限抵触,则用户的权限为
#effective权限
那末,一旦一个文件被设置了ACL,其文件原属组局部的权限将变成MASK权限,而并不是本来的属组权限。假如其文件本来属M权限为空,那末当你设置了mask权限以后,你的属M权限也响应改动为其mask对应的权限。
上面,我们就持续举行第六题的实行!
[root@lhmnt]#setfacl-mm::rwx/mnt/dir/
[root@lhmnt]#getfacl/mnt/dir/
getfacl:Removingleading/fromabsolutepathnames
#file:mnt/dir/#owner:root
#group:root
user::rw-
group::---
mask::rwx
other::---
default:user::rw-
default:user:sunsky:rwx
default:group::---
default:mask::rwx
default:other::---

[root@lhmnt]#su-sunsky
WellcometoLinuxWorld
[sunsky@lh~]$bash/mnt/dir/sunsky
bash:/mnt/dir/sunsky:Permissiondenied




奇异了,为何我已变动了mask为rwx了,而且effective也不再呈现了,为什么如今sunsky仍旧拿不到实行权限呢?
我们如今往看下/mnt/dir/sunsky文件的ACL权限吧。
[root@lhmnt]#getfacl/mnt/dir/sunsky
getfacl:Removingleading/fromabsolutepathnames
#file:mnt/dir/sunsky
#owner:root
#group:root
user::rw-
user:sunsky:rwx#effective:rw-
group::---
mask::rw-
other::---



经由过程检察我们发明,/mnt/dir/sunsky文件中,关于sunsky的acl权限设置居然仍是#effective:rw-,这是为何呢?
本来,我们方才修正/mnt/dir的mask仅仅只针对/mnt/dir目次下重生成的文件无效,而且因为文件在创立时,遭到传统权限的umask值的影响,已具有了属M的权限,以是就使得ACL的mask设置生效。因而,此时我们经由过程利用下面提到的-R递回选项,将/mnt/dir目次下的一切文件从头修正一次ACL的mask权限,就可以办理该成绩!
[root@lhmnt]#su-sunsky
WellcometoLinuxWorld
[sunsky@lh~]$echodate>/mnt/dir/sunsky
[sunsky@lh~]$bash/mnt/dir/sunsky
FriJul418:32:11CST2014



以上就是setfacl的一样平常办理的一切操纵了!信任只需人人将以上的操纵把握,今后只需用到ACL的中央就不会困顿了。
欢迎大家来到仓酷云论坛!
小妖女 该用户已被删除
沙发
发表于 2015-1-15 12:34:00 | 只看该作者

给大家带来CentOS下ACL(会见把持列表)先容

板凳
发表于 2015-1-18 13:43:56 | 只看该作者
其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
变相怪杰 该用户已被删除
地板
发表于 2015-1-27 09:52:11 | 只看该作者
熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。
小妖女 该用户已被删除
5#
发表于 2015-2-5 14:10:00 | 只看该作者
感谢老师和同学们在学习上对我的帮助。
第二个灵魂 该用户已被删除
6#
发表于 2015-2-12 05:01:29 | 只看该作者
另外Linux上也有很多的应用软件,安装运行了这些软件后,你就可以在Linux上编辑文档、图?片,玩游戏、上网、播放多媒体文件等。
若天明 该用户已被删除
7#
发表于 2015-3-11 10:17:54 | 只看该作者
即便是非英语国家的人发布技术文档,Linux也都首先翻译成英语在国际学术杂志和网络上发表。
小女巫 该用户已被删除
8#
发表于 2015-3-18 12:55:41 | 只看该作者
熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。
不帅 该用户已被删除
9#
 楼主| 发表于 2015-3-26 09:33:11 | 只看该作者
其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-14 12:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表