{{tag>sysadmin linux filesystem file permissions}}
====== Redéfinir les droits d'accès par défaut des fichiers et dossiers ======
Le fonctionnement des droits d'accès aux fichier et dossiers est abordée dans le wiki [[sysadmin:linux:gestion-droits-access]].
Lorsque un nouveau fichier ou un nouveau répertoire est créé, le shell lui applique des droits d'accès par défaut. Ces droits par défaut sont la soustraction des permissions prédéfinies par le système et des permissions umask
permissions affectées = permissions système - permissions umask
* Les permissions prédéfinies du système ne sont pas altérables et sont **0666 pour les fichiers** et **0777 pour les dossiers**.
* Les permissions umask sont modifiables selon les besoins et sont le plus souvent initialement 0022 pour root et 0002 pour les autres utilisateurs.
Les quatre variables numériques utilisées pour le calcul des permissions par défaut sont désignées "permissions umask", "valeurs umask" ou "paramétrages umask" selon les documentations.
Si aucune modification n'est faite sur les permission umask, les fichiers crées par root obtiennent les permissions 0644 (0666 - 0022) et les dossier 0755 (0777 - 0022) comme présenté dans le tableau ci-dessous:
^ Permissions ^ Fichiers |||^ Dossiers ||||
^ Perm système ^ 0 ^ 6 ^ 6 ^ 6 ^ 0 ^ 7 ^ 7 ^ 7 |
^ umask ^ 0 ^ 0 ^ 2 ^ 2 ^ 0 ^ 0 ^ 2 ^ 2 |
^ Perm défaut ^ 0 ^ 6 ^ 4 ^ 4 ^ 0 ^ 7 ^ 5 ^ 5 |
===== Modification temporaire =====
La commande **umask** permet de redéfinir les valeurs umask. Appelée sans argument elle affiche les permissions umask en cours d'utilisation:
umask
0002
L'argument -S fournit un affichage symbolique des permissions obtenues:
umask -S
u=rwx,g=rwx,o=rx
Pour redéfinir temporairement les droits par défaut, invoquer umask avec les valeurs souhaitées:
umask 0077
umask -S
u=rwx,g=,o=
===== Modifications permanentes =====
Selon les besoins, le paramétrage des permissions peut être définit à différents niveaux mais pour que le paramétrage soit correct il faudra prendre en compte la façon dont le shell est invoqué: login shell ou non login shell.
==== login shell ====
Le login shell est l'environnement définit juste après authentification. Il permet de construire une interface personnalisée pour interagir avec le système.
==== non login shell ====
Environnement shell supplémentaire construit depuis le login shell pour effectuer une tache spécifique. Puisqu'il est définit après le login shell il hérite de cet environnement qu'il peut redéfinir.
Selon l'utilisateur et le mode d'accès au shell, les permissions umask peuvent être définies dans quatre fichiers différents:
^ Fichier de conf ^ Type de conf ^ Utilisateur ^ Application ^ Type de shell |
| /etc/profile | défaut | tous | à la connexion | login shell |
| /etc/bashrc | défaut | tous | shell complémentaire | non login shell |
| /etc/profile.d/umask.sh | défaut | tous | connexion et shell complémentaire | login et non login shell|
| ~/.bashrc | personnalisée | util courant | connexion et shell complémentaire | login et non login shell |
===== Références =====
* https://www.computernetworkingnotes.com/rhce-study-guide/how-to-change-default-umask-permission-in-linux.html