J'ai un répertoire appelé data
. Ensuite, j'exécute un script sous l'ID utilisateur 'robot'. robot écrit dans le data
répertoire et met à jour les fichiers qu'il contient. L'idée est data
ouverte pour moi et le robot de mettre à jour.
J'ai donc configuré le groupe de permissions et de propriétaires comme ceci
drwxrwxr-x 2 me robot-grp 4096 Jun 11 20:50 data
où robot et moi appartenons tous deux au "robot-grp". Je modifie l'autorisation et le groupe de propriétaires de manière récursive comme le répertoire parent.
Je télécharge régulièrement de nouveaux fichiers dans le data
répertoire en utilisant rsync
. Malheureusement, les nouveaux fichiers téléchargés n'héritent pas de la permission du répertoire parent, comme je l'espère. Au lieu de cela, il ressemble à ceci
-rw-r--r-- 1 me users 6 Jun 11 20:50 new-file.txt
Lorsque le robot tente de se mettre à jour new-file.txt
, il échoue faute d'autorisations de fichiers.
Je ne suis pas sûr que le réglage d'umask aide. En tout cas, les nouveaux fichiers ne le suivent pas vraiment.
$ umask -S
u=rwx,g=rx,o=rx
Je suis souvent dérouté par les autorisations de fichiers Unix. Ai-je même un bon plan? J'utilise Debian Lenny.
la source
sudo setfacl -Rm g:users:rwX,d:g:users:rwX /var/www/logs_or_something
. Avait un problème avec les tests PHPUnit. Après avoir créé des fichiers journaux à partir de tests en cours, l’utilisateur Apachewww-data
n’a pas pu les écrire / lire.setfacl
page de manuel ,-b
ou--remove-all
supprime les ACL étendues.setfacl -Rm g:users:rwX,d:g:users:rwX data/
à la fin de/etc/fstab
?defaults
pourdefaults,acl
.setfacl
est une commande à exécuter depuis le terminal.data/
doit être remplacé par le chemin du répertoire que vous souhaitez modifier.En marquant un répertoire, setgid (
g+s
) fera en sorte que les nouveaux fichiers héritent de la propriété du groupe sur le répertoire, mais l'-g
option de rsync tentera de le remplacer.la source
D'autres réponses s'appliquent dans un cas général, mais comme vous mentionnez que rsync est une source du problème, il vous suffira peut-être de régler son invocation.
Pour commencer, le
-a
drapeau populaire accorde des autorisations de copie à rsync; utilisez-r
istead of-a
ou add-no-p
(pour aucune synchronisation des autorisations) et-no-g
(pour aucune synchronisation de groupe). De plus, rsync supporte--chmod
flag pour modifier les permissions sur les fichiers nouvellement créés.la source
Votre umask n’est pas conforme aux autorisations que vous souhaitez. Vous voulez un umask de 002. Vous avez actuellement un umask de 022. En outre, le commentaire sur la création du répertoire setgid est correct, mais je ne suis pas sûr si la propriété du groupe de fichiers est quelque chose que vous souhaitez modifier ou non.
Les autorisations de fichiers Unix sont en réalité un modèle très simple. Je trouve les ACL complètement déroutant. :-)
la source