QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5331|回复: 11

关于访问控制列表

[复制链接]
发表于 2003-4-11 10:02:28 | 显示全部楼层 |阅读模式
[quote:02d7c2d6bc="访问控制列表"]
传统UNIX系统的访问控制方法是非常简单的,它把用户分成三类:文件的拥有者、组成员和其他用户。很显然,这种访问控制模型过于简陋了。随着对Linux系统安全性要求的提高,需要一种更细粒度的访问控制模型来代替传统UNIX系统的访问控制模型。使用ACL(Access Control List,访问控制列表)系统,系统管理员能够为每个用户(包括root用户在内)对文件和目录的访问提供更好的访问控制。在POSIX中定义了一种访问控制叫做POSIX ACL,可以实现基于单独用户的控制,目前的大多数Linux访问控制工程都是以此为基础。

[/quote]

相关链接:
一、Extended attributes and access control lists
http://acl.bestbits.at
http://acl.bestbits.at/about-acl.html

二、Linux Trustees ACL project
http://trustees.sourceforge.net/

三、ea/acl访问控制系统介绍
http://www.linuxaid.com.cn/articles/7/9/794686264.shtml

四、Grsecurity ACL系统(一)
http://www.chinalinuxpub.com/read.htm?id=1261
http://linuxaid.com.cn/articles/1/1/118781745.shtml

附:
[quote:02d7c2d6bc="Red Hat Linux 9 发行注记"]
特殊备注:在前两个公开 beta 发行版本中添加到内核的ACL 支持被证明尚不稳定,并导致了内核退化。因此,Red Hat在 Red Hat Linux 9 中将 ACL 支持从内核中删除了。内核工程师将会继续致力于提供 ACL 支持的工作,它将会在未来的发行版本中提供。为方便那些希望测试 ACL 的用户和开发者,ACL 支持所需的 attr 和 acl 软件包仍被包括了。若未来的测试演示了 ACL 支持质量有显著提高,Red Hat 可能会自行决定通过升级方式为本次发行的Red Hat Linux 提供 ACL 支持。[/quote]

[quote:02d7c2d6bc="Red Hat Linux 8.0.94 发行注记"]
#

用于 ext3 的 EA(扩展属性)和 ACL(访问控制列表)

Red Hat Linux 8.0.94 包含为 ext3 文件系统提供 EA 和 ACL 支持的内核。它根据的补丁和用户级别工具来自:

http://acl.bestbits.at/

为了在文件系统上启用 ACL,这个文件系统必须使用 -o acl 挂载选项来被挂载。

从本质上讲,EA 用于 ACL 支持。为了要分开使用 EA,文件系统必须使用 -o user_xattr 挂载选项被挂载。

对它的支持分散在几个软件包中:

- kernel — 提供在磁盘上为 ext3 文件系统贮存 EA 和 ACL 的支持,以及对操作 EA 和 ACL 的系统调用的支持。内核软件包终于提供了强化文件访问上的 ACL 的机制。

- e2fsprogs — 包括了对新添的在磁盘上的扩展属性格式的知识,因此 fsck 能够使用新特性来检查文件系统。

- attr, libattr — 提供对文件附属的扩展属性的访问。

- acl, libacl — 提供设置、修改、和查询文件上 ACL 设置的工具。

- libattr-devel, libacl-devel — 使用 acl 和 attr 库来建构文件所需的库和包含文件。

- star — 一种归档工具。它可以创建和拆开tar 和 pax 格式的归档,还可以备份并恢复 EA 和 ACL。

- samba — 在本次发行版本中,Samba 能够导出 ACL 功能。关于如何在你的配置中启用这项功能的信息,请参阅 samba 的文档。

除此之外,coreutils 软件包已被更新。因此 cp 和 mv 命令将会复制文件附属的 ACL 和 EA。

关于设置和读取 ACL 的更多信息,请参阅 setfacl 和 getfacl 的说明书(man)页。关于ACL 的常规信息可以在 acl 的说明书(man)页找到。你还可以在前面提到的 bestbits 网站上找到更多关于 EA 和 ACL 的常规信息。

