Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
utilisateurs:lagrenouille:tutos:les-droits-sous-linux [14/05/2023 18:51] lagrenouille [Introduction] |
utilisateurs:lagrenouille:tutos:les-droits-sous-linux [14/05/2023 19:59] lagrenouille [allons plus loin] |
||
---|---|---|---|
Ligne 42: | Ligne 42: | ||
Correspondances des droits en binaire/octale et leurs significations | Correspondances des droits en binaire/octale et leurs significations | ||
+ | | binaire |octale |droits | explication|| | ||
+ | |000 |0 | --- | aucun droits| | ||
+ | |001 |1 | --x | executable| | ||
+ | |010 |2 | -w- | ecritureb| | ||
+ | |011 |3 | -wx | ecrire + executer| | ||
+ | |100 |4 | r-- | lire| | ||
+ | |101 |5 | r-x | lire + executer| | ||
+ | |110 |6 | rw- | lire + ecrire| | ||
+ | |111 |7 | rwx | lire-ecrire-executer| | ||
- | ===== Installation ===== | ||
===== Utilisation ===== | ===== Utilisation ===== | ||
+ | Représentés par une chaîne de 9 caractères, regroupés 3 par 3 (rwx rwx rwx), définissent les droits des 3 identités (propriétaire, groupe et les autres). | ||
+ | |||
+ | Parmi les nombreuses options de la commande chmod | ||
+ | |||
+ | -v pour verbose (affichage sur la sortie standard STDOUT du résultat de la commande) | ||
+ | |||
+ | -R traiter les répertoires de façon récursive (application de la commande à l’arborescence entière du répertoire en question) | ||
+ | |||
+ | 1. Il y a deux modes d’utilisation de la commande chmod : | ||
+ | |||
+ | de façon littérale | ||
+ | |||
+ | de façon numérique | ||
+ | |||
+ | voir man chmod pour plus d’explication | ||
+ | |||
+ | Exemple sur un répertoire la commande chmod (CHangeMODe) permet de définir et de changer les droits du répertoire et de tous ses sous-répertoires et ses fichiers | ||
+ | |||
+ | **777** donne tous les droits au répertoire ainsi que tous les fichiers de ce répertoire, la commande 777 est donc à éviter. | ||
+ | |||
+ | <code root>Chmod -R 777 tutos/ | ||
+ | :~$ ls -la tutos/ | ||
+ | drwxrwxrwx 5 momo momo 4096 1 mai 19:57 . | ||
+ | drwxrwxrwx 12 momo momo 4096 1 mai 19:57 blogmiao | ||
+ | drwxrwxrwx 11 momo momo 4096 1 mai 19:59 tercop</code> | ||
+ | |||
+ | Interprétation d’une permission 755 ou -rwxr-xr-x : | ||
+ | |||
+ | **u** : un utilisateur existant dans /etc/passwd | ||
+ | |||
+ | **g** : un groupe existant valide de /etc/group | ||
+ | |||
+ | **o** : les autres | ||
+ | |||
+ | *Notation symbolique et octale | ||
+ | |||
+ | Les permissions sont soit la lecture read=r, l’écriture write=w et l’exécution . | ||
+ | |||
+ | |read=r | write=w | execute=x| | ||
+ | | symbole octale | symbole octale | symbole octale | | ||
+ | | 5 binaire de 100 | 2 binaire de 10 | 1 binaire de 001 | | ||
+ | | 7 | 5 | 5 | | ||
+ | | u = utilisateur | g = groupe | o = autres | | ||
+ | | 4+2+1=7 | 4+1=5 | 4+1=5 | | ||
+ | |||
+ | |||
+ | Les systèmes UNIX créent des fichiers et répertoires avec des permissions standard comme suit : | ||
+ | |||
+ | Fichiers | 666 -rw-rw-rw- (6+6+6) | ||
+ | |||
+ | Répertoires | 755 -rwxr-xr-xr (7+5+5 ) | ||
+ | ** | ||
+ | • 644 = rw-r—r—** Lecture, écriture pour le propriétaire / Lecture pour les autres | ||
+ | |||
+ | **• 666 = rw-rw-rw-** Lecture, écriture pour tout le monde | ||
+ | |||
+ | **• 700 =rwx------** Lecture, écriture, exécution juste pour le propriétaire | ||
+ | |||
+ | **• 705 =rwx---r-x** Le propriétaire à tous les droits / Le groupe aucun / Les autres lire et exécuter | ||
+ | |||
+ | **• 755 =rwxr-xr-x** Le propriétaire à tous les droits / Les autres lire et exécuter | ||
+ | |||
+ | **• 764 =rwxrw-r—** Tous droits pour le propriétaire / Lecture, écriture pour le groupe / Lecture seule pour les autres | ||
+ | |||
+ | **• 774 =rwxrwxr—** Tous les droits pour le propriétaire et le groupe / Lecture seule pour les autres | ||
+ | |||
+ | **• 775 =rwxrwxr-x** Tous les droits pour le propriétaire et le groupe / Lecture et exécution pour les autres | ||
+ | |||
+ | Pour changer le propriétaire d’un fichier il faut utiliser la commande **chown** | ||
+ | |||
+ | <code root>chown usager fichier</code> | ||
+ | |||
+ | Votre fichier appartient à root, et vous voulez qu’i appartienne à toto | ||
+ | |||
+ | <code root>chown toto:toto dossier</code> | ||
+ | |||
+ | la commande **chgrp** | ||
+ | |||
+ | Pour changer le groupe d’un fichier : | ||
+ | <code root>chgrp groupe fichier</code> . | ||
+ | |||
+ | La commande « chgrp » est utilisée pour changer le groupe de fichier ou du répertoire | ||
+ | |||
+ | Seul l’utilisateur de la racine peut changer les attributs/processus du fichier | ||
+ | |||
+ | – R Changer l’autorisation sur tous les sous-répertoires du répertoire(et leurs fichiers) | ||
+ | |||
+ | -c Changer l’autorisation pour chaque fichier | ||
+ | |||
+ | chmod 755=Droits de votre utilisateur : Tous les droits (7) | ||
+ | |||
+ | Droits de votre groupe : Lecture et exécution (5) | ||
+ | |||
+ | Droits de tous les utilisateurs : Lecture et exécution (5) | ||
+ | |||
+ | Une bonne protection, pour que personne vienne écrire sur votre fichier, | ||
+ | |||
+ | même pas vous, c’est un chmod 444 | ||
+ | |||
+ | Autres extensions | ||
+ | |||
+ | chmod 666 signifie que tous les utilisateurs peuvent lire et écrire, mais ne s’exécute pas | ||
+ | chmod 744 permet seulement au propriétaire de faire toutes les actions, le groupe et les autres ne sont autorisés que pour lire | ||
+ | |||
+ | chmod 711 permet seulement au propriétaire de faire toutes les actions, le groupe et les autres ne sont autorisés que pour lire | ||
+ | |||
+ | chmod 444 Permettre l’autorisation de lecture pour le propriétaire et tous les autres | ||
+ | |||
+ | Les permissions disponibles pour chaque personne / groupe sont les suivantes : | ||
+ | |||
+ | lecture: Donne le droit de lister (nécessite aussi le droit exécution) et lire dans un répertoire, et/ou lire un fichier. | ||
+ | |||
+ | écriture: Donne le droit de créer, modifier, renommer, supprimer des fichiers et/ou répertoires. | ||
+ | |||
+ | exécution: Pour un répertoire : donne le droit de le traverser pour lire ses sous-répertoires. | ||
+ | |||
+ | Pour un fichier : donne le droit de l’exécuter si c’est un programme ou un script | ||
+ | |||
+ | **''Pour en finir : les droits en chiffres'' :** | ||
+ | |||
+ | |• "4" |pour le droit de lecture (read)| | ||
+ | |• "2" |pour le droit d’écriture (write)| | ||
+ | |• "1" |pour le droit d’exécution (execute)| | ||
+ | |||
+ | =====allons plus loin===== | ||
+ | |||
+ | Les droits spécifiques. Cette gestion des droits n’étant pas suffisante pour certains admins, ceux utilisent **les ACL**. | ||
+ | une autre gestion des droits. (L access control list ou Listes de contrôle d’accès.. | ||
+ | |||
+ | Les listes de contrôle d’accès (ACL) permettent aux administrateurs de logiciels à usages collaboratifs, de donner à certains utilisateurs ou groupes d’utilisateurs le droit d’effectuer certaines actions | ||
+ | |||
+ | (lire, écrire, supprimer) sur des pages déterminées. | ||
+ | |||
+ | on peut donc cacher ou rendre accessibles une ou plusieurs parties d’un logiciels à un groupes ou à un utilisateur, autoriser ou non des accès, des écritures, des suppressions ...etc .... | ||
+ | |||
+ | Nous venons de voir les droits avec les extensions de fichiers suivants : | ||
+ | |||
+ | Normalement acl est installé par défaut, ou tout au moins si l’on a installé un serveur. | ||
+ | |||
+ | si je veux savoir les droits sur mon répertoire images: | ||
+ | |||
+ | <code root> getfacl images/</code> | ||
+ | <code>file: images/ | ||
+ | owner: www-data | ||
+ | group: www-data | ||
+ | user::rwx | ||
+ | group::r-x | ||
+ | other::r-x</code> | ||
+ | |||
+ | |||
+ | ** Autres extensions** | ||
+ | |lrwxrwxrwx |lien symbolique| | ||
+ | |brw-rw--- |periphérique de type blocs| | ||
+ | |crw-rw-rw- |périphérique de type caractère| | ||
+ | |srw |socket| | ||
+ | |prw |pile fifo| | ||
+ | |Nrwxrw--- |certains fichiers réseau| | ||
+ | |||
+ | |||
+ | <code user>ls -lha diaporama</code> | ||
+ | lrwxrwxrwx 1 root root 25 4 juin 2020 diaporama -> /home/malignum/diaporama/ | ||
+ | ls -lha /dev/sda | ||
+ | brw-rw---- 1 root disk 8, 0 6 mai 15:16 /dev/sda | ||
+ | |||
+ | getfacl /dev/sda | ||
+ | |||
+ | getfacl : suppression du premier « / » des noms de chemins absolus | ||
+ | |||
+ | # file: dev/sda | ||
+ | |||
+ | # owner: root | ||
+ | |||
+ | # group: disk | ||
+ | |||
+ | user::rw- | ||
+ | |||
+ | group::rw- | ||
+ | |||
+ | other::--- | ||
+ | |||
+ | le c pour les périphériques de type caractère (ou nœud de périphérique en mode caractère) | ||
+ | |||
+ | <code user>ls -lisha /dev/tty | ||
+ | 11 0 crw-rw-rw- 1 root tty 5, 0 14 mai 08:19 /dev/tty</code> | ||
+ | |||
+ | – le s pour les périphériques de type socket | ||
+ | |||
+ | – le s pour droit SGID ou le droit SUID | ||
+ | |||
+ | Selon le placement du s | ||
+ | |||
+ | rwsrwxrwx, il s'agit d'un droit SUID | ||
+ | |||
+ | rwxrwsrwx, il s'agit d'un droit SGID | ||
+ | |||
+ | Le droit SUID permet d’exécuter un fichier avec les droits du propriétaire du fichier..il faut donc avoir les droits d’exécution, bien souvent ce sera les droits root, donc à utiliser avec précaution... | ||
+ | |||
+ | Le droit SUID est noté ---s------ dans le cas ou s remplace un - ou ---S------, dans le cas ou s cache un x | ||
+ | |||
+ | Sur un répertoire, ce droit permet d’affecter les droits du ropriétaire à tous les fichiers créés dans ce répertoire. | ||
+ | |||
+ | Le droit SGID permet d’exécuter un fichier avec les droits du groupe propriétaire du fichier. | ||
+ | |||
+ | **''Le sticky bit (bit collant)''** | ||
+ | |||
+ | le droit d’écriture signifie que l’on peut créer et supprimer les fichiers de ce répertoire. | ||
+ | |||
+ | Le sticky bit permet de faire la différence entre les deux droits. | ||
+ | |||
+ | Lorsque ce droit est positionné sur un répertoire, il interdit la suppression des fichiers qu’il contient à tout utilisateur autre que le propriétaire. | ||
+ | |||
+ | le Sticky Bit est une autorisation spéciale qui peut être définie sur un répertoire doté d’autorisations « d’écriture » | ||
+ | |||
+ | définies pour le groupe qui y a accès. Ce bit garantit que tous les membres du groupe peuvent écrire dans le répertoire, mais seule la personne qui a créé un fichier, c’est-à-dire le propriétaire du fichier, peut supprimer le fichier. | ||
+ | |||
+ | il est représenté par la lettre t ou T, qui vient remplacer le droit d’exécution x, des autres utilisateurs que le propriétaire et ceux appartenant au groupe du fichier. | ||
+ | |||
+ | ---------t dans le cas ou t remplace un - ou ---------T, dans le cas ou t cache un x. | ||
+ | |||
+ | Ce droit indique que le fichier doit rester en mémoire vive, même si l’on en a plus besoin | ||
+ | |||
+ | Le sticky bit empêche de supprimer des fichiers, il n’empêche pas de les vider de leur contenu | ||
+ | |||
+ | exemple: | ||
+ | |||
+ | je crée le répertoire "rapeteur" | ||
+ | |||
+ | <code user>mkdir rapeteur | ||
+ | chmod +t rapeteur</code> | ||
+ | |||
+ | <code user> ls -lha rapeteur/ | ||
+ | total 16K | ||
+ | drwxr-xr-t 2 momo momo 4,0K 16 mai 17:12 . | ||
+ | drwxr-xr-x 53 momo momo 12K 16 mai 17:12</code> | ||
+ | |||
+ | seule momo pourra supprimer les fichiers dans rapeteur | ||
+ | |||
+ | <code user>chmod o-x rapeteur/</code> | ||
+ | |||
+ | <code user>ls -lha rapeteur/ | ||
+ | total 16K | ||
+ | drwxr-xr-T 2 momo momo 4,0K 16 mai 17:12 . | ||
+ | drwxr-xr-x 53 momo momo 12K 16 mai 17:12 .</code> | ||
+ | |||
+ | la même commande que chmod +t avec : | ||
+ | <code user>chmod 1755 rapeteur/</code> | ||
+ | |||
+ | <code user>ls -lha rapeteur/ | ||
+ | total 16K | ||
+ | drwxr-xr-t 2 momo momo 4,0K 16 mai 17:12 . | ||
+ | drwxr-xr-x 53 momo momo 12K 16 mai 17:12 .. | ||
+ | </code> | ||
+ | |||
+ | ''exemple du fichier tmp'' | ||
+ | |||
+ | <code user>ls -la / |grep tmp | ||
+ | drwxrwxrwt 16 root root 12288 15 mai 00:20 tmp</code> | ||
+ | |||
+ | les 2 commande setfacl (affecter) et getfacl (afficher) qui gèrent les ACL. | ||
+ | |||
+ | Les paramètres les plus utiles sont -s (attribuer), -m (modifier), et -x (supprimer). | ||
+ | |||
+ | u (utilisateur), g (groupe) et o (autres) sont les sujets classiques des opérations des droits d’accès. | ||
+ | |||
+ | Les permissions restent les permissions classiques sous Unix à savoir r, w et x. | ||
+ | |||
+ | Il y a toutes les options suivantes : | ||
+ | |||
+ | |-s |--set=aclset the ACL of file(s), replacing the current ACL| | ||
+ | |-S |--set-file=file read ACL entries to set from file| | ||
+ | |-m |--modify=acl modify the current ACL(s) of file(s)| | ||
+ | |-M |--modify-file=file read ACL entries to modify from file| | ||
+ | |-x |--remove=acl remove entries from the ACL(s) of file(s)| | ||
+ | |-X |--remove-file=file read ACL entries to remove from file| | ||
+ | |-b |--remove-all remove all extended ACL entries| | ||
+ | |-K |--remove-default remove the default ACL| | ||
+ | |-n |--no-mask don’t recalculate the effective rights mask| | ||
+ | |-d |--default operations apply to the default ACL| | ||
+ | |-R |--ecursive recurse into subdirectories --post-order visit subdirectories first| | ||
+ | |-L |--logical logical walk, follow symbolic links| | ||
+ | |-P |--physical physical walk, do not follow symbolic links restore=file restore ACLs (inverse of `getfacl -R’) test test mode (ACLs are not modified)| | ||
+ | |-v |--version print version and exit| | ||
+ | |-h |help this help text| | ||
+ | |||
+ | Nous avons bien 2 façons de lire les droits sur un fichier | ||
+ | |||
+ | avant toute chose: | ||
+ | apt update && apt-get install acl | ||
+ | |||
+ | |||