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
droits [Le 04/04/2025, 17:47]
krodelabestiole réécriture permissions / mide en forme
droits [Le 06/04/2025, 19:30] (Version actuelle)
krodelabestiole [Les propriétaires] typo
Ligne 5: Ligne 5:
 <​note>​Voir aussi //​[[:​permissions]]//,​ //​[[:​ACL]]//​.</​note>​ <​note>​Voir aussi //​[[:​permissions]]//,​ //​[[:​ACL]]//​.</​note>​
  
-Les systèmes d'​exploitation inspirés d'Unix (dont Linux fait partie) possèdent la capacité de définir de façon poussée ​la gestion de droits ​d'​accès aux divers fichiers de votre OS.+Les systèmes d'​exploitation inspirés d'[[wpfr>​UNIX]] ​(dont Linux fait partie) possèdent la capacité de définir de façon poussée ​les [[:​permissions]] ​d'​accès aux divers fichiers ​et répertoires ​de votre ordinateur.
  
-Les **droits d'​accès** définissent la possession d'un fichier ou d'un répertoire((Dans la suite de ce document, nous n'​emploierons plus que le terme « fichier ». De toute façon, c'est bien connu : sous *nix, tout est fichiers... Un répertoire est traité de la même façon qu'un fichier.)) ​à un utilisateur et à un groupe d'​utilisateurs. Ils gèrent aussi quelles actions les utilisateurs ont le droit d'​effectuer sur les fichiers, selon qu'ils sont propriétaire du fichier, membre du groupe propriétaire du fichier ou ni l'un ni l'​autre. La possession et la gestion des permissions associées s'​effectue individuellement avec chaque fichier.+Ces **droits d'​accès** définissent la possession d'un fichier ou d'un répertoire à un utilisateur et à un groupe d'​utilisateurs. Ils gèrent aussi quelles actions les utilisateurs ont le droit d'​effectuer sur les fichiers, selon qu'ils sont propriétaire du fichier, membre du groupe propriétaire du fichier ou ni l'un ni l'​autre. La possession et la gestion des permissions associées s'​effectue individuellement avec chaque fichier ​ou répertoire.
  
-  * Le présent article est un document d'​explication à propos des droits d'​accès. Les sections //[[#les_propriétaires|Les propriétaires]]//​ et //[[#les_permissions|Les permissions]]//​ présentent de façon générale ce que sont ces attributs auxquels vous devrez faire face dans votre vie linuxienne.+  * Le présent article est un document d'​explication à propos des droits d'​accès. Les sections //[[#Les propriétaires]]//​ et //[[#Les permissions]]//​ présentent de façon générale ce que sont ces attributs auxquels vous devrez faire face dans votre vie linuxienne.
   * La manipulation des droits d'​accès des fichiers et dossiers est abordée dans l'​article //​[[:​Permissions]]//​.   * La manipulation des droits d'​accès des fichiers et dossiers est abordée dans l'​article //​[[:​Permissions]]//​.
  
 ===== Les propriétaires ===== ===== Les propriétaires =====
  
-Par la propriété d'un fichieron désigne à quel utilisateur appartient ​le fichier, qui le possède. À partir ​de cette possession (ou non), il sera ensuite possible de définir des permissions d'​accès sur le fichier.+<​note>​Ce chapitre concerne aussi bien les fichiers que les répertoiresmais nous employons ici exclusivement ​le terme //fichier// par souci de simplicité.</​note>​
  
