GNU/Linux >> Tutoriels Linux >  >> Linux

Comment définir des autorisations de manière récursive sur un répertoire (avec ACL activé) ?

setfacl a un récursif choix (-R ) comme chmod :

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

il permet également l'utilisation du capital-x X autorisation, ce qui signifie :

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

donc faire ce qui suit devrait fonctionner :

setfacl -R -m u:colleague:rwX .

(toutes les citations sont de man setfacl pour acl-2.2.52 tel que livré avec Debian)


Comme mentionné par umläute, la commande setfacl -R avec "X" majuscule est la voie à suivre, comme :

setfacl -R -m u:colleague:rwX .

Cependant, pour ceux qui ont besoin de réappliquer l'ACL de manière récréative (c'est-à-dire comme "ré-appliquer les permissions sur les sous-répertoires" à la Windows).

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

Cette commande pourrait être divisée pour éviter une erreur comme 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/')

Notez que la syntaxe <( something ) est la substitution de processus , qui est spécifique à bash. Vous devrez peut-être créer un fichier temporaire si vous utilisez un autre shell.


Linux
  1. Comment utiliser Ansible pour configurer la surveillance du système avec Prometheus

  2. Comment auditer les autorisations avec la commande find

  3. Comment configurer Bash pour qu'il exécute *.exe avec Mono ?

  4. Opération non prise en charge avec Setfacl ?

  5. Comment définir la date avec le format d'époque ?

Comment copier des fichiers avec une extension de fichier spécifique de manière récursive

Comment configurer un pare-feu avec GUFW sous Linux

Comment configurer un serveur Seafile avec Nginx sur Ubuntu 18.04

Comment configurer un serveur FTP avec ProFTPD dans Ubuntu 18.04

Comment configurer un serveur de messagerie avec Modoboa sur Ubuntu 20.04

Comment installer et configurer WordPress avec Ansible