Tutoriels Linux Debian

Gérer plusieurs clés SSH de manière simple et automatique Lorsqu'on développe on utilise parfois une paire de clés SSH public/privée pour s'authentifier auprès d'un serveur distant. On utilise un système de clé publique/ clé privée couplée à un agent...

Lire la suite

Héberger son site internet sur son serveur dédié... Avant d'entrer dans le vif de ce tuto, notons que pour des raisons pratiques, sur le serveur dédié : les sites seront installés sur /home/nomdusite/. chaque site contient un répertoire logs/...

Lire la suite

Compilation du noyau sous debian ( kernel ) La compilation du noyau Debian peut être une étape nécessaire dans l'exploitation du système. La gestion des pilotes de périphériques est géré différemment sous Linux que sur Windows. Les pilotes...

Lire la suite

TCPDump ou comment sniffer le trafic TCP sous Linux... Tcpdump est un outil d'analyse réseau très répandu chez les amateurs de sécurité de l'information et de routage réseau. Tcpdump affiche les en-têtes de paquets d'une interface réseau en fonction...

Lire la suite

Les commandes top et htop La commande top La commande top permet de lister l'ensemble des processus et de ressources utilisées sur votre système linux, Unix ou BSD. [bash] top [/bash] Précisons la 3ème ligne : Options...

Lire la suite

  • Prev
  • Next

Les droits d’accès aux fichiers

Category : Commandes Linux

Les droits d’accès aux fichiers sous Debian et plus généralement sous Linux est inspiré de la gestion des droits sous Unix.
Pour un fichier, on attribue des droits à des catégories d’utilisateurs du système (4)

  • les droits du propriétaire ou utilisateur que l’on note u comme user
  • les droits du groupe auquel le propriétaire appartient noté g comme group
  • les autres utilisateurs noté o comme other
  • tous noté a comme all

Pour chaque type d’accès, il y existe 3 types de droits :

  • droit d’exécution x (eXecute)
  • droit d’écriture w (Write)
  • droit de lecture r (Read)

Un droit attribué à une catégorie d’utilisateurs s’appelle un mode

Lorsqu’on crée un fichier, le système attribut des droits par défaut
selon le « masque de utilisateur » (le user mark, à l’origine de la commande umask) :

  • Lecture, écriture et exécution pour le propriétaire
  • Exécution et Lecture pour le groupe
  • Exécution et Lecture pour les autres

Le système note les catégorie d’utilisateurs linéairement de gauche à droite : les droits de l’utilisateur propriétaire, puis ceux du groupe et enfin les droits des autres.
Idem pour les droits : r pour la lecture, w pour l’écriture puis x pour l’exécution
Ce qui donne :

rwxr-xr-x      un_fichier.txt

Pour changer les droits sur un fichier, il y a 3 possibilités :
+ l’ajout de droits
- la suppression de droits
= la fixation de droits

Imaginons que vous avez créé un fichier texte que nous appellerons un_fichier.txt.
Vous êtes donc propriétaire de ce fichier et les droits par défaut s’appliquent.
Si vous souhaitez donner les droits en écriture à un collègue appartenant
au même groupe système. Rien de plus simple, la notation est la suivante :

chmod [ugoa] [+-=] [rwx] nom_du_fichier

Dans le cas présent, cela donne :

chmod g+w un_fichier.txt

Autre exemple, vous voulez fixer les droits en exécution uniquement à votre groupe ainsi qu’aux autres utilisateurs :

chmod ug=x un_fichier.txt

Il existe une autre notation pour attribuer ou changer les droits d’un fichier.
Il s’agit de la notation octale :
1 pour l’execution
2 pour l’écriture
4 pour la lecture

Ainsi, les 2 commandes suivantes sont équivalentes :

chmod  751 un_fichier.sh
chmod  u=wrx,g=rx o=x un_fichier.sh

Remarquez la « , » qui permet d’attribuer des droits à plusieurs catégories d’utilisateurs en une seule commande.

Le propriétaire actuel d’un fichier et le root peuvent changer l’utilisateur propriétaire du fichier avec la commande

chown nouvel_utilisateur nom_de_fichier

Pour appliquer les changements à tous les sous-fichiers et sous-répertoires, ajoutez l’option -R

chown -R nouvel_utilisateur nom_de_fichier

De même, chgrp permet de changer le groupe propriétaire

chgrp -R utilisateur nom_de_repertoire

On peut aussi changer à la fois l’utilisateur propriétaire et le groupe propriétaire
avec la commande chown suivie du nom d’utilisateur et du nom du groupe séparé par . ou :

chown -R utilisateur.groupe un_fichier.txt
chown -R utilisateur:groupe un_fichier.txt

Si l’utilisateur et le groupe ont le même nom, comme pour le root appartenant au groupe root,
on joint le nom d’utilisateur et le nom de fichier par . ou :

chown utilisateur.un_fichier.txt
chown utilisateur:un_fichier.txt

Reste les droits spéciaux ….
La commande passwd correspondant au fichier /usr/bin/passwd permet à un utilisateur de modifier son mot de passe.
Le fichier passwd du groupe bin doit pouvoir écrire dans le fichier /etc/passwd dans lequel seul root peut écrire.
A cet effet, on attribue un droit spécial appelé setuid au fichier /usr/bin/passwd.

chmod u+s fichier

/usr/bin/passwd est alors exécuté avec les droits de son propriétaire (pour le cas root), et non avec ceux de l’utilisateur qui le lance.

De la même façon, un exécutable peut être setgid, et s’exécuter avec les droits du groupe auquel il appartient.
Quand un répertoire est setgid, tous les fichiers créés dans ce répertoire appartiennent au groupe propriétaire du répertoire.
Quand plusieurs personnes travaillent sur un projet commun, un groupe système dédié au projet est créé.
Un répertoire est créé avec le droit setgid appartenant à ce groupe.
Les développeurs peuvent ainsi créer leurs fichiers dans ce répertoire avec les permissions 664: tout le groupe peut alors écrire n’importe quel fichier, vu que tous les fichiers appartiennent au groupe.

chmod g+s fichier_ou_repertoire

Seul le propriétaire et le root peuvent fixer le bit setuid et setgid. la notion de setuid ne s’applique pas aux répertoires.

Enfin, un exécutable peut être « sticky », cela signifie qu’il reste en mémoire même après la fin de son exécution, pour pouvoir être relancé plus rapidement.
Seul l’administrateur système peut positionner le sticky bit.
Un utilisateur qui a le droit d’écrire dans un répertoire peut effacer n’importe quel fichier de ce répertoire. Ca peut être très gênant par exemple pour le répertoire /tmp, dans lequel tout le monde a généralement le droit d’écrire. Pour y remédier, on positionne le sticky bit; ainsi, un utilisateur ne peut effacer que les fichier qui lui appartiennent :

chmod +t fichier_ou_repertoire

setuid, setgid et sticky bit se place juste avant les droits en lecture, écriture et exécution des catégories utilisateurs :

rwsr-sr-x  vaut rwxr-xr-x avec setuid et setgid

En notation octale …

chmod 4777 - setuid, lecture, écriture et exécution pour tout le monde
chmod 2777 - setgid, lecture, écriture et exécution pour tout le monde
chmod 1777 - sticky, lecture, écriture et passthru pour tout le monde pour un répertoire
chmod 6777 - setuid, setgid, lecture, écriture et exécution pour tout le monde
VN:F [1.9.22_1171]
Rating: 7.0/10 (4 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
Les droits d'accès aux fichiers, 7.0 out of 10 based on 4 ratings
Be Sociable, Share!

Soutenez le blog :)

Leave a Reply