GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso impostare le autorizzazioni in modo ricorsivo su una directory (con ACL abilitato)?

setfacl ha un ricorsivo opzione (-R ) proprio come chmod :

  -R, --recursive
      Apply operations to all files and directories recursively. This
      option cannot be mixed with `--restore'.

consente anche l'uso della x maiuscola X permesso, che significa:

  execute only if the file is a directory or already has
  execute permission for some user (X)

quindi fare quanto segue dovrebbe funzionare:

setfacl -R -m u:colleague:rwX .

(tutte le citazioni provengono da man setfacl per acl-2.2.52 come fornito con Debian)


Come accennato da umläute, il comando setfacl -R con la "X" maiuscola è la strada da percorrere, come:

setfacl -R -m u:colleague:rwX .

Tuttavia, per coloro che hanno bisogno di riapplicare l'ACL in modo recrusivo (ad esempio "riapplica i permessi alle sottodirectory" alla Windows).

find . -mindepth 1 | xargs -n 50 setfacl -b --set-file=<(getfacl . | sed -e 's/x$/X/')

Quel comando potrebbe essere suddiviso per evitare errori come setfacl: foobar: Only directories can have default ACLs .

find . -mindepth 1 -type d| xargs -n 50 setfacl -b --set-file=<(getfacl . | sed -e 's/x$/X/')
find . -mindepth 1 -type f| xargs -n 50 setfacl -b --set-file=<(getfacl . | grep -v '^default:' | sed -e 's/x$/X/')

Nota che la sintassi <( something ) è Sostituzione processo , specifico di bash. Potrebbe essere necessario creare un file temporaneo se utilizzi un'altra shell.


Linux
  1. Come controllare i permessi con il comando trova

  2. Come impostare Bash per eseguire *.exe con Mono?

  3. Operazione non supportata con Setfacl?

  4. Come configurare Firewall con Firewalld su CentOS 8

  5. Come eseguire l'inoltro ssh con AllowTcpForwarding impostato su no?

Come copiare file con estensione di file specifica in modo ricorsivo

Come configurare un firewall con GUFW su Linux

Come configurare un server Seafile con Nginx su Ubuntu 18.04

Come configurare un server FTP con ProFTPD in Ubuntu 18.04

Come configurare un server di posta con Modoboa su Ubuntu 20.04

Come installare e configurare WordPress con Ansible