热门关键字:  ubuntu  分区  Fedora  linux系统进程  函数

当前位置 :| 主页>Linux教程>内核研究>

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

来源: 作者: 时间:2007-06-13 Tag: 点击:

如果使用过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=yCONFIG_EXT3_FS_POSIX_ACL=yCONFIG_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

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

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



相关文章:
精通initramfs构建step by step
Linux利用kexec迅速切换内核
进程上下文VS中断上下文
内核通知链 学习笔记
linux spi子系统驱动分析
menuconfig 配置选项
《Linux操作系统内核实习》之练习一
udev详解
什么叫微内核,宏内核?
Linux 信号signal处理机制
开发简单的 Linux2.6 内核模块
删除内核的perl脚本
Linux2.6内核usb gadget驱动移植
GCC hacks in the Linux kernel
iomem
kernel学习的想法
让自己的驱动支持udev
linux内核编译步骤
内核的等待队列
Linux内核wait_queue深入分析
升级和删除内核
SD卡驱动分析2
Linux Kernel VDSO本地权限提升漏洞
内核中的TCP的追踪分析-15-TCP(IPV4)的客户端与
linux 2.6内核可加载模块的编译
内核模块HelloWorld
在环回接口上发送一个数据报
ARP初始化
1分钟编译FreeBSD内核
linux设备模型之uart驱动架构分析