注意:普通的 tar 和 dump 命令不能备份 ACL 和 EA。

与较老系统的兼容性:

没有设置 ACL 或 EA 的任何 ext3 文件系统在较老的内核上将与从前的运行方式相同,并可以使用较老的 e2fsprogs 工具来检查。

一旦某个在任一给定文件系统上的文件被设置了 EA 或 ACL,那个文件系统将会得到 ext_attr 属性。你可以看到该属性使用以下命令:

tune2fs -l <filesystemdevice>

已得到 ext_attr 属性的文件系统可以使用老内核来挂载,但是很明显,那些内核将不会强制对已被设置的 ACL 的使用。

注意:文件系统检查程序 e2fsck 的较老版本将会拒绝检查这样的文件系统。
[/quote]

[quote:02d7c2d6bc="Red Hat Linux 7.3.93 发行注记"]
该 beta 版本包括为 ext3 文件系统提供 EA 和 ACL 支持 的内核,它以 http://acl.bestbits.at/ 中的补丁和用户级别工具为 基础。

对 EA 和 ACL 的支持包括在几个软件包中:


      kernel — 提供对在 ext3 文件 系统磁盘上贮存 EA 和 ACL 的支持;提供操作 EA 和ACL 的系统 调用程序;提供在文件访问上实施 ACL 的机制。


      e2fsprogs — 包括新添的 on-disk 扩展属性格式的知识,因此 fsck 可以使用这项新功能来检查 文件系统。


      attr — 提供到连接在 libattr 文件 的扩展属性的访问。


      acl — 提供设置、修改和查询文件上 的 ACLs libacl 集合的工具


      libattr-devel — 使用 libacl-devel、acl、 和 attr 库来建构程序所需的库和标头文件。


      star — 可以创建和解包以 .tar 和 .pax 格式归档的归档工具,它们可以备份并 恢复 EA 和 ACL。


      samba — samba 软件包带有 ACL 支持。在 Samba 中配置 ACL 支持的选项 有许多种,你需要阅读 Samba 文档来利用这项功能。


      另外,fileutils 软件包已被更新, 因此,cp 和 mv 可以复制与文件相关的 ACL 和 EA。

参阅 setfacl 和 getfacl 的说明书页(在 shell 提示下键入 man setfacl 和 man getfacl 来阅读)可获取设置和读取 ACL 的信息。 在 shell 提示下键入 man 5 acl 来阅读关于 ACL 的 常规信息。你还可以在前面提到的 bestbits 网站中找到关于 EA 和 ACL 的 一般信息。

注记:普通的 tar 和 dump 命令将 不会 备份 ACL 和 EA。

和老系统的兼容性:

任何没有 ACL 或 EA 的 ext3 文件系统会在老内核 上照常运行,可以使用旧有的 e2fsprogs 工具来检查。

一旦 EA 或 ACL 被设置在给定文件系统上的任何一个文件 上,该文件系统将会有 ext_attr 属性,你可以使用“tune2fs -l” 在文件系统设备上看到。这样的文件系统可以使用老版本 的内核挂载,但是这些老内核将不会实施任何已设置的 ACL。 可是,老版本的 e2fsprogs 中的 e2fsck 将会拒绝检查这样的文件系统。
[/quote]
 楼主| 发表于 2003-4-11 10:28:31 | 显示全部楼层
Samba(need re-compile)+XFS Filesystem(need patck), Samba将允许像 NT 的 ACL(访问控制列表)那样的 Windows 文件共享。

参考:

一、

http://www-900.ibm.com/developerWorks/cn/linux/server/samba/samba2.2/index.shtml

[quote:a1479cc307="Samba 2.2 内幕"]
ACL 支持
Samba 2.2 另一个不可思议的绝妙特性是对访问控制表 (ACL) 的新支持。你们当中许多人都知道,Windows NT 和 2000 使用 ACL 来设置对文件和目录的许可权,与大多数 UNIX 系统所使用的传统“一个用户一个组”的解决方案相比,它们提供的对许可权的控制更为细密。以前,Samba 没有办法直接将 ACL 存储在文件系统上,因为那时还没有可用的 Linux 的 ACL 支持。 但现在,我们开始看到了 ACL 支持的开端 -- 当前有 Linux 内核 2.4.3 的 ACL 内核补丁可用(请参阅下面的参考资料),以及一些用户空间工具。ACL 支持目前在 Samba 2.2.0 中得到了完全支持。