-La possession ​d'un fichier ​se définit sur trois catégories ​+Par la propriété ​d'un fichier, on désigne à la fois 
-  ​- l'**//​U//​tilisateur propriétaire** du fichier ​(''​u''​). Il s'agit généralement du créateur du fichier. (Prenez note qu'un fichier créé par une commande exécutée à l'aide de ''​[[:​sudo]]''​ sans paramètre appartiendra par défaut à l'​utilisateur ''​root''​ ; vous serez potentiellement amené à devoir changer ​le propriétaire de ce fichier pour pouvoir vous en servir avec votre propre compte utilisateur.) +  * à quel **utilisateur** appartient le fichier, qui le possède, 
-  ​- le **//G//roupe propriétaire** du fichier ​(''​g''​). Si un utilisateur ​est membre d'un certain ​groupe ​qui possède la propriété ​d'un fichierl'​utilisateur aura aussi certaines permissions particulières sur ce fichier. +  * et à quel **groupe** il appartient.((Un utilisateur peut évidemment avoir des téraoctets de fichiers et appartenir à plusieurs groupes, mais un fichier n'appartient qu'à un utilisateur ​et un seul groupe.)) 
-  - les autres**//​O//​ther**,​ le reste du monde (''​o''​). Bref, tout un chacun n'​étant ni propriétaire ​du fichierni membre du groupe ​propriétaire du fichier.+À partir de ces deux identités, on peut définir des [[#​les_permissions|permissions]] ​d'accès sur le fichier. Elles détermineront si l'​utilisateur ​qui essaie d'y accéder en aura la possibilitéselon qu'il est l'utilisateur ​propriétaire,​ membre du groupe ​concerné, ou aucun des deux.
  
-Faisons ​une analogie ​avec les voitures. Le //​propriétaire//​ serait la personne au nom de laquelle la voiture est immatriculée. Le //groupe propriétaire// ​ est l'​ensemble des personnes qui sont inscrites en tant que conducteurs secondaires de la voiture chez l'​assureur. Enfin, les //autres// correspondent à toutes les autres personnes n'​étant ni détenteur ​de l'​immatriculation ni inscrites en tant que conducteurs ​de la voiture chez l'​assureur.+Il est donc nécessaire,​ pour comprendre et ajuster les permissions d'un fichier, de déterminer l'​identité de l'​utilisateur propriétaire et celle du groupe propriétaire. Voir les chapitres //​[[:​permissions#​Voir les permissions]]//​ ou //​[[:​permissions#​Modifier les permissions]]//​ (qui concernent aussi les propriétaires) pour respectivement récupérer ou modifier ces informations. 
 + 
 +On peut alors ajuster finement les [[#​les_permissions|droits d'​accès]] d'un fichier selon trois groupes : 
 +  - l'​**utilisateur propriétaire** du fichier (''​u''​ pour //​**u**ser//,​ utilisateur). Il s'agit généralement du créateur du fichier. (Prenez note qu'un fichier créé par une commande exécutée à l'aide de ''​[[:​sudo]]''​ sans paramètre appartiendra par défaut à l'​utilisateur ''​root''​ ; vous serez potentiellement amené·e à devoir en changer le propriétaire pour pouvoir vous en servir ​avec votre propre compte utilisateur.) 
 +  - le **groupe propriétaire** du fichier (''​g''​ pour //​**g**roup//,​ groupe). Si un utilisateur est membre d'un certain groupe propriétaire d'un fichier, l'​utilisateur aura aussi certaines permissions particulières sur ce fichier. 
 +  - les autres, le reste du monde (''​o''​ pour //​**o**thers//,​ autres)Bref, tout un chacun n'​étant ni propriétaire du fichier, ni membre du groupe propriétaire du fichier. 
 + 
 +Faisons une analogie avec une assurance de voiture : 
 +  - Le //​propriétaire//​ serait la personne au nom de laquelle la voiture est immatriculée. 
 +  - Le //groupe propriétaire//​ est l'​ensemble des personnes qui sont inscrites en tant que conducteurs secondaires de la voiture chez l'​assureur. 
 +  - Enfin, les //autres// correspondent à toutes les autres personnes n'​étant ni détentrices ​de l'​immatriculation ni inscrites en tant que conducteur ​de la voiture chez l'​assureur.
  
 <​note>​Certains logiciels ont besoin de pouvoir écrire dans des fichiers particuliers pour bien fonctionner,​ et cet accès est autorisé en fonction de l'​inclusion ou non d'un utilisateur dans un groupe de membres précis. C'est le cas entre autre (mais pas exclusivement) de [[:​Virtualbox]]. Pour savoir comment gérer l'​inclusion ou l'​exclusion d'un utilisateur à un groupe d'​utilisateurs,​ référez-vous au document traitant de la [[:​users-admin|gestion des comptes utilisateurs sous Ubuntu]].</​note>​ <​note>​Certains logiciels ont besoin de pouvoir écrire dans des fichiers particuliers pour bien fonctionner,​ et cet accès est autorisé en fonction de l'​inclusion ou non d'un utilisateur dans un groupe de membres précis. C'est le cas entre autre (mais pas exclusivement) de [[:​Virtualbox]]. Pour savoir comment gérer l'​inclusion ou l'​exclusion d'un utilisateur à un groupe d'​utilisateurs,​ référez-vous au document traitant de la [[:​users-admin|gestion des comptes utilisateurs sous Ubuntu]].</​note>​
Ligne 30: Ligne 40:
  
 Pour chaque fichier ou répertoire,​ chacune de ces trois catégories d'​utilisateurs (utilisateur propriétaire,​ membres du groupe propriétaire et reste du monde) sont définies les trois permissions lecture, écritures et exécutions : Pour chaque fichier ou répertoire,​ chacune de ces trois catégories d'​utilisateurs (utilisateur propriétaire,​ membres du groupe propriétaire et reste du monde) sont définies les trois permissions lecture, écritures et exécutions :
-  * l'​utilisateur propriétaire dispose ou non de la permission de lecture, d'​écriture et d'​exécution 
-  * les membres du groupe propriétaire disposent ou non de la permission de lecture, d'​écriture et d'​exécution 
-  * tous les autres utilisateurs disposent ou non de la permission de lecture, d'​écriture et d'​exécution. 
  
-  - la **lecture** . Cette permission est notée ''​r''​ (pour //​**r**ead//,​ lire) :+  - L'​**utilisateur** propriétaire dispose ou non de la permission de lecture, d'​écriture et d'​exécution. 
 +  - Les membres du **groupe** propriétaire disposent ou non de la permission de lecture, d'​écriture et d'​exécution. 
 +  - Tous les **autres** utilisateurs disposent ou non de la permission de lecture, d'​écriture et d'​exécution. 
 + 
 +Pour chacun : 
 + 
 +  - la **lecture** - cette permission est notée ''​r''​ (pour //​**r**ead//,​ lire) :\\
     * sur un **fichier** : cette permission est nécessaire pour pouvoir accéder au contenu du fichier (écouter une piste audio, visionner un film, lire un texte, etc.).     * sur un **fichier** : cette permission est nécessaire pour pouvoir accéder au contenu du fichier (écouter une piste audio, visionner un film, lire un texte, etc.).
     * sur un **répertoire** : permet de lister le contenu du répertoire (''​[[man>​ls]]''​),​ mais pas d'y accéder (voir //​exécution//​ ci-dessous).     * sur un **répertoire** : permet de lister le contenu du répertoire (''​[[man>​ls]]''​),​ mais pas d'y accéder (voir //​exécution//​ ci-dessous).
-  - l'​**écriture** ​Cette permission est notée ''​w''​ (pour //​**w**rite//,​ écrire) :+  - l'​**écriture** ​- cette permission est notée ''​w''​ (pour //​**w**rite//,​ écrire) :\\
     * sur un **fichier** : cette permission est nécessaire pour pouvoir apporter des modifications au fichier (corriger un texte et enregistrer les changements ; effacer les "yeux rouges"​ dans une photo et enregistrer la correction ; ajouter, modifier, renommer ou supprimer un fichier dans un dossier ; etc.). ​     * sur un **fichier** : cette permission est nécessaire pour pouvoir apporter des modifications au fichier (corriger un texte et enregistrer les changements ; effacer les "yeux rouges"​ dans une photo et enregistrer la correction ; ajouter, modifier, renommer ou supprimer un fichier dans un dossier ; etc.). ​
     * sur un **répertoire** : permet de modifier le contenu d'un répertoire (à condition d'​avoir aussi le droit en //​exécution//,​ voir ci-dessous),​ d'y créer, modifier ou supprimer des fichiers ou sous-répertoires.     * sur un **répertoire** : permet de modifier le contenu d'un répertoire (à condition d'​avoir aussi le droit en //​exécution//,​ voir ci-dessous),​ d'y créer, modifier ou supprimer des fichiers ou sous-répertoires.
-  - l'​**exécution** ​cette permission est notée ''​x''​ (pour //​e**x**ecute//,​ exécuter) :+  - l'​**exécution** ​cette permission est notée ''​x''​ (pour //​e**x**ecute//,​ exécuter) :\\
     * sur un **fichier** : cette permission est nécessaire particulièrement pour les [[:​tutoriel:​script_shell|scripts]] et les applications,​ afin qu'​elles puissent être lancées.     * sur un **fichier** : cette permission est nécessaire particulièrement pour les [[:​tutoriel:​script_shell|scripts]] et les applications,​ afin qu'​elles puissent être lancées.
     * sur un **répertoire** : la permission ''​x''​ permet de l'​utiliser en tant que tel - y accéder (commande ''​[[man>​cd]]''​),​ utiliser les fichiers et sous-répertoires qu'il contient (au delà de la simple liste accessible par le droit en //lecture// sur le répertoire).     * sur un **répertoire** : la permission ''​x''​ permet de l'​utiliser en tant que tel - y accéder (commande ''​[[man>​cd]]''​),​ utiliser les fichiers et sous-répertoires qu'il contient (au delà de la simple liste accessible par le droit en //lecture// sur le répertoire).
  
-Ces droits sont affichés par une série de 9 caractères,​ associés 3 par 3 (''​rwx''​ ''​rwx''​ ''​rwx'',​ ou ''​rwxrwxrwx''​) qui définissent les droits des 3 identités (''​u'',​ ''​g''​ et ''​o''​). Le caractère ''​-''​ signifie que le droit est absent.+Ces droits sont affichés par une série de 9 caractères,​ associés 3 par 3 (''​rwx''​ ''​rwx''​ ''​rwx'',​ ou ''​rwxrwxrwx''​) qui définissent les droits des 3 identités (''​u'',​ ''​g''​ et ''​o''​). Le caractère ''​-''​ signifie que le droit est absent.\\ 
 +Plus proche du langage machine et plus rapide à écrire, on les trouve aussi la plupart du temps rédigés [[:​permissions#​en octal]], par un nombre allant de ''​000''​ à ''​777''​. C'est une représentation plus directe des //bits// qui stockent cette information. Voir le chapitre dédié sur la page //​[[:​permissions#​en_octal|Permissions]]//​.
  
-Par exemple, si on dispose des droits de lecture et d'​exécution sur un répertoire,​ mais pas d'​écriture (''​r-x''​),​ on peut y exécuter les scripts qu'il contient et ouvrir ses fichiers, mais on ne peut pas les modifier, les renommer, ni en créer de nouveaux.+Par exemple, si on dispose des droits de lecture et d'​exécution sur un répertoire,​ mais pas d'​écriture (''​r-x''​ / ''​5''​),​ on peut y exécuter les scripts qu'il contient et ouvrir ses fichiers, mais on ne peut pas les modifier, les renommer, ni en créer de nouveaux.
  
 <​note>​ <​note>​
Ligne 61: Ligne 75:
   * Un utilisateur ne disposant que de la permission d'​exécution peut ouvrir un répertoire,​ mais ne peut pas en voir le contenu. C'est utile, par exemple, pour traverser un répertoire dont on ne doit pas pouvoir lister le contenu.   * Un utilisateur ne disposant que de la permission d'​exécution peut ouvrir un répertoire,​ mais ne peut pas en voir le contenu. C'est utile, par exemple, pour traverser un répertoire dont on ne doit pas pouvoir lister le contenu.
   * Un utilisateur disposant des droits de lecture et d'​exécution pourra lister le contenu d'un dossier et y entrer avec son navigateur de fichiers.   * Un utilisateur disposant des droits de lecture et d'​exécution pourra lister le contenu d'un dossier et y entrer avec son navigateur de fichiers.
-</​note>​ 
- 
-<note tip>​**Comment sont déterminées les droits d'​accès sur un volume ?** 
- 
-//​**Systèmes de fichiers compatibles avec la norme POSIX :**// Par défaut, un nouveau système de fichiers est automatiquement attribué à l'​utilisateur ''​root''​ et au groupe d'​utilisateurs ''​root''​ et les droits qui y sont appliqués sont ceux du masque utilisateur par défaut //(voir ci-dessous)//​. Pour modifier les droits d'​accès liés à un système de fichiers, vous devez modifier les droits d'​accès de son point de montage. Par exemple, pour modifier les droits d'​accès d'un volume ''/​dev/​sdb1''​ monté dans le dossier ///​media/​NouvellePartition/​ //, vous devez effectuer les modifications de droits sur le dossier ///​media/​NouvellePartition/​ //comme s'il s'​agissait d'un dossier quelconque. Les modifications de droits d'​accès sont conservés même après le démontage du système de fichiers. Ceci s'​applique uniquement aux systèmes de fichiers ext2, ext3, ext4, ReiserFS, Reiser4, HFS, HFS+ et autres compatibles avec la norme POSIX. 
- 
-//​**Systèmes de fichiers incompatibles avec la norme POSIX :**// Ceci concerne essentiellement les systèmes de fichiers FAT, vFAT et NTFS. Ces systèmes de fichiers ne gèrent pas les droits d'​accès selon la norme POSIX. Ces droits sont émulés par leur pilote spécifique au montage du système de fichiers et ils ne sont pas modifiables tout le temps que celui-ci est monté. Les propriétés et permissions sont déterminées par les options de montage passées à la commande ''​mount''​. Pour modifier les droits d'​accès d'un tel système de fichiers, il faut procéder au démontage du système de fichiers, puis à son remontage avec des options différentes. 
 </​note>​ </​note>​
  
Ligne 74: Ligne 81:
 Lorsqu'​un nouveau fichier est créé, celui-ci obtient automatiquement certaines permissions. On peut si besoin ajuster ce comportement du système. Lorsqu'​un nouveau fichier est créé, celui-ci obtient automatiquement certaines permissions. On peut si besoin ajuster ce comportement du système.
  
-==== Propriétaires ====+==== Propriétaires ​par défaut ​====
  
 Par défaut, l'​utilisateur propriétaire d'un nouveau fichier ou répertoire est son créateur et le groupe propriétaire,​ le groupe principal de son créateur. Par exemple, si l'​utilisateur ''​toto'',​ dont le groupe principal est ''​utilisateurs'',​ crée un nouveau fichier ou dossier, celui-ci appartient à ''​toto:​utilisateurs''​. Par défaut, l'​utilisateur propriétaire d'un nouveau fichier ou répertoire est son créateur et le groupe propriétaire,​ le groupe principal de son créateur. Par exemple, si l'​utilisateur ''​toto'',​ dont le groupe principal est ''​utilisateurs'',​ crée un nouveau fichier ou dossier, celui-ci appartient à ''​toto:​utilisateurs''​.
Ligne 87: Ligne 94:
  
 On positionne un Setgid sur un répertoire grâce à la commande ''​chmod g+s''​ : On positionne un Setgid sur un répertoire grâce à la commande ''​chmod g+s''​ :
- chmod u+s /​chemin/​du/​répertoire+  ​chmod g+s /​chemin/​du/​répertoire
  
 On peut le supprimer grâce à la commande ''​chmod g-s''​. On peut le supprimer grâce à la commande ''​chmod g-s''​.
Ligne 95: Ligne 102:
 <​note>​Lorsqu'​un sous-répertoire est créé, il hérite lui aussi de la propriété Setgid.</​note>​ <​note>​Lorsqu'​un sous-répertoire est créé, il hérite lui aussi de la propriété Setgid.</​note>​
  
-==== Permissions ====+==== Permissions ​par défaut ​====
  
 Les permissions accordées par défaut sont celles déterminées par un paramètre particulier appelé le //masque utilisateur//​ (ou //​[[wpfr>​umask]]//​). Dans Ubuntu, le [[wpfr>​umask]] par défaut est ''​022'',​ ce qui accorde les permissions ''​644''​ (''​%%rw-r--r--%%''​) pour les fichiers, et ''​755''​ (''​%%rwxr-xr-x%%''​) pour les répertoires :((Voir par exemple un [[https://​www.heuristic42.com/​tools/​unixperms/​|calculateur umask]].)) Les permissions accordées par défaut sont celles déterminées par un paramètre particulier appelé le //masque utilisateur//​ (ou //​[[wpfr>​umask]]//​). Dans Ubuntu, le [[wpfr>​umask]] par défaut est ''​022'',​ ce qui accorde les permissions ''​644''​ (''​%%rw-r--r--%%''​) pour les fichiers, et ''​755''​ (''​%%rwxr-xr-x%%''​) pour les répertoires :((Voir par exemple un [[https://​www.heuristic42.com/​tools/​unixperms/​|calculateur umask]].))
Ligne 113: Ligne 120:
   * **globalement** (déconseillé),​ définitivement et pour tous utilisateurs par défaut :   * **globalement** (déconseillé),​ définitivement et pour tous utilisateurs par défaut :
     * en ajoutant la ligne suivante dans le fichier ''/​etc/​pam.d/​common-session''​ :<file - common-session>​session ​   optional ​    ​pam_umask.so umask=007</​file>​     * en ajoutant la ligne suivante dans le fichier ''/​etc/​pam.d/​common-session''​ :<file - common-session>​session ​   optional ​    ​pam_umask.so umask=007</​file>​
-    * ou pour tout le système dans le fichier ​en ajoutant avec les [[:​sudo|droits d'​administration]] la ligne suivante dans le fichier ''/​etc/​profile''​ : <file - profile>​umask 007</​file>​Ces nouveaux masque utilisateurs sont utilisés même après une nouvelle ouverture de session.+    * ou en ajoutant avec les [[:​sudo|droits d'​administration]] la ligne suivante dans le fichier ''/​etc/​profile''​ : <file - profile>​umask 007</​file>​Ces nouveaux masque utilisateurs sont utilisés même après une nouvelle ouverture de session.
  
 ===== Manipuler les droits d'​accès ===== ===== Manipuler les droits d'​accès =====
  
-Les droits d'​​accès précisés sur un fichier ou un dossier peuvent ​être remplacés par d'​​autres droits d'​​accès. L'​​ensemble des opérations est abordé dans le document annexe « [[permissions]] ».+Les droits d'​​accès précisés sur un fichier ou un dossier peuvent ​être remplacés par d'​​autres droits d'​​accès. L'​​ensemble des opérations est abordé ​sur la page //​[[:​Permissions]]//​. 
 + 
 +===== Volumes de stockage et systèmes de fichier ===== 
 + 
 +Comment sont déterminées les droits d'​accès sur un volume ? 
 + 
 +==== Systèmes de fichiers compatibles avec la norme POSIX ==== 
 + 
 +Par défaut, un nouveau système de fichiers est automatiquement attribué à l'​utilisateur ''​root''​ et au groupe d'​utilisateurs ''​root''​ et les droits qui y sont appliqués sont ceux du masque utilisateur par défaut (voir ci-dessus). 
 + 
 +Pour modifier les droits d'​accès liés à un système de fichiers, vous devez modifier les droits d'​accès de son point de montage. Par exemple, pour modifier les droits d'​accès d'un volume ''/​dev/​sdb1''​ monté ​dans le répertoire ''/​media/​NouvellePartition'',​ vous devez effectuer les modifications de droits sur le répertoire ''/​media/​NouvellePartition''​ comme s'il s'​agissait d'un répertoire quelconque. Les modifications de droits d'​accès sont conservés même après le démontage du système de fichiers. 
 + 
 +Ceci s'​applique uniquement aux systèmes de fichiers ​[[wpfr>​ext2]], [[wpfr>​ext3]],​ [[:ext4]], [[wpfr>​ReiserFS]],​ Reiser4, [[wpfr>​HFS]],​ HFS+ et autres compatibles avec la norme [[wpfr>​POSIX]]. 
 + 
 +==== Systèmes de fichiers incompatibles avec la norme POSIX ==== 
 + 
 +Ceci concerne essentiellement les systèmes de fichiers FAT ([[wpfr>​FAT32]],​ [[:​exFAT]]),​ vFAT et [[wpfr>​NTFS]]. Ces systèmes de fichiers ne gèrent pas les droits d'​accès selon la norme [[wpfr>​POSIX]]. 
 + 
 +Ces droits sont émulés par leur pilote spécifique au montage du système de fichiers et ils ne sont pas modifiables tout le temps que celui-ci est monté. Les propriétés et permissions sont déterminées par les options de montage passées à la commande ''​mount''​. 
 + 
 +Pour modifier les droits d'​accès d'un tel système de fichiers, il faut procéder au démontage du système de fichiers, puis à son remontage avec des options différentes.
  
 ===== Voir aussi ===== ===== Voir aussi =====
  • droits.1743781634.txt.gz
  • Dernière modification: Le 04/04/2025, 17:47
  • par krodelabestiole