GNU/Linux >> Tutoriels Linux >  >> Linux

Impossible d'expliquer le comportement d'ACL ?

Voici donc la situation :
j'ai un serveur pour les développeurs Web. Il existe de nombreux développeurs. Tous les developers + PHP + Apache appartient à www grouper. Il existe un répertoire de développement - development .

L'objectif est que chaque fichier en development répertoire a 755 autorisations et chaque fois qu'un développeur crée, modifie un fichier dans development répertoire, les fichiers auront toujours 755 .

J'ai donc lu un certain nombre de acl tutoriels, guides et howto mais je n'arrive toujours pas à obtenir le résultat souhaité.

  1. mon disque est monté avec acl
  2. J'ai chown -R www:www development
  3. ajout du chmod g+s development
  4. J'ai défini un nombre d'acl règles de development répertoire et j'ai obtenu ceci :

    $ getfacl development
    # file: development
    # owner: www
    # group: www
    # flags: -s-
    user::rwx
    user:www:rwx
    group::rwx
    group:www:rwx
    mask::rwx
    other::r-x
    default:user::rwx
    default:user:www:rwx
    default:group::rwx
    default:group:www:rwx
    default:mask::rwx
    default:other::r-x
    
    p.s. I know its messy, was doing a number of tests
    
  5. Selon mon idée de ACL , si le répertoire avait de telles règles, ma tâche devrait être accomplie, mais lorsque j'essaie de créer un fichier dans development dir, j'obtiens :

    -rw-rw-r--+ 1 www     www      0 Nov 21 09:14 newfile
    

Je n'arrive pas à comprendre pourquoi il crée rw- à la place rwx .

C'est probablement quelque chose de simple qui m'a échappé ou un concept général que je ne comprends pas.

Réponse acceptée :

Vos ACL par défaut remplacent umask, qui ne spécifie pas par défaut autorisations, mais maximum autorisations pour créer de nouveaux fichiers. Dans ce cas rwxrwxr-x .

Ensuite, votre application appelle open ou creat avec les autorisations qu'il souhaite. Presque toutes les applications demanderont rw-rw-rw- pour les fichiers.

Vous pouvez le voir en exécutant strace , par exemple

$ strace -e trace=file touch newfile
...
open("newfile", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3

(0666 est identique à rw-rw-rw- .)

Les deux autorisations sont combinées à l'aide d'un ET au niveau du bit pour donner rw-rw-r-- .

  rwxrwxr-x     # default ACL
  rw-rw-rw-     # permission requested (e.g. by touch, vim, etc.)
& _________
  rw-rw-r--     # effective permissions

Pour une autre explication, consultez Listes de contrôle d'accès POSIX – "Exemple d'ACL par défaut".

La vraie question est donc :pourquoi avez-vous besoin que les fichiers soient exécutables ?


Linux
  1. Trouver des fichiers qu'un utilisateur ne peut pas lire ?

  2. Un script peut-il être exécutable mais pas lisible ?

  3. Impossible d'installer Wine sur Ubuntu Studio 19.10 ?

  4. setfacl :commande introuvable

  5. Comment puis-je vérifier qu'un fichier existe et exécuter une commande sinon?

Le texte en surbrillance n'est pas visible dans gedit en mode sombre ? Voici ce que vous pouvez faire

Debian – Impossible de créer un utilisateur Sftp Debian 7 ?

Impossible d'exécuter la commande de configuration :"aucun fichier ou répertoire de ce type" ?

Impossible de redémarrer Samba ?

Comment puis-je savoir si l'option set -e est activée ou non ?

Pourquoi ma crontab ne fonctionne-t-elle pas et comment puis-je la dépanner ?