Protection des biens informatiques et des données personnelles
Liens ±
--

Contrôler les permissions attribuées aux fichiers créés ×

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.

Les fichiers de configuration

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.

Les corrections à apporter

Nous souhaitons que le propriétaire ait tous les droits mais que les autres personnes n'en ait aucun (attitude sécuritaire).

Au premier

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

Au second

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

Au troisième

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

Explications

Permissions attribuées aux fichiers créés par l'utilisateur -- umask (= user mask)

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

Lorsque le fichier est lisible, inscriptible et exécutable pour l'utilsateur, mais pas exécutable pour le groupe, et personne d'autre ne peut lire le fichier :

fichier rwx rw- ---
fichier 760 (on obtient 7 en faisant lecture 4 + écriture 2 + exécution 1)

On souhaite que l'utilisateur crée des fichiers et puisse les lire, c'est-à-dire que les permissions pour ses fichiers soient :

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).

--

Éléments de langage de niveau avancé

http://doc.ubuntu-fr.org/permissions?s[]=umask

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.

https://help.ubuntu.com/community/EnvironmentVariables

Persistent environment variables

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.

Session-wide environment variables

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:

System-wide environment variables

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>

Not recommended: Note: When dealing with end-user/home desktop systems may be appropriate to place settings in the user's ~/.pam_environment files discussed above rather then the system-wide ones, since those files do not require one to utilize root privileges in order to edit and are easily moved between systems.

Sommaire ×