Le fonctionnement des droits d'accès aux fichier et dossiers est abordée dans le wiki 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
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 |
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=
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.
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.
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 |