| |||||||||||||||||||||||||||||||||||||||||||||
Les droits d'accès aux fichiers
1.1-Les permissionsPetite précision :Le mot "root" désigne plusieurs éléments différents : root désigne la racine du disque, mais en ce qui nous concerne nous considèrerons, root comme le nom du compte de l'administrateur système ayant tous les droits. /root étant le répertoire $HOME de l'administrateur (compte root). Rappel: #!/bin/sh # /droopy/ma.conf affichage de mes fichiers de configuration # echo 'Recuperation des infos de fstab, inittab et ld.so.conf .' # copie des fichiers dans config.perso cat /etc/fstab /etc/inittab /etc/ld.so.conf >/droopy/config.perso # affichage du nombre de lignes écrites dans config.perso wc -l /droopy/config.perso # affichage du contenu de config.perso less /droopy/config.perso #Et pourquoi pas l'imprimer ? lpr config.perso # Fin du script ma.confQue vous avez rendu exécutable avec la commande : # chmod 755 /droopy/ma.conf Nous avons vu que la commande ls -l nous affiche le détail des informations sur les fichiers :
le premier signe - indique un fichier ordinaire: -rwxr--r--
d indique un repertoire: drwxr--r--
b indique un pilote de périphérique: brw-rw----
l indique un lien symbolique: lrwxrwxrwx
Suivi de 3 lettres qui correspondent aux droits du propriétaire "owner"(utilisateur du compte) Les 3 lettres suivantes correspondent aux droits du groupe "group" auquel appartient l'utilisateur. Les 3 dernières lettres correspondent aux droits accordés aux autres groupes "other".(utilisateurs ne faisant pas partie du même groupe). Ces 3 lettres représentent les permissions : r de lecture w d'écriture x d'exécution - aucune permission La seconde partie -rwxr--r--- 1 root root 200 jan 5 21:37 ma.conf* Indique le propriétaire root et le groupe root. Mais les permissions rwxrwxrwx d'un fichier ne sont pas suffisantes pour autoriser, aux utilisateurs, l'accès (lecture/écriture) à ce fichier ! Il faut également que le répertoire qui contient ces fichiers ait les mêmes permissions, et ce jusqu'au niveau de la racine : Par exemple (mauvais) si ce fichier est dans /usr/local/production/vente/fichier, il faudra que tous les répertoires menant à.. /vente/fichier aient les mêmes droits d'accès que les fichiers qu'ils contiennent pour autoriser les utilisateurs du groupe et/ou pas les autres utilisateurs (reste du monde). Je m'explique, si le répertoire /usr/local/production a les droitsdrwxrwx--- 3 root product 1024 Janv 3 16:35 /usr/local/production même si : drwxrwxrwx 3 root product 1024 Janv 3 16:35 /usr/local/production/vente : Personne d'autre que root et les utilisateurs du groupe produc ne pourront atteindre le répertoire production/vente/. Donc par sécurité et pour une question de facilité, l'administrateur doit placer les fichiers(rwxrwxr-x) accessibles aux autres utilisateurs, en dehors d' un chemin contenant les fichiers système : il est plus facile de changer les permissions d'un répertoire que les permissions de tous les fichiers qu'il contient. Par exemple pour refuser l'accès du répertoire /droopy à tous les utilisateurs exepté à l'utilisateur droopy : Seul l'administrateur (compte root, $HOME = /root), peut modifier les permissions de /root/, car il est par définition le propriétaire du compte root.
| |||||||||||||||||||||||||||||||||||||||||||||
1.2-Changer les permissions_La commande chmod permet d'effectuer la modification des droits d'accès aux fichiers et répertoires.Seul le propriétaire peut changer les permissions. La syntaxe de chmod est :
chmod [ a, u, g, o ] [ +, - ] [ r, w, x ] [ non.de.fichier ]
argument valeur permissions
l'argument donne les droits : a = à tous les utilisateurs "all"
u = au propriétaire "owner"
g = aux utilisateurs du groupe "group"
o = aux autres groupes "other"
la valeur + ajoute
- enlève
les permissions autorisent r = la lecture
w = l'écriture
x = l'exécution
Par exemple, pour modifier le fichier /droopy/ma.conf , qui avait été rendu exécutable avec la
commande chmod u+rx ma.conf , de sorte que tous les utilisateurs puissent l'exécuter, il faut utiliser la commande :# chmod og +x ma.conf et la même chose pour son répertoire droopy : # chmod og +x /droopy maintenant si je veux enlever le droit d'exécution aux utilisateurs des autres groupes : # chmod o-x ma.conf Il est possible, et plus pratique, d'utiliser '=' à la place de ' +, - ' : # chmod u=rwx,g=rx,o=r /droopy /doopy/ma.conf Vérifiez avec # ls -l /droopy Un autre mode plus rapide permet de chiffrer la commande chmod : chmod 755 /droopy/ma.conf. ce qui correspond à rwxr-xr-x, 7 donnant tous les droits et 5 les droits de lecture et d'exécution. Voici un tableau pour son utilisation :
C'est à vous de donner les droits d'accès à vos fichiers, mais regardez le chapitre suivant qui offre une possiblité supplémentaire, en créant un lien sur un fichier pointant dans un répertoire n'ayant pas les mêmes droits... ?
| |||||||||||||||||||||||||||||||||||||||||||||
Ce que la commande ls -l affiche :-rwxr--r--- 1 root root 200 jan 5 21:37 /droopy/ma.conf*Correspond à : type de fichier et permissions, nombre de liens physiques, utilisateur, groupe, taille en octets, date et heure, le nom du fichier et l'astérisque '*' indique qu'il s'agit d'un fichier exécutable. Si vous lancer # ls -l /dev, vous obtiendrez deux chiffres séparés par un virgule à la place de la taille. Ce sont les numéro majeur et numéro mineur: Le numéro majeur indique le type du périphérique. Le numéro mineur précise le périphérique de ce type. si vous avez 3, 0.. date...heure /dev/hda, 3 (numéro majeur) designe un disque dur et 0 (numéro mineur ) le disque hda (C:). Les fichiers spéciaux du GUIDE-DU-ROOTARD donne la liste des pilotes de périphérique. |
Copyleft Michel Luc cern91@tuxfamily.org
|
Document sous licence FDL
|