|
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 chmod est enseigné dans presque toutes nos formations Linux et Unix, et approfondi dans les formations avancées.
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. Vi vous indique fichier en lecture seul ajouter ! pour passer outre | | :w! | sauvergarde effectuer 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 à effectuer (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 à user1 car c'est user1 qui a crée ce fichier.
|