尽管 Samba 2.2.0 支持 ACL,但目前在内核和文件系统中启用 ACL 支持时还是需要许多棘手的步骤。因为标准 ext2 文件系统无法存储 ACL 信息,所以需要首先安装支持 ACL 的特殊 ext2 版本;这将对内核进行修补和重新编译,并升级系统上的所有 ext2 实用程序。

不过,如果您执行了所有这些操作,将可以在 Linux 上使用 Samba 的 ACL 支持。设置完毕后,Samba 将保留 NTFS ACL,而不是将 ACL 许可权映射成不太灵活的标准 UNIX 许可权方案。这是件好事。设想一下:与 winbind 结合在一起的 ACL 支持将允许基于 Linux 的系统“吸收”Windows NT 用户、组和 ACL 许可权。非常惊人的成就!

但现在,Linux 下的 ACL 支持还处于初级阶段。几乎每个备份程序都不备份 ACL 信息,意味着除非采取一些特殊手段,否则将很容易丢失 ACL。当然,ACL 支持在文件系统级别上几乎不存在(只有修补过的 ext2 版本和当前提供 ACL 支持的 SGI 的 XFS -- 请参阅下面的参考资料)这一事实使得用 ACL 支持 Linux 系统成为一项非常艰难的任务。 不过,因为 Linux 发行版最终在缺省情况下将启用 ACL,这一过程也将变得越发容易。
[/quote]

二、

http://listas.conectiva.com.br/listas/linuxisp-br/arquivo/2002/11/msg00009.html

三、

http://linux-xfs.sgi.com/projects/xfs/mail_archive/200208/msg00477.html
回复

使用道具 举报

发表于 2003-12-3 20:03:03 | 显示全部楼层
有价值,我顶
谢了
回复

使用道具 举报

发表于 2003-12-10 14:14:27 | 显示全部楼层
RedHat AS 3.0 已经全面支持 ACL  了。

Linux 技术发展太快了,令人都无法接受、消化了啦。
回复

使用道具 举报

发表于 2003-12-10 21:16:20 | 显示全部楼层
有价值,我顶
谢了
回复

使用道具 举报

发表于 2004-2-26 15:29:50 | 显示全部楼层
[quote:1a3d31adca="gugong"]RedHat AS 3.0 已经全面支持 ACL  了。

Linux 技术发展太快了,令人都无法接受、消化了啦。[/quote]

怎么支持~?~详细说说
回复

使用道具 举报

发表于 2004-2-26 18:16:48 | 显示全部楼层
唉!linux的发展步伐总是那么快!我快跟不上了!
回复

使用道具 举报

发表于 2004-8-3 14:53:10 | 显示全部楼层
ACL,真是太强大了,太实用了!
回复

使用道具 举报

发表于 2004-8-4 11:31:09 | 显示全部楼层
访问控制列表
IPTABLE不也能实现吗
回复

使用道具 举报

发表于 2004-8-4 13:08:04 | 显示全部楼层
[quote:9e0f659f4d="ffman"]访问控制列表
IPTABLE不也能实现吗[/quote]
完全不是一回事。
回复

使用道具 举报

发表于 2004-8-18 11:01:29 | 显示全部楼层
acl 看来还在测试阶段,还不是很稳定,发展也比较慢.但它确实是一个好项目,时刻关注!
回复

使用道具 举报

发表于 2006-10-22 15:36:19 | 显示全部楼层
[quote:403c160920="gugong"]RedHat AS 3.0 已经全面支持 ACL  了。

Linux 技术发展太快了,令人都无法接受、消化了啦。[/quote]

感觉有点意淫,人家早就实现的东西我们现在拿来用了,却说'技术发展太快了'
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 08:28 , Processed in 0.065292 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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