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

当前位置 :| 主页>Linux教程>Linux入门>

Linux ACL 精华

来源: 作者: 时间:2008-11-15 Tag: 点击:
1. 为什么要使用ACL

先让我们来简单地复习一下Linux的file permission.

在linux下,对一个文件(或者资源)可以进行操作的对象被分为三类: file owner(文件的拥有者), group(组,注意不一定是文件拥有者所在的组), other (其他)
而对于每一类别又分别定义了read, write and execute/search permission (这里不讨论SUID, SGID以及Sticky bit的设置)

通过ls -l命令就我们就可以列出一个文件的permission

代码:
# ls -l
[leonard@localhost ~]$ ls -l
-rw-rw---- 1 leonard admin 0 Jul 3 20:12 test.txt

在这里说明了对于test.txt这个文件leonard用户(由于是file owner)拥有read & write permission. 所有属于admin group的用户(group)拥有read & write permission. 其他任何用户(other)对于文件没有任何的permission

如果我们现在希望john这个用户也可以对test.txt文件进行读写操作. 我自己大概会想到以下几种办法 (这里假设john不属于admin group)

1. 给文件的other类别增加read and write permission. 这样由于john会被归为other类别,那么他也将拥有读写的权限
2. 将john加入到admin group. 那么john会被归为group类别,那么他将拥有读写的权限
3. 设置sudo, 使john能够以leonard的身份对test.txt进行操作,从而获得读写权限

第一种做法的问题在于所有用户都将对test.txt拥有读写操作,显然这种做法不可取
第二种做法的问题在于john被赋予了过多的权限.所有属于admin组的文件,john都可以拥有其等同的权限了
第三种做法虽然可以达到只限定john用户一人拥有对test.txt文件的读写权限.但是需要对sudoers文件进行严格的格式控制. 而且当文件数量和用户很多的时候,这种方法就相当地不灵活了

看来好像都没有一个很好的解决方案. 其实问题就出在Linux file permission里面,对于other的定义过于广泛,以至于很难把permission限定于一个不属于file owner和group的用户身上. 那么Access Control List (ACL)就是用来帮助我们解决这个问题的.

简单地来说ACL就是可以设置特定用户或者用户组对于一个文件的操作权限. 需要掌握的命令也只有三个: getfacl, setfacl, chacl

在接下去讨论之前大家可以先安装上ACL的RPM包
代码:
# rpm -ivh libacl-2.2.39-1.1 acl-2.2.39-1.1.i386.rpm



相关文章:
linux U盘启动盘制作
Linux设置启动程序
free -m
多核技术与并发多线程技术介绍
理解Linux的性能
section.2 booting and shutting down 引导与关机
Linux — 目录的读权限与执行权限
Linux — 硬链接与符号链接
Linux裸设备总结
linux系统文件综述
Linux下硬盘数据恢复与分区表恢复
./configure命令常用选项详解
浅谈如何学习linux
grub双系统启动顺序更改
Linux 下实现远程开机
Linux系统清除Grub的几种方法
AIX如何才能看出网线是否插好?
vxvm 逻辑卷管理中遇到的问题
linux系统文件认识
Linux守护进程列表
关于/dev/null
FreeBSD学习笔记
Linux简明教程
linux任重道远
在Linux里设置环境变量的方法(export PATH)
关于.bashrc和.vimrc不能自动被执行的问题
linux优秀网站列表
关于swap,虚拟内存和page的区别
Linux系统下系统目录详解
Cooperative Linux