Définir le groupe par défaut pour l'utilisateur quand ils créent de nouveaux fichiers?


37

Je me trouve souvent en chown-ing lorsque je les ai créés par SSH et qu'ils appartiennent par jm:jmexemple à.

Ensuite, pour permettre à Apache d'y accéder, je dois par exemple le faire chown jm:www-data.

Je suis sûr que je peux spécifier que lorsque je crée des fichiers, au lieu d'utiliser le groupe sous mon nom, spécifiez un autre?

Ou existe-t-il un meilleur moyen de gérer les utilisateurs / groupes?

Réponses:


75

Si vous voulez que tous les nouveaux fichiers d'un répertoire particulier appartiennent à un groupe particulier, appliquez simplement le setgidbit dessus:

chgrp www-data /some/dir
chmod g+s /some/dir

Si vous souhaitez appliquer ce comportement à une arborescence de répertoires existante, vous pouvez le faire avec find:

find /some/dir -type d -exec chgrp www-data {} +
find /some/dir -type d -exec chmod g+s {} +

(Si les répertoires appartiennent déjà au groupe concerné, vous pouvez omettre la première commande dans ces deux exemples).


1
Bonne réponse! Pourriez-vous préciser la signification des symboles ... {} +?
Alexander Lomia

3
Ce sont des arguments à la findcommande, couverts dans la page de manuel. Lors de la première invocation, la commande sera exécutée en chgrp www-dataajoutant un certain nombre de résultats sous forme d'arguments (plutôt que d'appeler la commande une fois pour chaque résultat obtenu avec {} \;).
James Henstridge

6
Pourquoi ne pas utiliser chmod g+s /some/dir -R? Juste testé et cela semble fonctionner.
Cragmonkey

13
@Cragmonkey: cela définira également le bit setgid sur les fichiers normaux. S'il s'avère que l'un d'entre eux est exécutable, cela permettrait à un autre utilisateur du système d'obtenir les privilèges du groupe propriétaire du fichier.
James Henstridge
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.