6.25. 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.1 SBU
Required disk space: 7.7 MB

6.25.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    \
            --disable-static \
            --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 -j1 tests after Coreutils has been built later in this chapter.

Install the package to a temporary directory:

make install install-dev install-lib DESTDIR=$(pwd)/debian/tmp
chmod -v 755 debian/tmp/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:

mkdir -pv debian/tmp/lib
mv -v debian/tmp/usr/lib/libacl.so.* debian/tmp/lib
ln -sfv ../../lib/$(readlink debian/tmp/usr/lib/libacl.so) \
        debian/tmp/usr/lib/libacl.so

Create the package archive:

buildpkg

Install the package:

dpkg -i ../acl_2.2.52_*.deb

6.25.2. Contents of Acl

Installed programs: chacl, getfacl, and setacl
Installed library: libacl.{a,so}
Installed directories: /usr/include/acl and /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 library functions for manipulating Access Control Lists