Le droit de savoir

Non je ne vais pas faire de parodie de cette émission de télé, mais une chose essentielle à connaitre c’est la gestion des droits !

Vous allez devoir vous y pencher sérieusement, car certaines choses ne marcheront pas à cause seulement d’un problème de droit.

Rassurez-vous, avec une commande le tour est joué !

Nous allons lister le bureau dans le répertoire home de mon utilisateur. La commande ls -l, soit ll liste les fichiers présents dans le répertoire mais en plus nous donne les droits correspondant aux fichiers.

Dans un terminal, tapez la commande ls -l /home/samn0/Bureau ou ll /home/samn0/Bureau par exemple:

 

# ll /home/samn0/Bureau/
total 28
-rw——- 1 samn0 share 5460 dec. 20 2009 Home.desktop
-rw-r–r– 1 root root 1314 mars 9 2010 titi
-rw-r–r– 1 root share 193 fevr. 20 2010 rsync.sh
-rwxr-xr-x 1 root root 1314 mars 9 2010 S99webmin
-rw——- 1 samn0 share 6004 dec. 20 2009 trash.desktop

 

Les droits apparaissent en premier, intéressons nous à celui de titi.

-rw-r–r– C’est quoi ces tirets, ces r et ce w ?

Le premier – correspond à la nature du fichier.

  • – signifie que c’est un fichier
  • d signifie que c’est un répertoire
  • l signifie que c’est un lien symbolique

Ensuite nous avons 9 caractères, que nous pouvons scinder en 3 groupes. Dans l’ordre.

  1. Propriétaire
  2. Groupe
  3. Invité

Chaque groupe a 3 critères.

Dans notre exemple nous avons : -rw-r–r–

 

  • rw- correspond au propriétaire
  • r– correspond au groupe
  • r– correspond aux invités

 

Définition des droits, nous avons 3 caractères possibles par groupe soit RWX.

 

  • R signifie READ, soit lecture, les droits pour lire un fichier
  • W signifie WRITE, soit l’écriture, les droits pour écrire un fichier
  • X signifie eXECUTION, soit l’exécution, les droits pour exécuter un fichier

 

Dans notre exemple nous avons : -rw-r–r–

 

  • Le propriétaire a donc les droits de lecture et d’écriture sur /home/samn0/Bureau/titi
  • Le groupe a les droits de lecture sur /home/samn0/Bureau/titi
  • Les invités ont le droit de lecture sur /home/samn0/Bureau/titi

 

Différence entre propriétaire, groupe et les invités.

Le propriétaire c’est celui qui est le propriétaire du fichier. Soit parce qu’il a crée soit parce qu’il a modifié les droits par la suite.

Le groupe c’est un ensemble de personne que le propriétaire partage avec un ensemble de plusieurs personnes. Le groupe est composé d’au moins une personne. Par exemple, à votre bureau à la compta vous êtes 3 personnes qui ont le droit de modifier les paies. Mais dans le bureau d’à coté la technique, ils sont 5 personnes et seront donc les invités pour lire, éditer les fichiers de la compta.

Les invités ne sont en aucun cas les propriétaires, ni membres du groupe. Ils sont donc les invités. Si aucun droit ne leur ai alloué, ils ne pourront pas lire les fichiers en question.

Continuons la lecture de notre exemple :

 

–rw-r–r– 1 root root 1314 mars 9 2010 titi

 

La lecture du fichier se fait comme ça de gauche à droite :

  • root est le propriétaire du fichier, par ailleurs il a les droits d’écriture et de lecture.
  • root est le groupe auquel le fichier appartient, il a les droits de lecture.
  • 1314 est la taille du fichier en Ko
  • mars 9 2010 signifier que ce fichier a été crée le jour de la sainte Françoise ^^
  • titi c’est le nom du fichier

 

Pour modifier un fichier n’importe lequel, vous aurez besoin de la commande chmod (change mode).

 

chmod mode+permission arguments /chemin_complet_nom_du_fichier

 

# chmod u+rwx /home/samn0/Bureau/titi

 

Là je me donne les droits au propriétaire (U) de lecture, d’écriture et d’exécution (X) au fichier titi

