Comment configurer un répertoire inscriptible de groupe?

16
$ whoami
meder
$ cd /var/www
$ sudo mkdir html
$ sudo groupadd web
$ sudo usermod -a -G web meder
$ sudo usermod -a -G web medertest
$ sudo chown meder:web html
$ sudo chmod -R g+rwx html

Le problème est que chaque fois que je crée un nouveau fichier /var/www/htmlmême si le groupe est défini sur web, il n'est accessible en écriture que par l'utilisateur d'origine.

On m'a donné les conseils de réglage de l' umaskêtre 002parce que la valeur par défaut est ce qui provoque les problèmes. Mais je devrais le faire pour tous les utilisateurs de ce groupe, et pour autant que je sache, il serait fastidieux de les modifier ~/.bashrctous umask 002. Même si je peux le faire moi-même avec une commande shell pour tous ces utilisateurs, cela semble toujours trop fastidieux.

Quelqu'un peut-il donner des conseils pour avoir un répertoire accessible en écriture pour le groupe?

meder omuraliev
la source
2
Avez-vous essayé de vous déconnecter puis de vous reconnecter avec l'utilisateur meder? Les informations de groupe ne sont pas mises à jour dans la session en cours.
marco
@marco - Je l'ai fait su medertestet su mederj'aime mille fois. Est-ce que cela peut être considéré comme une déconnexion?
meder omuraliev
@marco merci ne savait pas que les informations de groupe ne sont pas mises à jour dans la session en cours ...
bummer

Réponses:

30

Tout d'abord, activez le bit SGID sur votre répertoire:

sudo chmod g+s html

Cela fera que les nouveaux fichiers créés dans ce répertoire hériteront de la propriété du groupe du parent.

Il n'y a pas d'héritage des niveaux d'autorisation dans le modèle d'autorisation POSIX. Cependant, cela peut être fait avec des listes de contrôle d'accès , sans avoir à se soucier des paramètres umask:

sudo setfacl -d -m group:web:rwx html

C'est une vraie déception que umask ne puisse pas être assigné sur une base par répertoire.

mizo
la source
qu'y a-t-il g+sen chiffres?
Jürgen Paul
1
@WearetheWorld avec 2 précédez: chmod 2XXX file.
mizo
1
Je cherche cette réponse depuis toujours et je viens de m'en référer via une réponse Twitter. Merci @mizo!
Glyph
0

Vous devez définir le bit setgid sur le répertoire.

chmod g+s html
En pause jusqu'à nouvel ordre.
la source
Puis-je combiner ce chmod avec g+rwxcelui?
meder omuraliev
1
@meder: ouig+rwxs
pause jusqu'à nouvel ordre.
Cela préserve uniquement la propriété du répertoire, pas les autorisations de répertoire.
Glyph