Accorder une autorisation d'écriture par défaut au groupe sur tous les fichiers et dossiers nouvellement créés

15

Disons que nous avons 2 utilisateurs: a et b, qui font tous deux partie du groupe général.

J'aimerais que tout fichier ou dossier créé par A ait une autorisation d'écriture sur le groupe GENERAL.

Comment puis-je le faire?

Par exemple, le fichier nouvellement créé est défini comme:

-rw-r--r-- 1 a general

Cela ne donne pas la permission d'écrire au général du groupe

Dejel
la source
Vous pourriez être intéressé par cette réponse: stackoverflow.com/questions/3175303/…
Gavriel
2
Je ne veux pas le faire à partir de Java. Ce n'est pas la bonne façon de le faire
Dejel
"Je ne veux pas le faire à partir de Java. Ce n'est pas la bonne façon de le faire." C'est presque une déclaration philosophique. Cela s'applique partout ...
GargantuChet

Réponses:

15

Oui, vous pouvez changer cela umask. Le umaskdétermine quelles sont les autorisations par défaut pour un fichier nouvellement créé.

Vous pouvez ajouter umask g+wà la fin de votre fichier de configuration shell ( ~/.bashrcpar exemple).

Mais en réalité, ce n'est pas une pratique recommandable. Dans le cas où vous souhaitez garantir l'intégrité d'un fichier et que vous oubliez de mettre à jour les permissions du fichier, il sera modifiable par le groupe. C'est contraire au principe de sécurité des «valeurs initiales sécurisées».

Ce que vous pourriez faire à la place, c'est rendre tout le fichier nouvellement créé d'un répertoire spécifique accessible en écriture par le groupe. Vous pouvez le faire en manipulant les ACL du répertoire. Par exemple setfacl -dm u::rw,g::rw,o::r ~/shared,.

Regardez ces articles pour référence: /server/349145/can-i-override-my-umask-using-acls-to-make-all-files-created-in-a-given-director et /programming/580584/setting-default-permissions-for-newly-created-files-and-sub-directories-under-a .

lgeorget
la source
Et si je ne sais pas quel sera le répertoire? Depuis, disons que j'ai le dossier TEST. Tous les fichiers créés par A seront sous TEST. Cependant, il pouvait créer un dossier 20130515 et sous celui-ci pour localiser le fichier nouvellement créé. il devrait donc être pour tout fichier et dossier créé récursivement sous le dossier TEST
Dejel
2
les ACL par défaut héritent des nouveaux sous-répertoires et s'appliquent aux fichiers créés dans ces répertoires. Donc, si vous avez /srv/TESTdéfini les ACL par défaut sur ce répertoire, alors quand /srv/TEST/20130515il aura les mêmes ACL par défaut que le répertoire parent.
Bratchley
Ce pourrait aussi être une bonne idée de s'exécuter sudo chmod g+s [dir]afin que les fichiers appartiennent au groupe
linuxgnuru