登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

梦想之鹰的天空

天高任鸟飞......放飞....心情..........放飞.....梦想

 
 
 

日志

 
 

巧用Linux2.6内核新功能配置文件ACL  

2008-06-05 09:52:23|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

如果使用过Unix,就不会对ACL(Access Control List,访问控制列表)感到陌生。在Linux 2.4内核中。ACL作为补丁存在,而在2.6新内核中,它已经是标准内核的一部分了。

传统Unix的ACL,只能对文件设定用户、组和其他人的权限,也就是我们常用的755、644之类的权限。如果想为一个文件交叉定义若干个不同组的用户访问权限,比如说tom、mary、tony、tod分别属于不同的组,某一文件想让mary和tony只读,tom和tod可写,其他用户不可访问。这种要求用传统的Unix ACL是无法实现的。

Linux 2.6内核中的ACL正是为应付类似的需求所设计的。它可以方便地为文件配置任意用户和组的访问权限。

要想使用ACL功能,首先需要正确编译2.6内核,并确保有下列选项:

CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y  

用新内核启动后,还要求在挂载分区的时候添加必要的参数“acl”。

mount -t ext3 -o rw,acl /dev/hda8 /your_mount_point 

或在 /etc/fstab 中加入下列行,实现自动mount分区并且带有“acl”参数。

/dev/hda8 ext3 /your_mount_point defaults,acl 1 1 

正确挂载文件系统后,就可以使用ACL的命令来修改文件的ACL属性了。修改ACL属性的命令有setfacl、getfacl 和chacl,其中chacl是一个SGI IRIX兼容命令,主要适用于那些对SGI IRIX以及XFS文件系统比较熟悉的用户。本文只介绍setfacl和getfacl命令,具体用法如下面的例子:

1.使文件1.txt可以被用户test读写

setfacl -m u:test:rw 1.txt 

2.使文件1.txt可以被qmail组的组员读,但不能写

setfacl -m g:qmail:r 1.txt 

3.把某一文件的ACL属性copy给另一文件

比如把文件1.txt的ACL属性copy给2.txt:

getfacl 1.txt | setfacl -set-file=- 2.txt 

4.同时为文件设置不同用户或组的权限

比如对文件2.txt设定testmail用户可读写,qmail组组员可读可执行,nofiles 组组员可执行:

setfacl -m u:testmail:rw,g:qmail:rx,g:nofiles:x 2.txt
ip access-group outbound out   

查看man page可获得setfact和getfacl命令更详细的用法。

在系统管理员的工作中,遇到的最大的困难往往不是高难度的内核问题,也不是配置Apache服务器之类的问题,而是控制文件访问权限的问题。主管领导常常会提出非常特别的要求,权限配置经常具体到人,这在配置文件服务器Samba时非常难于实现,使用2.6内核中的ACL(访问控制列表)新功能,问题就会迎刃而解。

  评论这张
 
阅读(495)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018