Lorsqu'on débute sous Linux, on est souvent - voire toujours - confronté à des problèmes liés à la gestion des droits de Linux. Quelques informations pour comprendre comment Linux (et donc ubuntu) gère les droits.

Fichier, dossiers, partitions et droits

Sous Linux, tout est considéré par le système comme un fichier: Les fichiers eux-mêmes, mais aussi les dossiers et les partitions. A tous ces fichiers, le système ou l'utilisateur accordent des droits. Les droits sont en nombre très limité:

  • Read (r): Lire. Accorde un droit de lecture d'un dossier ou d'un fichier
  • Write (w): Écrire. Accorde un droit d'écriture sur un fichier (vous pouvez donc le modifier) ou sur un dossier (Vous pouvez modifier le dossier ou y écrire de nouveaux fichiers ou de nouveaux dossiers
  • Execute (x): Exécuter. Accorde un droit d'exécution d'un fichier. Il peut s'agir d'un script ou d'un logiciel par exemple

Utilisateurs et groupes

Les droits présentés ci-dessus sont donc accordés sur des fichiers à des utilisateurs du système ou à des groupes.

  • Utilisateur: Un utilisateur peut être une personne physique (Vous) ou un processus. Certains logiciels créent, lorsque vous les installez, des utilisateurs nécessaires à leur fonctionnement.
  • Groupe: représentent des groupes auxquels les utilisateurs appartiennent ou qui sont nécessaires au fonctionnement de certains logiciels ou processus du système.

Chaque utilisateur appartient au moins à un groupe, le sien: Si vous créez l'utilisateur Toto, le système crée automatiquement le groupe Toto. Un utilisateur peut également appartenir à d'autres groupes, sans limitation de nombre. Par exemple, pour qu'un utilisateur puisse réaliser des opérations d'administration - comme installer un logiciel via synaptic, il est nécessaire que cet utilisateur appartienne au groupe admin.

Il existe sous linux un utilisateur particulier créé par le système lors de l'installation: root. Cet utilisateur dispose de l'intégralité des droits sur l'ensemble de votre système. Sous Ubuntu, afin de sécuriser les opérations sur le système, cet utilisateur ne peut pas être utilisé pour se connecter. On utilise alors la commande sudo (super user do) pour exécuter des commandes liées au système en disposant temporairement des droits nécessaires.

L'association des utilisateurs/Groupes et des droits

Le système vous permet donc d'associer les droits en lecture/écriture/exécution à des utilisateurs ou à des groupes. Certaines associations sont gérées par défaut par le système:

  • Chaque utilisateur dispose par exemple de tous les droits sur son répertoire personnel (/home/user). C'est ce qui vous permet d'exécuter des fichiers stockés dans votre /home, d'écrire des documents ou de lire votre musique stockée à cet emplacement.
  • Aucun utilisateur - en dehors de root - ne dispose des droits nécessaires aux modifications

Pour connaître les droits affectée à tel ou tel fichier, vous pouvez utiliser Nautilus ou la ligne de commande:

  • Dans Nautilus, un clic droit sur un fichier ou un dossier vous permet d'accéder aux propriétés de ce fichier, dont l'onglet Permissions. Vous y trouverez l'utilisateur et le groupe auxquels appartient ce fichier, ainsi que les droits accordés à l'utilisateur et au groupe en question, ainsi que les droits accordés aux autres groupes.
  • En ligne de commande, il suffit de lister les fichiers ainsi

ls -ltr Cette commande vous proposera un résultat de ce type (ici exécutée sur le dossier /home/partage

drwxrwxrwx 3 root partage 4096 2007-12-08 10:11 partage

Les informations intéressantes sont rwxrwxrwx, soit 3 groupes d'informations (3 fois rwx), représentant les droits de l'utilisateur auquel le dossier partage appartient (donc root), les droits du groupe auquel le dossier appartient (donc partage), les droits accordés à tous les autres groupes. On comprend donc que tout le monde a tous les droits sur ce dossier.

Si le résultat avait été le suivant:

drwxrwxr-- 3 root partage 4096 2007-12-08 10:11 partage

on comprendrait que root et le groupe partage ont tous les droits, alors que les autres groupes n'ont qu'un droit de lecture.