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é.
- mon disque est monté avec
acl - J'ai
chown -R www:www development - ajout du
chmod g+s development -
J'ai défini un nombre d'
aclrègles dedevelopmentré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 -
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 dansdevelopmentdir, 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 ?