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'
acl
règles dedevelopment
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
-
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 dansdevelopment
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 ?