The Wayback Machine - https://web.archive.org/web/20221025113551/https://baike.sogou.com/kexue/d10691.htm

访问控制列表

编辑

相对于计算机文件系统,访问控制列表是附加到对象的权限列表。ACL指定哪些用户或系统进程被授予对对象的访问权限,以及允许对给定对象进行哪些操作。[1]典型ACL中的每个条目指定一个对象和一个操作。例如,如果文件对象的ACL包含(爱丽丝:读、写;鲍勃:读),这将允许爱丽丝读写文件,而鲍勃只能读它。

1 实现编辑

许多操作系统实现ACl,或者有一个历史实现。

1.1 文件系统ACL

文件系统ACL是一种数据结构(通常是一个表),其中包含指定对特定系统对象(如程序、进程或文件)的单个用户或组权限的条目。这些条目在微软视窗操作系统、[2]OpenVMS、类Unix操作系统和Mac OS X操作系统中被称为访问控制条目。每个可访问对象都包含其ACL的标识符。权限决定了特定的访问权限,例如用户是否可以读取、写入或执行对象。在一些实现中,ACE可以控制用户或用户组是否可以改变对象上的ACL。

POSIX 1003.1e/1003.2c工作组致力于标准化ACL,[3]自2002年11月Linux内核版本2.5.46以来,POSIX 1003.1e已推出17个ACL草案。

基于1997年撤回的早期POSIX草案,大多数Unix和类Unix的操作系统(例如,Linux、[4]BSD或Solaris)支持POSIX.1e ACL。它们中的大多数,例如AIX、FreeBSD、[5]从10.4版开始的Mac OS X(“老虎”)或具有ZFS文件系统的Solaris,[6]都支持NFSv4 ACL,这是NFSv4标准的一部分。有两种针对Linux的NFS v4 ACL的实验性实现:NFSv4 ACL支持Ext3文件系统,[7]以及最近的Richacls,[8]它为Ext3文件系统带来了NFSv4 ACL支持。

红帽企业Linux在ext2/ext3文件系统上引入了扩展属性,至少从2005年RHEL 4号开始。[9]

PRIMOS至少早在1984年就以ACl为特色。[10]

20世纪90年代,ACL和RBAC模式广泛测试过并用于管理文件权限。

1.2 网络ACL

在某些类型的专有计算机硬件(特别是路由器和交换机)上,访问控制列表提供应用于主机或其他第3层上可用的端口号或IP地址的规则,每个规则都有一个列表,包含允许使用该服务的主机和/或网络。尽管还可以基于网络域名配置访问控制列表,但这是一个有问题的决定,因为单个的TCP、UDP和ICMP头不包含域名。因此,实施访问控制列表的设备必须将名称分别解析为数字地址。这为试图危及访问控制列表保护的系统安全的攻击者提供了额外的攻击面。单个服务器和路由器都可以有网络ACl。访问控制列表通常可以配置为控制入站和出站流量,在这种情况下,它们类似于防火墙。像防火墙一样,访问控制列表也可能受到安全法规和标准的约束,如PCI DSS。

1.3 SQL实现

ACL算法已经移植到了SQL和关系数据库系统中。很多“现代”(2000年和2010年)基于SQL的系统,如企业资源规划和内容管理系统,在其管理模块中使用了ACL模型。

2 与RBAC相比编辑

ACL模型的主要替代方案是基于角色的访问控制(RBAC)模型。一个“最小RBAC模型”,RBACm,可以与一个访问控制列表机制进行比较,在这个机制中,只允许组作为访问控制列表中的条目。Barkley (1997)[11]表明RBACm和ACLg是等价的。

在现代的SQL实现中,ACL还管理组层次结构中的组和继承。因此,“现代访问控制列表”可以表达所有RBAC表达的内容,而且在管理员查看组织的方式方面,它们在表达访问控制策略的能力上非常强大(与“旧访问控制列表”相比))。

对于数据交换和“高级比较”,ACL数据可以被翻译成XACML。[12]

参考文献

  • [1]

    ^RFC 4949.

  • [2]

    ^"Managing Authorization and Access Control". Microsoft Technet. 2005-11-03. Retrieved 2013-04-08..

  • [3]

    ^https://web.archive.org/web/20221025113551/https://www.usenix.org/legacy/publications/library/proceedings/usenix03/tech/freenix03/full_papers/gruenbacher/gruenbacher_html/main.html.

  • [4]

    ^"Red Hat Enterprise Linux AS 3 Release Notes (x86 Edition)". Red Hat. 2003. Retrieved 2013-04-08. EA (Extended Attributes) and ACL (Access Control Lists) functionality is now available for ext3 file systems. In addition, ACL functionality is available for NFS..

  • [5]

    ^"NFSv4 ACLs". FreeBSD. 2011-09-12. Retrieved 2013-04-08..

  • [6]

    ^"Chapter 8 Using ACLs and Attributes to Protect ZFS Files". Oracle Corporation. 2009-10-01. Retrieved 2013-04-08..

  • [7]

    ^Grünbacher, Andreas (May 2008). "Native NFSv4 ACLs on Linux". SUSE. Archived from the original on 2013-06-20. Retrieved 2013-04-08..

  • [8]

    ^Grünbacher, Andreas (July–September 2010). "Richacls - Native NFSv4 ACLs on Linux". bestbits.at. Archived from the original on 2013-03-20. Retrieved 2013-04-08..

  • [9]

    ^https://web.archive.org/web/20221025113551/https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/Release_Notes/as-x86/index.html.

  • [10]

    ^"P.S.I. Pacer Software, Inc. Gnet-II revision 3.0". Communications. Computerworld. 18 (21). 1984-05-21. p. 54. ISSN 0010-4841. Retrieved 2017-06-30. The new version of Gnet-II (revision 3.0) has added a line-security mechanism which is implemented under the Primos ACL subsystem..

  • [11]

    ^J. Barkley (1997) "Comparing simple role based access control models and access control lists", In "Proceedings of the second ACM workshop on Role-based access control", pages 127-132..

  • [12]

    ^G. Karjoth, A. Schade and E. Van Herreweghen (2008) "Implementing ACL-based Policies in XACML", In "2008 Annual Computer Security Applications Conference"..

阅读 8467
版本记录
  • 暂无