Supposons que j'ai deux utilisateurs Alice et Bob et un groupe GROUPNAME et un dossier foo
, les deux utilisateurs sont membres de GROUPNAME (utilisant Linux et ext3).
Si j'enregistre en tant qu'utilisateur Alice un fichier sous foo
, les autorisations sont :-rw-r--r-- Alice Alice
. Cependant, est-il possible d'obtenir que chaque fichier enregistré dans un sous-répertoire de foo
a les permissions -rwxrwx--- Alice GROUPNAME
(c'est-à-dire propriétaire Alice, groupe GROUPNAME) ?
Réponse acceptée :
Vous pouvez contrôler les bits d'autorisation attribués avec umask
, et le groupe en créant le répertoire setgid à GROUPNAME
.
$ umask 002 # allow group write; everyone must do this
$ chgrp GROUPNAME . # set directory group to GROUPNAME
$ chmod g+s . # files created in directory will be in group GROUPNAME
Notez que vous devez faire le chgrp
/chmod
pour chaque sous-répertoire ; il ne se propage pas automatiquement (c'est-à-dire qu'il ne s'agit pas de répertoires existants ou créés ultérieurement sous un setgid le répertoire sera setgid , bien que ce dernier soit dans le groupe GROUPNAME
).
Notez également que umask
est un attribut de processus et s'applique à tous les fichiers créés par ce processus et ses enfants (qui héritent du umask
en vigueur dans leur parent à fork()
temps). Les utilisateurs peuvent avoir besoin de définir ceci dans ~/.profile
, et devrez peut-être faire attention aux éléments sans rapport avec votre répertoire qui nécessitent des autorisations différentes. Les modules peuvent être utiles si vous avez besoin de paramètres différents lorsque vous faites différentes choses.
Vous pouvez contrôler un peu mieux les choses si vous pouvez utiliser les ACL POSIX ; il devrait être possible de spécifier à la fois un masque d'autorisations et un groupe, et de les propager de manière sensée. La prise en charge des ACL POSIX est cependant quelque peu variable.