POSIX Access Control Lists on Linux Andreas Grunbacher¨ SuSE Labs, SuSE Linux AG Nuremberg, Germany
[email protected] Abstract UNIX, which are only compatible among each other to a limited degree. This paper discusses file system Access Control Lists This paper gives an overview of the most successful as implemented in several UNIX-like operating systems. ACL scheme for UNIX-like systems that has resulted After recapitulating the concepts of these Access Con- from the POSIX 1003.1e/1003.2c working group. trol Lists that never formally became a POSIX standard, After briefly describing the concepts, some examples we focus on the different aspects of implementation and of how these are used are given for better understanding. use on Linux. Following that, the paper discusses Extended Attributes, the abstraction layer upon which ACLs are based on 1 Introduction Linux. The rest of the paper deals with implementation, Traditionally, systems that support the POSIX (Portable performance, interoperability, application support, and Operating System Interface) family of standards [2, system maintenance aspects of ACLs. 11] share a simple yet powerful file system permission The author was involved in the design and implemen- model: Every file system object is associated with three tation of extended attributes and ACLs on Linux, which sets of permissions that define access for the owner, the covered the user space tools and the kernel implemen- owning group, and for others. Each set may contain tation for Ext2 and Ext3, Linux’s most prominent file Read (r), Write (w), and Execute (x) permissions. This systems. Parts of the design of the system call interface scheme is implemented using only nine bits for each ob- are attributed to Silicon Graphics’s Linux XFS project, ject.