L'
umask est ( en théorie ) réglé au niveau système, dans le fichier
/etc/login.defs : ici ça indique au système quel
umask donner à chaque nouvel utilisateur créé.
Y'a plein d'autres trucs dans ce fichier, comme le fait que pour tout utilisateur créé, le système lui associe un groupe de même nom.
Par défaut sous Ubuntu, cet umask est à
022 →
utilisateur a lecture+écriture+exécution,
groupe et
autres ont lecture+exécution.
Ça veut dire que les utilisateurs déjà créés ( blandine et enfants ) ont cet umask.
En théorie car Gnome depuis des années est complètement à la ramasse vis à vis de ce mécanisme et ne répercute pas cette valeur umask correctement dans « ses » logiciels.
Du coup il faut aussi reporter l'umask souhaité dans ~/.profile afin que des logiciels comme gedit ou gnome-terminal ( et d'autres ) le respectent. À priori pas le souci avec la valeur par défaut.
Pour ajouter un utilisateur à un groupe ( les 2 doivent déjà exister ) il y a aussi :
sudo adduser utilisateur groupe
Mais.
C'est dans « l'autre sens » qu'il faut le faire, le dossier
/home/enfants/Devoirs est créé dans la session
enfants donc
enfants a automatiquement les droits
rwx là.
C'est
blandine qui ne pourrait qu'y lire. Sauf à ajouter
blandine au groupe
enfant afin qu'elle ait le droit d'écrire là bas ( si on ajoute au groupe, sur ce dossier, le droit écriture ).
Mais puisque là
enfants peut écrire, alors enfants peut …effacer. Bof.
C'est pas dans
/home/enfants qu'il faut créer un tel dossier
devoirs mais bien chez
blandine et dans le dossier
/home/enfant mettre un lien vers lui : les enfants pourront alors lire depuis leur session ce qu'il y a dans ce dossier mais pas y écrire, seule
blandine le pourra. Pas besoin de jouer avec
umask et autres permissions, les valeurs par défaut suffisent.
Bref.
Depuis la session
blandine créer le dossier :
mkdir /home/blandine/Devoirs
puis le lien ( symbolique ) :
sudo ln -s /home/blandine/Devoirs /home/enfants/Devoirs
sudo car
blandine n'a pas le droit d'écrire chez
enfants.
Ou alors passer sous la session
enfants et
ln -s /home/blandine/Devoirs /home/enfants/Devoirs
Avec la commande
ln le premier chemin est celui vers la ressource cible [ /home/blandine/Devoirs ], le deuxième chemin désigne le lien [ /home/enfants/Devoirs ].
Un lien est « transparent » il reporte les droits et permissions de sa cible.
Un lien symbolique a le comportement suivant :
⋅ si par accident,
enfants efface le
lien, ça n'efface pas la cible
/home/blandine/Devoirs.
⋅ si
blandine efface le dossier
Devoirs alors le lien apparaîtra « cassé » côté
enfants. Il suffit alors que
blandine (re) crée un dossier
Devoirs pour que le lien fonctionne à nouveau
Un lien direct a un autre comportement en cas d'effacement de la cible ( en gros : tant qu'il existe un lien direct vers une ressource cible, cette ressource reste sur le disque ).
Guère plus compliqué, faire en sorte que
blandine ait partout chez
enfants le droit d'écriture. Intéressée ?
Pour empêcher par
enfants l'effacement du lien c'est un peu plus pointu. Mais faisable. ( le
bit -t sur /home/enfants ou un montage
--bind entre 2 dossiers plutôt qu'un lien symbolique ). On s'arrête là où on continue ?