J'ai un certain répertoire dans lequel il existe un projet partagé par plusieurs utilisateurs. Ces utilisateurs utilisent SSH pour accéder à ce répertoire et modifier/créer des fichiers.
Ce projet ne devrait être connecté à un certain groupe d'utilisateurs: permet de l'appeler "mygroup". Pendant une session SSH, tous les fichiers/répertoires créés par l'utilisateur actuel doivent par défaut appartenant à un groupe "Mygroup" et d'avoir des autorisations en groupe.
Je peux résoudre le problème des autorisations avec umask
:
$ cd project
$ umask 002
$ touch test.txt
Fichier "Test.txt" est maintenant saisi en groupe, mais appartient toujours à mon groupe par défaut ("Mislav", identique à mon nom d'utilisateur) et non à "Mygroup". Je peux chgrp
_ Récursivement de définir le groupe souhaité, mais je voulais savoir s'il existe un moyen de définir un groupe implicitement comme Mask Modifications des autorisations par défaut au cours d'une session.
Ce répertoire spécifique est un repo git partagé avec une copie de travail et je veux git checkout
et git reset
Opérations Pour définir le bon masque et groupe pour les nouveaux fichiers créés dans la copie de travail. L'OS est Ubuntu Linux.
Mise à jour: Un collègue suggère que je devrais examiner GetFACL/SETFACL de POSIX ACL mais la solution ci-dessous combiné avec umask 002
Dans la session en cours, c'est assez bon pour moi et est beaucoup plus simple.
Si vous souhaitez cela avec un dossier existant, vous devez vous assurer que le bit SetGID est également activé pour tous les sous-dossiers. Cependant, vous n'en avez pas besoin sur les fichiers et vous ne le voulez probablement pas non plus sur les fichiers. Voici comment la définir pour tous les sous-dossiers récursives.
find /path/to/base/dir -type d -exec chmod g+s {} +
Il est difficile d'hériter des autorisations de répertoire parent sous Linux/UNIX sans utiliser d'ACLS. Mais il existe un moyen d'attribuer des autorisations de fichier par défaut, de vérifier ci-dessous un lien ci-dessous.