Ce paragraphe vous explique comment contrôler les permissions attribuées automatiquement aux fichiers créés par un utilisateur. La manipulation décrite est adaptée à Ubuntu équipée du bureau Gnome. Un système légèrement différent peut appeler une adaptation des commandes énoncées.
Il existe plusieurs fichiers pour contrôler le réglage de ces permissions. Le fichier $HOME/.bashrc charge la configuration de l'utilisateur a qui appartient ce fichier.
Nous souhaitons que le propriétaire ait tous les droits mais que les autres personnes n'en ait aucun (attitude sécuritaire).
Commençons par ouvrir le fichier .bashrc du compte.
Pour ce faire, taper dans le terminal la ligne suivante :
gedit $HOME/.bashrc
A la fin du fichier, ajouter les 2 lignes suivantes :# Masque de permissions pour que les fichiers créés soit par défaut lisibles et inscriptibles seulement par leur utilisateur propriétaire
umask 077
Ouvrons le fichier /etc/profile (pour régler l'ensemble des comptes).
Pour ce faire, taper dans le terminal la ligne suivante :
gksudo gedit /etc/profile
A la fin du fichier, ajouter les 2 lignes suivantes :
# Masque de permissions (fichiers créés lisibles et inscriptibles seulement par leur propriétaire)
umask 077
Nous souhaitons que ces modifications soient prises en compte dans l'explorateur graphique et pas uniquement à la console. Pour ce faire, taper dans le terminal la ligne suivante :
gedit $HOME/.profile
Écrire les 2 lignes suivantes :
# Masque de permissions (fichiers créés lisibles et inscriptibles seulement par leur propriétaire, y compris en interface graphique - Nautilus)
umask 077
ppliquer la commande suivante :
chmod +x $HOME/.profile
Les permissions peuvent êtres : lisible, inscriptible, "exécutable ou parcourable pour un répertoire". La permission est exprimée avec un lettre (r, w ou x) ou bien avec un chiffre (4, 2 ou 1). Les permissions sont réglables pour 3 entités : l'utilisateur, son groupe d'appartenance, les autres personnes.
r = 4
w = 2
x = 1
- = 0
Pour un fichier, x = exécutable
Pour un dossier, x = traversable
Les permissions s'expriment sous la forme suivante :
fichier {droits de l'utilisateur} {droits du groupe} {droits des autres}
Lorsque le fichier est lisible pour l'utilisateur, son groupe d'appartenance et les autres personnes on a :
fichier r-- r-- r--
fichier 444
fichier rwx rw- ---
fichier 760 (on obtient 7 en faisant lecture 4 + écriture 2 + exécution 1)
fichier rw- --- ---
fichier 600
Il faut appliquer un "masque", c'est-à-dire dire à Linux de diminuer les droits par défaut (777) pour atteindre les droits restreints voulus (600).
Le principe de calcul est permissions=777-umask.
On cherche à obtenir les permissions pour l'utilisateur 6=7-1, pour le groupe 0=7-7, pour les autres 0=7-7
=> umask 177
En réalité c'est un peu plus compliqué et cet umask n'est pas exploitable. Avec cet umask, les dossiers sont créés en rw. Or, pour être utilisables, les dossiers doivent être traversables, c'est-à-dire posséder le droit "x". Il faut donc accepter de conférer les permissions rwx (7) aux dossiers lors de leur création.
On cherche donc en fait à obtenir les permissions 700.
=> umask 077
Rassurons-nous, les fichiers normaux ne sont jamais créés exécutables même avec ce réglage. Seuls les répertoires héritent des permissions rwx à leur création. Pour les fichiers simples, umask 077 reste donc l'équivalent de umask 177. Pour rendre un fichier exécutable, il faudra effectuer un acte volontaire supplémentaire (chmod u+x fichier).
The most secure umask is 077 which will give newly created files the default permissions of rw——- and will give newly created directories the default permissions of rwx——. If a user needs a file to be readable for others he can simply change the permissions of such a file. This assumes a user understands how to change the permissions of a file.
The easiest umask for new users is 022 which will give newly created files the default permissions of rw-r–r– and will give newly created directories the default permissions of rwxr-xr-x. This umask is easier for the user because the user doesn’t have to play with permissions to make a file available for reading to others. This assumes a user understands his files can be read by other users so he needs to trust his fellow users.
Experienced users should change the default umask to 077. You can change the system-wide default umask in /etc/profile.
So far we've only discussed ways set an environment variable value temporarily until the shell session in which it was set is closed. One may wonder if there is a way to somehow permanently set an environment variable to a certain value. Note: The shell config files mentioned below are only meant to be read by particular shells and desktop environments and should not be used.
The below are not recommended but the previous solution (?) provided on this page did not work with the 10.04 desktop release. .pam_environment is not naturally procesed with the distribution.
Not recommended:
Environment variable settings that affect the system as a whole (rather then just a particular user) should not be placed in any of the many system-level scripts that get executed when the system or the desktop session are loaded, but into>