Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/07/2024, à 09: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

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, à 09: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, à 13:29

maxire

Re : mise à jour du masque (umask)

Bonjour

Cassys a écrit :

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.

Cassys a écrit :

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 29/07/2024, à 00: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 smile

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