Voici les modes de la commande chmod.

 

  1. u propriétaire
  2. g groupe
  3. o others soit invités
  4. a all, tous.

 

Voici les permissions de la commande chmod.

 

  1. r read, lecture
  2. w write, écriture
  3. x exécution, exécution

 

Voici les arguments principaux de chmod. Le arguments de n’importe quelle commande ont un tiret avant la lettre.

 

  • -R récursive, applique la commande à tous les fichiers et sous répertoire de manière récursive.

 

A noter qu’un mode va de paire avec une permission.

Pour simplifier tous ces RWX, il est possible de passer la forme octale soit sous forme de chiffre.

Wikipédia nous résume parfaitement tout cela !

Personnellement j’opte pour cette méthode, les chiffres c’est plus facile à retenir !

chmod NNN argument /chemin_complet_nom_du_fichier (N est un chiffre compris entre 0 et 7)

 

# chmod 744 /home/samn0/Bureau/titi

 

Comme précédemment, je donne les droits au propriétaire (U) de lecture, d’écriture et d’exécution (X) au fichier titi

Vous êtes pas forts en calcul mental ?

 

Allez faire un tour sur cet excellent calculateur de droit octal !

 

Bon les droits c’est bien mais comment on fait pour changer le propriétaire ou le groupe ?

Grâce à deux commandes qui ont le même format et le même argument que chmod.

 

  • chown change owner, changer le propriétaire.

 

Le format est : chown propriétaire argument chemin_complet_nom_du_fichier

 

# chown titi /home/samn0/Bureau/titi

 

  • chgrp change groupe, changer le groupe

 

Le format est : chgrp groupe argument chemin_complet_nom_du_fichier

 

# chgrp titi /home/samn0/Bureau/titi

 

Cool on sait presque tout sur les droits, enfin moi j’ai eu un cas bien chiant dernièrement ! Dovecot n’arrivait pas à livrer le courrier à un deuxième utilisateurs local.

 

Qu’est-ce que Dovecot vient foutre là ? Disons que c’était un problème de droit, merci les logs de m’avoir mis sur la piste !

J’ai du me pencher sur les droits spéciaux ! Hein kézako ?

 

Le fichier a un propriétaire et un groupe, mais parfois un utilisateur a besoin d’utiliser ce dit fichier pour l’exécuter !

Et si on mettait X pour les autres, comme ça pas de souci. Effectivement ça va marcher mais ça va vite poser des problèmes de sécurité !

 

D’où les droits spéciaux, au lieu de donner les droits au fichier, on donne les droits à la commande !

 

Le système, au moment de l’exécution de la commande, endosse l’identité du propriétaire au lieu de l’utilisateur qui a lancé la commande.

 

Quand un utilisateur se connecte sur un système GNU/Linux, il détient 2 UID (UserIDentity) et 2 GID (GroupIDentity) : le réel et l’effectif.
Au moment de l’exécution d’une commande les UID et GID sont les réels,les effectifs sont attribués à la commande.
Quand les droits d’endossement ne sont pas positionnés, alors les UID et GID effectifs sont identiques aux UID et GID réels.
Si les droits d’endossement sont positionnés alors l’UID et/ou GID effectifs sont ceux de la commande. Ce qui veut dire que les UID et GID effectifs sont ceux qui contrôlent les droits d’accès à une commande

 

C’est une bonne explication de la part de Commentçamarche.net, pour une fois que je trouve une solution sur ce site je me permets de le mettre en avant ^^

Pour mettre à profit tout ça, c’est simple. On donne les droits d’endossements comme ceci :

 

chmod 4000 pour l’endossement de l’identité du propriétaire.
chmod 2000 pour l’endossement de l’identité du groupe.
Soit :
# chmod 6744 titi /home/samn0/Bureau/titi

 

La j’ai endossé l’identité du propriétaire et du groupe ! Et par magie mon Dovecot me livre bien mon courrier pour mon deuxième utilisateur !

Voilà ce chapitre est fini, la question des droits est primordiale pour vous le prouver nous allons nous en servir pour monter notre serveur SAMBA.

Mais avant passons à l’install’ des programmes avec DNF.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.