Pages : 1
#1 Le 27/07/2024, à 08:20
- Cassys
mise à jour du masque (umask)
Bonjour,
Pour restraindre l'accès aux fichiers du répertoire user de cette manière :
drwx------ 2 (...) test
-rw------- 1 (...) test.txt
On utilise la commande umask 077.
On voudrait que ce soit le comportement par défaut pour ne pas devoir taper cette commande à chaque fois et la rendre effective par exemple lorsqu'on créé un fichier via nautilus
Les discussions proposent la commande suivante :
sudo gedit /etc/login.defs
où sudo est l'accès superuser appliqué sur /etc/login.defs et gedit l'éditeur utilisé.
Via l'éditeur on trouve la ligne suivante :
UMASK 022
On remplace la ligne par
UMASK 077
Références :
Hors ligne
#2 Le 27/07/2024, à 08:26
- Cassys
Re : mise à jour du masque (umask)
Questions :
Est-ce que cela s'applique pour toutes les créations de fichiers / répertoire ? (même via le nautilus par exemple)
Cela risque t-il de poser des problèmes pour les installations via apt-get ou décompression d'une archive ?
Quelle est l'arborescence mise à jour ? /home/user ou tout le système de fichier ?
Hors ligne
#3 Le 28/07/2024, à 12:29
- maxire
Re : mise à jour du masque (umask)
Bonjour
Pour restraindre l'accès aux fichiers du répertoire user de cette manière :
....
On utilise la commande umask 077.
Non, la commande umask ne restreint rien du tout, elle définit le masque utilisé lors de la création d'un fichier dans un environnement donné.
Les commandes permettant de modifier les autorisations d'accès à des fichiers existants sont chmod dans en POSIX et setfacl (Access Control lists, en gros l'équivalent des autorisations d'accès Windows MS).
Exemples :
[pirate@intelnuc ~]$ umask
0022
[pirate@intelnuc ~]$ touch testumask1
[pirate@intelnuc ~]$ ls -l testumask1
-rw-r--r-- 1 pirate pirate 0 28 juil. 12:47 testumask1
[pirate@intelnuc ~]$ umask 077
[pirate@intelnuc ~]$ umask
0077
[pirate@intelnuc ~]$ touch testumask2
[pirate@intelnuc ~]$ ls -l testumask2
-rw------- 1 pirate pirate 0 28 juil. 12:48 testumask2
[pirate@intelnuc ~]$ ls -l testumask1
-rw-r--r-- 1 pirate pirate 0 28 juil. 12:47 testumask1
[pirate@intelnuc ~]$ chmod 600 testumask1
[pirate@intelnuc ~]$ ls -l testumask1
-rw------- 1 pirate pirate 0 28 juil. 12:47 testumask1
[pirate@intelnuc ~]$
Le masque par défaut est bien défini dans /etc/login.defs et c'est bien ce masque qui sera appliqué au répertoire home d'un utilisateur lors de sa création par les commandes useradd et newusers.
Attention cette valeur par défaut peut être supplantée par le module PAM pam_umask, il faut donc vérifier comment ce module est utilisé et si il est utilisé :
[pirate@intelnuc ~]$ grep pam_umask /etc/pam.d/*
/etc/pam.d/system-login:session optional pam_umask.so
[pirate@intelnuc ~]$ cat /etc/pam.d/system-login
#%PAM-1.0
auth required pam_shells.so
auth requisite pam_nologin.so
auth include system-auth
account required pam_access.so
account required pam_nologin.so
account include system-auth
password include system-auth
session optional pam_loginuid.so
session optional pam_keyinit.so force revoke
session include system-auth
session optional pam_motd.so
session optional pam_mail.so dir=/var/spool/mail standard quiet
session optional pam_umask.so
-session optional pam_systemd.so
session required pam_env.so
[pirate@intelnuc ~]
Dans ce cas le masque par défaut est bien celui défini dans /etc/login.defs (lire la page man pam_umask).
Comme tu l'as justement perçu les applications susceptibles de créer des fichiers peuvent ne pas tenir compte ce ce masque par défaut.
C'est le cas des applications de mises à jour de logiciels qui vont appliquer le modèle défini dans les paquets logiciels, donc non apt-get ne tient pas compte du masque par défaut.
À priori même chose dans le cas des logiciels d'archivages, en fait ils ne font pas de création lors des décompressions mais des copies, donc ce sont les masques d'origine qui devraient s'appliquer.
Pour les autres apllications, tester.
Quelle est l'arborescence mise à jour ? /home/user ou tout le système de fichier ?
Je ne comprends pas bien la question, umask ne met rien à jour, ce sont les applications créant des fichiers qui vont appliquer ou non le masque par défaut sur une cible définie qui n'est pas une arborescence mais un fichier (sous Unix un répertoire est un fichier comme un autre).
J'espère avoir clarifié l'usage de umask,
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#4 Le 28/07/2024, à 23:35
- Cassys
Re : mise à jour du masque (umask)
Bonjour Maxire,
Merci pour ces précisions. Oui en effet, c'était mal dit, l'idée de la question est que le contrôle d'accès soit en lecture / écriture / exécution(rep) à chaque instance et pas seulement pour l'instance dans laquelle on change le masque.
(700 donc masque 0077, pourquoi on met le premier zéro au fait?)
Et tu réponds également à la question sur les répertoires (user ou file system) impactés par la commande umask dans l'explication, merci
Du coup je comprends mieux pourquoi ça ne marche pas même après avoir redémarré lol
touch test.txt
donne comme droits
-rw-r----- 1 ... test.txt
au lieu de
-rw------- 1 ... test.txt
certains tutos parlent d'éditer .bashrc mais est-ce que ça gère l'accès aux fichiers créés avec nautilus aussi ?
Du coup pour le pam_umask si ça dit session optionelle dans les demons trouvés par le grep c'est bien /etc/login.defs mais uniquement pour le répertoire de l'utilisateur ?
Hors ligne
Pages : 1