Home chmod
PDF Imprimer Envoyer

chmod est une commande utilisée pour changer les droits des fichiers sur un système unix. Bien que chmod soit beaucoup utilisé par les administrateurs, peu d'entre eux connaissent les risques du chmod 777


 

Rappel sur l'influence des droits sur les fichiers et les répertoires

 

Fichier Répertoire
r

Lire

(cat, less, cp)

Lire le contenu du répertoire

(ls)

w

Modifier

(vi,kate)

Modifier le contenu du répertoire

(mkdir, touch, rm)

x

Executer

 

Exécuter le contenu ou traverser

(cd)

 

On remarque que pour supprimer un fichier avec la commande rm ce ne sont pas les droits sur le fichier qui sont pris en compte, mais les droits du répertoire qui contient le fichier.

Exemple 1 :

En tant qu'utilisateur root

Commandes Commentaires

mkdir /rep_root/

Création d'un répertoire qui appartient à root

touch /rep_root/fic_root Création d'un fichier qui appartient à root
echo "bonjour" > /rep_root/fic_root Ecrire "bonjour" dans le fichier
chmod 000 /rep_root/fic_root  Suppression de tout les droits sur le fichier de root
chmod 777 /rep_root/ Tout le monde à tout les droits sur le répertoire et son contenu
ls -ld /rep_root/ drwxrwxrwx  root root  /rep_root/
ls -l /rep_root/fic_root ----------  root root  /rep_root/fic_root

A présent se connecter en t'en qu'un autre utilisateur. (user1 par exemple)

Commandes Commentaires

ls -l /rep_root/

----------  root root  /rep_root/fic_root

cat /rep_root/fic_root cat: /rep_root/fic_root: Permission non accordée  (car pas le droit r sur le fichier)
rm  /rep_root/fic_root

rm: détruire un fichier protégé en écriture fichier régulier `/rep_root/fic_root'?

répondre "y" et valider.  Le fichier à été supprimé

Le fichier à été supprimé alors qu'il n'appartient pas à user1 et que user1 n'a aucun droit dessus !

Il ne faudrai donc jamais placer le droit "w" sur un répertoire pour "other" (dernier groupe de droit)

 

Exemple 2 :

Recréons le fichier fic_root, appartement à roo qui contient le mot bonjour, et qui n'a toujours aucun droit.

En t'en que user1 :

Commandes Commentaires

ls -l /rep_root/

----------  root root  /rep_root/fic_root

cat /rep_root/fic_root cat: /rep_root/fic_root: Permission non accordée  (car pas le droit r sur le fichier)
vi  /rep_root/fic_root

On ne voie pas le contenu du fichier, et vi vous informe que le fichier est protégé.

Modifier tout de même le fichier.

:w Demande de sauvegarde du fichier. Si Vi vous indique "fichier en lecture seule" ajouter ! pour passer outre
:w! Sauvergarde effectué avec succès, alors que vous n'avez pas le droit w sur le fichier !

:q

ls -l /rep_root/fic_root

----------  user1 user1 /rep_root/fic_root

Explication : L'ajout du ! dans une commande vi demande à vi d'exécuter la commande par n'importe quel moyen que ce soit.

Vi à effectué (en votre nom) cette suite de commandes :

rm /rep_root/fic_root  (possible car droit w sur le répertoire)

:w /rep_root/fic_root  (sauvegarde possible car droit w sur le répertoire)

chmod 000 /rep_root/fic_root (vi replace les droits du fichier d'avant sa suppression)

 

Le fichier appartient à présent à user1 car c'est user1 qui a crée ce fichier.