Droits et permissions sous Unix

Signaler

Le système de droits et de permissions sous Unix est un des aspects fondamentaux de la gestion de la sécurité du système.

I. Droits et groupes

1) Le monde selon Unix

Unix sépare le monde en trois catégories du point de vue des droits :

  • l’utilisateur (user) ;
  • le groupe (group) ;
  • le reste du monde (others).

2) Exemple de lecture de droits

En utilisant la commande ls -l monfic.sh par exemple, on obtient :

PB_Bac_05230_numerique1_TT_p171-212_C06_Groupe_Schema_15

La partie -rwxr--r--, indiquant les droits du fichier, se lit en omettant le tiret du début, puis en décomposant en trois parties :

• rwx (utilisateur) ;

• r-- (groupe) ;

• r-- (autres).

Chaque partie est elle-même composée de trois lettres :

• droit de lecture r ;

• droit d’écriture w ;

• droit d’exécution x : on peut exécuter le fichier en l’invoquant par son nom, dans cet exemple : ./monfic.sh.

On sait donc que monfic.sh est accessible en lecture au groupe Staff et aux autres.

On sait en outre que le fichier appartient à l’utilisateur « roza ».

3) Les droits d’un répertoire

Créons un répertoire www dans notre HOME et lisons les droits correspondants avec la commande ls -l www, on obtient par exemple :

PB_Bac_05230_numerique1_TT_p171-212_C06_Groupe_Schema_16

Le d initial signifie qu’il s’agit d’un répertoire.

À noter

Le droit x pour un répertoire est le droit de traverser ce répertoire.

II. Changer des droits

1) La commande chmod

Seul le propriétaire d’un fichier (ou l’utilisateur « root ») peut changer ses permissions d’accès. Il le fait avec la commande chmod dont voici quelques exemples d’utilisation.

Droits

Syntaxe

Donner les droits de lecture au groupe g

chmod g+r monfic.sh

Donner les droits d’écriture au propriétaire u

chmod u+w monfic.sh

Donner les droits d’exécution aux autres (others) o

chmod o+x monfic.sh

Donner les droits d’exécution à tous

chmod ugo+x monfic.sh

À noter

On peut aussi utiliser la lettre a (all) en raccourci à la place de ugo.

2) Droits symboliques et numériques

Il est également possible d’utiliser un codage octal pour les droits.

L’écriture symbolique : rwx r-x r-x

correspond à l’écriture binaire : 111 101 101 soit 755 en octal.

Par exemple : chmod 755 monfic.sh donne les droits -rwxr-xr-x au fichier monfic.sh.

3) Lancement d’un script et fichiers exécutables

On peut lancer un script en l’invoquant par son nom s’il est exécutable. On précise parfois que le script est dans le répertoire courant en ajoutant ./ devant son nom :

PB_Bac_05230_numerique1_TT_p171-212_C06_Groupe_Schema_13

Si le script n’est pas exécutable, on peut toujours le lancer en tapant :

PB_Bac_05230_numerique1_TT_p171-212_C06_Groupe_Schema_14

Ces deux méthodes ne sont pas équivalentes : dans le premier cas, un nouveau shell est créé tandis que dans le second, les commandes du script s’exécutent dans le shell courant.

À noter

Tous les fichiers exécutables posent des problèmes potentiels de sécurité, tout fichier exécutable pouvant se transformer en éventuel « cheval de Troie » (logiciel malveillant). Dans un site web par exemple, les fichiers HTML, CSS, images, JavaScript ou PHP n’ont pas à être exécutables, le droit de lecture suffit !