Outils pour utilisateurs

Outils du site


informatique:linux:chmodown

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
informatique:linux:chmodown [2008/06/23 18:24]
benoit
informatique:linux:chmodown [2018/09/06 19:10] (Version actuelle)
Ligne 2: Ligne 2:
  
  
 +===== Vérifier les droits =====
 +
 +Pour voir les droits sur les fichiers et répertoires courants :
 +
 +  ls -l *
 +
 +Résultat :
 +  drwxr-xr-x ​   4 root   ​root ​   4096 jun 23 15:24 home
 +
 +Décomposition du résultat :
 +^type^droits utilisateur^droits du groupe^droits des autres^ ^utilisateur proprio^groupe proprio^taille^date de modif^nom du repertoire ou fichier^  ​
 +|d|rwx|r-x|r-x|4|root|root|4096|jun 23 15:24|home|
  
 ===== Modification des propriétaires d'un fichier ===== ===== Modification des propriétaires d'un fichier =====
Ligne 21: Ligne 33:
  
  
-===== Modification des droits sur un fichier ===== 
  
-Pour voir les droits sur les fichiers et répertoires courants : 
  
-  ls -l * 
  
-Résultat : 
-  drwxr-xr-x ​   4 root   ​root ​   4096 jun 23 15:24 home 
  
  
 +
 +
 +
 +
 +
 +
 +
 +===== Modification des droits sur un fichier =====
 +
 +=== Règles d'​application des droits ===
 +
 +Pour modifier des droits sur un fichier il faut comprendre le tableau suivant :
  
 | ^type^User^^^Groupe^^^Others^^^ | ^type^User^^^Groupe^^^Others^^^
 +^identification|-|u|||g|||o|||
 ^affichage système|-|r|w|x|r|w|x|r|w|x| ^affichage système|-|r|w|x|r|w|x|r|w|x|
 ^valeur numérique|-|4|2|1|4|2|1|4|2|1| ^valeur numérique|-|4|2|1|4|2|1|4|2|1|
  
 +
 +  * L'''​utilisateur''​ est identifié par la lettre **u**
 +  * Le ''​groupe''​ est identifié par la lettre **g**
 +  * Les ''​autres''​ sont identifiés par la lettre **o**
 +
 +Pour chaque **u**ser, **g**roup et **o**thers il est possible d'​appliquer les droits suivants :
 +
 +  * La lecture sur un fichier s'​effectue par la lettre **r** (**R**ead) ou la valeur numérique **4**
 +  * L'​écriture sur un fichier s'​effectue par la lettre **w** (**W**rite) ou la valeur numérique **2**
 +  * L'​exécution d'un fichier s'​effectue par la lettre **x** (e**X**ecute) ou la valeur numérique **1**
 +
 +=== Changement de droit avec les lettres ===
 +Avec cette méthode l'​ajout de droit s'​effectue par le signe **+** et la suppression par le signe **-**
 +
 +Pour ajouter les droits de lecture pour le group : 
 +  chmod g+r file.txt
 +
 +Pour ajouter les droits de lecture et ecriture pour le group : 
 +  chmod g+rw file.txt
 +
 +Pour ajouter les droits d'​exécution à l'​utilisateur (propriétaire): ​
 +  chmod u+x file.txt
 +
 +Pour retirer les droits d'​écriture au autres :
 +  chmod o-w file.txt
 +
 +=== Changement de droit avec les valeurs numériques ===
 +
 +Avec cette méthode le changement de droit s'​effectue par l'​addition des valeurs numériques :
 +  4+2+1 = 7 = rwx
 +  4+2+0 = 6 = rw-
 +  4+0+1 = 5 = r-x
 +  0+0+0 = 0 = ---
 +
 +Il faut faire cette opération pour l'​utilisateur,​ le groupe et les autres en fonction des droits que l'on veut donner pour obtenir 3 chiffre que l'on appliquera dans notre commande. Donc pour donner les droit ''​rwx''​ pour l'​utilisateur,​ ''​r--''​ pour le groupe et rien ''​---''​ pour les autres :
 +  chmod 740 file.txt
 +
 +=== Droits spéciaux: setuid, setgid, sticky bit ===
 +
 +Quand un fichier est exécutable par son propriétaire,​ il peut de plus être ''​setuid''​. Cela signifie que lorsqu'​il est exécuté, il l'est avec les droits de son propriétaire,​ et non avec ceux de l'​utilisateur qui le lance. Par exemple, le programme ''​passwd'',​ qui permet à un utilisateur de modifier son mot de passe, est setuid root (c'est à dire qu'il est setuid et qu'il appartient à l'​utilisateur ''​root''​):​ il doit pouvoir écrire dans le fichier ''/​etc/​passwd''​ (ou ''/​etc/​shadow''​),​ dans lequel seul root peut écrire.
 +
 +De la même façon, un exécutable peut être setgid, et s'​exécuter avec les droits du groupe auquel il appartient.
 +
 +  chmod u+s myscript.sh
 +
 +==== Restaurer les droits et propriétaires sur tout un système ====
 +
 +Il peut arriver que des droits récursif aient été défini par erreur et rende le système "non redémarrable"​.
 +Exemple de commande fatal pour un serveur Linux.
 +  chmod 777 /*
 +
 +Des droits trop permissifs mettent le bon fonctionnement du serveur en péril. Si c'est le cas, il est déconseiller de redémarrer le serveur avant de restaurer les droits.
 +
 +**L'​astuce ci-dessous permet de restaurer les droits d'un linux**
 +
 +Sur un serveur Linux sain, lancer les commandes suivantes :
 +
 +  find / -printf 'chmod %m "​%h/​%f"​\n'​ > restore-chmod.sh
 +  find / -printf 'chown %u:%g "​%h/​%f"​\n'​ > restore-chown.sh
 +  ​
 +Transférer les deux scripts générés sur le serveur cassé et lancer les scripts :
 +  bash restore-chmod.sh
 +  bash restore-chown.sh
 +
 +A noter qu'il peut y avoir des erreurs (notamment sur des fichiers absents).
informatique/linux/chmodown.1214238297.txt.gz · Dernière modification: 2018/09/06 18:59 (modification externe)