6.22. Acl-2.2.52

The Acl package contains utilities to administer Access Control Lists, which are used to define more fine-grained discretionary access rights for files and directories.

Approximate build time: 0.2 SBU
Required disk space: 5.4 MB

6.22.1. Installation of Acl

Modify the documentation directory so that it is a versioned directory:

sed -i -e 's|/@pkg_name@|&-@pkg_version@|' include/builddefs.in

Fix some broken tests:

sed -i "s:| sed.*::g" test/{sbits-restore,cp,misc}.test

Additionally, fix a bug that causes getfacl -e to segfault on overly long group name:

sed -i -e "/TABS-1;/a if (x > (TABS-1)) x = (TABS-1);" \
    libacl/__acl_to_any_text.c

Prepare Acl for compilation:

./configure --prefix=/usr --libexecdir=/usr/lib

Compile the package:

make

The Acl tests need to be run on a filesystem that supports access controls after Coreutils has been built with the Acl libraries. If desired, return to this package and run make tests after Coreutils has been built later in this chapter.

Install the package:

make install install-dev install-lib
chmod -v 755 /usr/lib/libacl.so

The shared library needs to be moved to /lib, and as a result the .so file in /usr/lib will need to be recreated:

mv -v /usr/lib/libacl.so.* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libacl.so) /usr/lib/libacl.so

6.22.2. Contents of Acl

Installed programs: chacl, getfacl, and setacl
Installed library: libacl.{a,so}
Installed directories: /usr/include/acl, /usr/share/doc/acl-2.2.52

Short Descriptions

chacl

Changes the access control list of a file or directory.

getfacl

Gets file access control lists.

setacl

Sets file access control lists.

libacl

Contains the Acl API functions.