acl.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sun, 03 Jan 2021 23:37:00 +0200
changeset 2492 bd3d45148652
parent 1981 ad12707cb8de
permissions -rw-r--r--
Fixed example.

.. -*- coding: utf-8; -*-

======
 ACL.
======
.. contents::
   :local:

Managing ACL permissions.
=========================

Set permission::

  $ sudo setfacl -m u:nobody:rwx ~/tmp/dir
  $ sudo setfacl -m g:nogroup:rwx ~/tmp/dir

Review permissions::

  $ sudo getfacl ~/tmp/dir

Remove specific permissions::

  $ sudo setfacl -x u:test ~/tmp/dir

.. NOTE:: ``setfacl`` with ``-x`` key can't remove specific permission (like
          read/write/executable bit), you should remove corresponding user or
          group and set new or explicitly specify desired permission for user or
          group with ``-m`` option.

Remove all ACL permissions::

  $ sudo setfacl -b ~/tmp/dir

Remove default ACL::

  $ sudo setfacl -k ~/tmp/dir

Backup and restore ACL::

  $ sudo getfacl ~/tmp/dir >~/tmp/backup.acl
  $ sudo setfacl --restore=~/tmp/backup.acl

Add default ACL to directory to make ACL permission inheritance::

  $ sudo setfacl -d -m u:nobody:rwx /srv/www
  $ sudo setfacl -m u:nobody:rwx /srv/www

or by single command::

  $ sudo setfacl -m u:nobody:rwx,d:u:nobody:rwx /srv/www

To apply permission recursively add ``-R`` option::

  $ sudo setfacl -R -d -m u:nobody:rwx /srv/www
  $ sudo setfacl -R -m u:nobody:rwx /srv/www

.. NOTE:: default ACL is set only on directories and is applied only to
          directory children. So you should explicitly add permission to
          directory itself!