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 19:31] lagrenouille [Utilisation] |
utilisateurs:lagrenouille:tutos:les-droits-sous-linux [14/05/2023 20:15] lagrenouille [quelques explications sur kezako: id, inodes, soket, umask] |
||
---|---|---|---|
Ligne 192: | Ligne 192: | ||
Nous venons de voir les droits avec les extensions de fichiers suivants : | 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: | ||
+ | <code root>apt update && apt-get install acl</code> | ||
+ | |||
+ | <code root>ls -lisha /usr/sbin/biosdecode | ||
+ | 1182299 24K -rwxr-xr-x 1 root root 24K 17 mai 2021 /usr/sbin/biosdecode</code> | ||
+ | |||
+ | |||
+ | <code root>getfacl /usr/sbin/biosdecode | ||
+ | getfacl : suppression du premier « / » des noms de chemins absolus | ||
+ | # file: usr/sbin/biosdecode | ||
+ | # owner: root | ||
+ | # group: root | ||
+ | user::rwx | ||
+ | group::r-x | ||
+ | other::r-x | ||
+ | </code> | ||
+ | |||
+ | Nous avons vu comment donner les droits avec la commande "chmod" | ||
+ | |||
+ | Voyons maintenant avec la commande "setfacl" | ||
+ | ** | ||
+ | les commandes setfacl et getfacl** | ||
+ | |||
+ | Exemple: je crée un répersoire de travail collaboratif< /br> des groupe et je donne les droits à chacun | ||
+ | |||
+ | <code user>sudo mkdir /opt/partage | ||
+ | ls -lisha /opt/partage/ | ||
+ | total 8,0K | ||
+ | 1331073 4,0K drwxr-xr-x 2 root root 4,0K 15 mai 23:45 . | ||
+ | 1308162 4,0K drwxr-xr-x 3 root root 4,0K 15 mai 23:45 ..</code> | ||
+ | |||
+ | Visualiser les permissions ACLs du dossier : | ||
+ | |||
+ | <code user>getfacl /opt/partage/ | ||
+ | getfacl : suppression du premier « / » des noms de chemins absolus | ||
+ | # file: opt/partage/ | ||
+ | # owner: root | ||
+ | # group: root | ||
+ | user::rwx | ||
+ | group::r-x | ||
+ | other::r-x</code> | ||
+ | |||
+ | <code user>sudo setfacl -m g:momo:rwx /opt/partage/</code> | ||
+ | |||
+ | <code user>touch /opt/partage/firstfichier.txt</code> | ||
+ | |||
+ | <code user>getfacl /opt/partage/firstfichier.txt | ||
+ | getfacl : suppression du premier « / » des noms de chemins absolus | ||
+ | # file: opt/partage/firstfichier.txt | ||
+ | # owner: momo | ||
+ | # group: momo | ||
+ | user::rw- | ||
+ | group::r-- | ||
+ | other::r--</code> | ||
+ | |||
+ | Suppression juste pour le répertoire | ||
+ | |||
+ | <code user>setfacl -b /opt/partage/firstfichier</code> | ||
+ | |||
+ | Suppression juste pour le fichier | ||
+ | |||
+ | <code user>setfacl -b fichier /opt/partage/ </code> | ||
+ | |||
+ | Pour supprimer les acl par défaut : | ||
+ | |||
+ | setfacl -k repertoire | ||
+ | |||
+ | Suppression pour le répertoire, les sous-répertoires | ||
+ | |||
+ | setfacl -R -k repertoire | ||
+ | |||
+ | |||
+ | Les ACLs par défaut permettent de donner des permissions ACL en héritage pour tout sous-répertoire ou fichier créé dans un répertoire. Toutefois, ces ACLs par défaut ne s’appliquent pas aux objets déjà présents dans le répertoire. | ||
+ | |||
+ | Dans la configuration d’un partage avec des accès multiples, il sera donc nécessaire de procéder en deux étapes : | ||
+ | |||
+ | |||
+ | Modifier l’ACL des fichiers existants, Appliquer un ACL par défaut | ||
+ | |||
+ | Pour définir une ACL par défaut, veuillez ajouter d: avant la règle et spécifiez un répertoire à la place d'un nom de fichier. | ||
+ | <code root> | ||
+ | setfacl -m d:o:rx /répertoire</code> | ||
+ | |||
+ | lecture et exécution modifiés pour les utilisateurs du groupe | ||
+ | |||
+ | =====quelques explications sur kezako: id, inodes, soket, umask===== | ||
+ | |||
+ | Le système de fichiers Linux est généralement une couche intégrée d’un système d’exploitation Linux utilisée pour gérer la gestion | ||
+ | des données du stockage. Cela aide à organiser le fichier sur le stockage sur disque. Il gère le nom du fichier, la taille du fichier, | ||
+ | la date de création et bien plus d’informations sur un fichier. | ||
+ | |||
+ | Dans les systèmes de type Linux et Unix, chaque processus se voit attribuer un ID de processus, ou PID. C’est ainsi que le | ||
+ | système d’exploitation identifie et garde une trace des processus. … Les processus parents ont un PPID, que vous pouvez voir | ||
+ | dans les en-têtes de colonne dans de nombreuses applications de gestion de processus, y compris top , htop et ps . | ||
+ | |||
+ | Un nœud d'index ou inode (contraction de l'anglais index et node) est une structure de données contenant des informations | ||
+ | à propos d'un fichier ou répertoire stocké dans certains systèmes de fichiers. | ||
+ | |||
+ | Un inode est un numéro unique qui référence un ou plusieurs fichiers dans le système de fichier. | ||
+ | Ce numéro est l’élément de localisation du fichier sur le système de fichiers | ||
+ | L’inode est l’endroit où sont stockées toutes les métadonnées d’un fichier : son heure de modification, ses autorisations, etc. | ||
+ | |||
+ | Un socket est un fichier permettant aux processus d’échanger des données. | ||
+ | |||
+ | Un port est une construction logique attribuée aux processus réseau afin qu’ils puissent être identifiés dans le système. | ||
+ | |||
+ | Un socket est une combinaison de port et d’adresse IP. … Le mot « Socket » est la combinaison du port et de l’adresse IP. | ||
+ | |||
+ | Les sockets vous permettent d’échanger des informations entre les processus sur la même machine ou sur un réseau, de répartir | ||
+ | |||
+ | le travail sur la machine la plus efficace et d’accéder facilement aux données centralisées. … | ||
+ | |||
+ | Les interfaces de programme d’application (API) socket sont la norme de réseau pour TCP/IP. | ||
+ | |||
+ | |||
+ | umask Sur les systèmes d'exploitation Linux, tous les nouveaux fichiers sont créés avec un ensemble d'autorisations par défaut. | ||
+ | |||
+ | L'utilitaire umask vous permet d'afficher ou de définir le masque de création en mode fichier, qui détermine les bits d'autorisation pour les fichiers ou répertoires nouvellement créés. | ||
+ | |||
+ | Par défaut, les autorisations de création par défaut sont 666 pour les fichiers | ||
+ | |||
+ | ce qui donne l'autorisation de lecture et d'écriture à l'utilisateur, au groupe et aux d'autres | ||
+ | |||
+ | Lorsqu’un processus crée un nouvel objet de système de fichiers, tel qu’un fichier ou un répertoire, | ||
+ | |||
+ | l’objet se voit attribuer un ensemble d’autorisations par défaut qui est masqué par le umask | ||
+ | |||
+ | Par défaut un répertoire est à 755 | ||
+ | |||
+ | Vous pouvez afficher la valeur actuelle du masque utilisateur en en tapant umask puis enter | ||