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, 04:47]
krodelabestiole [Droits attribués automatiquement à un fichier] +répertoires / + détails
droits [Le 06/04/2025, 19:30] (Version actuelle)
krodelabestiole [Les propriétaires] typo
Ligne 1: Ligne 1:
 {{tag>​portail administration sécurité}} {{tag>​portail administration sécurité}}
- 
----- 
  
 ====== Droits d'​accès sous Linux : gérer les accès aux fichiers ====== ====== Droits d'​accès sous Linux : gérer les accès aux fichiers ======
-//Voir aussi [[permissions]],​ [[acl]].// 
  
-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.+<​note>​Voir aussi //​[[:​permissions]]//,​ //​[[:​ACL]]//​.</​note>​
  
-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.+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.
  
-  ​* 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. +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. 
-  * La manipulation des droits d'​accès des fichiers et dossiers est abordée dans l'​article ​« [[:​Permissions]] ​».+ 
 +  ​* 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]]//.
  
 ===== Les propriétaires ===== ===== Les propriétaires =====
-Par la propriété d'un fichier, on 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. 
  
-La possession d'un fichier se définit sur trois catégories : +<note>Ce chapitre concerne aussi bien les fichiers que les répertoires,​ mais nous employons ici exclusivement le terme //fichier// par souci de simplicité.</​note>​
-  - 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]]''​ appartiendra à 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.) +
-  - 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 fichier, l'​utilisateur aura aussi certaines permissions particulières sur ce fichier. +
-  - les autres, **__o__ther**,​ le reste du monde **(__o__)**. Bref, tout un chacun n'​étant ni propriétaire du fichier, ni membre du groupe propriétaire du fichier.+
  
-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. Enfinles //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.+Par la propriété d'un fichier, on désigne à la fois : 
 +  * à quel **utilisateur** appartient le fichier, ​qui le possède, 
 +  * 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.)) 
 +À 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.
  
-<​note>​Certains logiciels ont besoin de pouvoir écrire dans des fichiers particuliers ​pour bien fonctionneret cet accès est autorisé en fonction ​de l'inclusion ou non d'un utilisateur ​dans un groupe ​de membres précisC'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>​+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étaireVoir 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>​
  
 ===== Les permissions ===== ===== Les permissions =====
-Les permissions désignent ce que les diverses catégories d'​utilisateurs (propriétaire d'un fichier, membres du groupe propriétaire d'un fichier et le reste du monde) ont l'​autorisation d'​effectuer sur un fichier donné. Par exemple, une catégorie d'​utilisateurs peut avoir accès en lecture et écriture à un fichier, alors qu'une autre catégorie a accès en lecture seulement à ce même fichier. 
  
-Les permissions ​se définissent sur trois niveaux : +Les permissions ​désignent ce que les diverses catégories ​d'utilisateurs (//​utilisateur//​ propriétaire ​d'un fichier, ​membres du //groupe// propriétaire d'un fichier et le reste du mondeont l'autorisation ​d'effectuer sur un fichier ​donné. Par exempleune catégorie d'utilisateurs peut avoir accès en lecture et écriture à un fichieralors qu'une autre catégorie a accès ​en lecture seulement à ce même fichier.
-  - la **lecture** ​d'un fichier : cette permission est nécessaire pour pouvoir accéder au contenu ​d'un fichier ​(écouter une piste audiovisionner un film, lire un texte, lister le contenu (ls) naviguer à l'​intérieur d'un répertoire...). Cette permission est notée ''​r''​ (pour //**r**ead//, lire). +
-  - l'**écriture** dans un fichier ​: cette permission est nécessaire pour pouvoir apporter des modifications à un 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.). Cette permission est notée ''​w''​ (pour //​**w**rite//,​ écrire). +
-  - l'**exécution** ​d'un fichier ​: cette permission est nécessaire particulièrement pour les logicielsafin qu'ils puissent être exécutés. Cette permission est notée ''​x''​ (pour //​e**x**ecute//,​ exécuter). Pour un répertoirela permission "​x"​ permet d'​en ​faire le répertoire courant (cd).+
  
-Par exemplel'​utilisateur ''​toto''​ dispose des droits ​de lecture et d'exécution sur le répertoire ''​foo''​mais pas la permission d'​écriture sur ce répertoire ; ''​toto''​ peut donc exécuter les programmes présents dans ce répertoire ​et ouvrir ​les fichiers qu'il contientmais ne peut pas les modifier ni en créer de nouveaux.+Pour chaque fichier ou répertoirechacune ​de ces trois catégories ​d'utilisateurs (utilisateur propriétairemembres du groupe propriétaire ​et reste du monde) sont définies ​les trois permissions lectureécritures et exécutions :
  
-Pour chacune des trois catégories d'utilisateurs (propriétaire,​ membres du groupe propriétaire et reste du monde) sont définies ces trois permissions : +  - L'**utilisateur** ​propriétaire dispose ou non de la permission de lecture, d'​écriture et d'​exécution. 
-  ​le propriétaire dispose ou non de la permission de lecture, d'​écriture et d'​exécution ​sur un fichier ; +  ​- Les membres du **groupe** propriétaire ​disposent ​ou non de la permission de lecture, d'​écriture et d'​exécution. 
-  * le membre du groupe propriétaire ​dispose ​ou non de la permission de lecture, d'​écriture et d'​exécution ​sur un fichier ; +  ​- Tous les **autres** utilisateurs 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 ​sur un fichier.+
  
-Les droits sont affichés par une série de 9 caractères,​ associés 3 par 3 (rwx rwx rwx) qui définissent les droits des 3 identités (u, g et o).+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 **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) :\\ 
 +    * 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. 
 +  - 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 **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.\\ 
 +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''​ / ''​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>​
-**Les répertoires : un cas particulier** ​\\ +**Les répertoires : un cas particulier**  
-Les répertoires sont un cas particulier. ​Pour accéder au contenu d'un répertoire (pour ouvrir un fichier ou se déplacer dans un sous-répertoire),​ un utilisateur doit disposer de la permission d'//​exécution//​ (''​x''​) sur ce répertoire. De plus, pour être en mesure de lister le contenu d'un répertoire,​ l'​utilisateur doit avoir la permission de //lecture// (''​r''​) sur ce répertoire. Pour écrire dans le répertoire,​ la permission d'//​écriture//​ (''​w''​) doit être accordée. L'​utilisateur peut disposer de ces permissions selon qu'il est propriétaire du répertoire,​ membre du groupe propriétaire du répertoire ou faire partie du reste du monde.+ 
 +  * Pour accéder au contenu d'un répertoire (pour ouvrir un fichier ou se déplacer dans un sous-répertoire),​ un utilisateur doit disposer de la permission d'//​exécution//​ (''​x''​) sur ce répertoire. 
 +  * De plus, pour être en mesure de lister le contenu d'un répertoire,​ l'​utilisateur doit avoir la permission de //lecture// (''​r''​) sur ce répertoire. 
 +  * Pour écrire dans le répertoire,​ la permission d'//​écriture//​ (''​w''​) doit être accordée. 
 + 
 +L'​utilisateur peut disposer de ces permissions selon qu'il est propriétaire du répertoire,​ membre du groupe propriétaire du répertoire ou faire partie du reste du monde. 
   * Un utilisateur ne disposant ni des permissions de lecture ni d'​exécution ne pourra aucunement accéder au contenu du répertoire.   * Un utilisateur ne disposant ni des permissions de lecture ni d'​exécution ne pourra aucunement accéder au contenu du répertoire.
   * Un utilisateur ne disposant que de la permission de lecture pourra //lister// le contenu du dossier. (Par exemple, avec la commande ''​ls''​ dans une fenêtre de terminal.) Il ne pourra pas accéder au dossier avec son navigateur de fichiers.   * Un utilisateur ne disposant que de la permission de lecture pourra //lister// le contenu du dossier. (Par exemple, avec la commande ''​ls''​ dans une fenêtre de terminal.) Il ne pourra pas accéder au dossier avec son navigateur de fichiers.
Ligne 53: Ligne 77:
 </​note>​ </​note>​
  
-<note tip>​**Comment sont déterminées les droits d'​accès sur un volume ?**+===== Droits attribués automatiquement aux fichiers et répertoires =====
  
-//​**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.+Lorsqu'​un nouveau ​fichier ​est créé, celui-ci obtient ​automatiquement ​certaines permissionsOn peut si besoin ajuster ce comportement ​du système.
  
-//​**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. +==== Propriétaires ​par défaut ====
-</​note>​+
  
-===== Droits attribués automatiquement aux fichiers ​et répertoires =====+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''​.
  
-Lorsqu'​un nouveau fichier est créé, celui-ci obtient automatiquement certains paramètres : +=== Setgid ===
-  - **Propriétaires :** Par défaut, le propriétaire d'un nouveau fichier 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''​ ; +
-  - **Permissions :** 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]].)) +
-    * pour les **fichiers** +
-      * l'​**utilisateur** propriétaire du fichier dispose des permissions de lecture et d'​écriture,​ mais pas d'​exécution (''​%%rw-%%''​) +
-      * le **groupe** propriétaire du fichier dispose du droit de lecture seule (''​%%r--%%''​) +
-      * le reste du monde dispose du droit de lecture seule (''​%%r--%%''​) +
-    * pour les **répertoires** +
-      * l'​**utilisateur** propriétaire du répertoire dispose de tous les droits, lecture (voir l'​existence du répertoire),​ écriture (modification du nom ou du contenu), l'​exécution consiste à ouvrir le répertoire pour en parcourir le contenu (''​%%rwx%%''​) +
-      * le **groupe** propriétaire dispose des droits de lecture et d'​ouverture,​ mais pas de modification (''​%%r-x%%''​) +
-      * le reste du monde dispose des droits de lecture et d'​ouverture,​ mais pas de modification (''​%%r-x%%''​).+
  
-Le masque utilisateur ​peut être modifié : +On peut changer ce comportement pour un répertoire ​en particulieren positionnant son bit [[wpfr>​Setuid|Setgid]]. 
-  * en consolepour la durée ​de la session couranteCeci se fait à l'aide de la commande ''​[[man>​umask]]''​Tout nouveau fichier ou dossier ​créé ​durant ​la session courante recevra les droits tels que définis ​par le masque utilisateur, ​mais le masque utilisateur ​par défaut ​sera de nouveau utilisé à l'ouverture ​d'une nouvelle session utilisateur ; +  
-  En ajoutant dans le fichier ​:<​file ​/etc/pam.d/common-session> session ​   optional ​    ​pam_umask.so umask=007</file>​Dans ​cet exemple, ''​007''​ donne tous les droits ​au propriétaire ​et au groupe ​et aucun aux autres. Il peut être utile dans certains cas de mettre ''​077''​ pour restreindre les droits au seul propriétaire. ​Ce nouveau masque utilisateur ​est utilisé ​même après ​une nouvelle ​ouverture de session. +Plus généralement,​ les bits [[wpfr>​Setuid]] et [[wpfr>​Setuid|Setgid]] positionnés sur un fichier exécutable permettent ​de l'​exécuter par défaut avec les permissions de ses propriétaires (respectivement utilisateur et groupe). 
-  * Une autre solution consiste à ajouter ​la commande ci-dessous ​après la création des utilisateurs ​dans le fichier ''​~/​.bashrc''​ (propre à la console et la ligne de commande) ou ''​~/​.profile''​ (plus généralement).<file - /root/.bashrc> umask 007</​file>​ + 
-  * Globalement ​pour tout le système ​dans le fichier ''/​etc/​profile'' ​(déconseillé) ​: <code>echo "umask 0022" >> /​etc/​profile</​code>+Dans le cas d'un répertoire (dont le droit en "​exécution"​ consiste en fait à le parcourir), le bit [[wpfr>​Setuid|Setgid]] permet justement d'utiliser le groupe propriétaire //du répertoire//​ comme groupe propriétaire par défaut des données qui y sont créées, plutôt que le groupe principal ​de l'​utilisateur courant (qui exécute la commande). 
 + 
 +On positionne un Setgid sur un répertoire grâce à la commande ''​chmod g+s''​ : 
 +  chmod g+s /​chemin/​du/​répertoire 
 + 
 +On peut le supprimer grâce à la commande ''​chmod g-s''​. 
 + 
 +À ce sujet, voir par exemple ​[[https://​tech.feub.net/​2008/​03/​setuid-setgid-et-sticky-bit/​|cette documentation]]. 
 + 
 +<​note>​Lorsqu'​un sous-répertoire est créé, il hérite lui aussi de la propriété Setgid.</​note>​ 
 + 
 +==== 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]].)) 
 +  * pour les **fichiers** 
 +    * l'**utilisateur** propriétaire du fichier dispose des permissions de lecture et d'écriture, mais pas d'​exécution (''​%%rw-%%''​) 
 +    * le **groupe** propriétaire du fichier ​dispose du droit de lecture seule (''​%%r--%%''​) 
 +    * le reste du monde dispose du droit de lecture seule (''​%%r--%%''​) 
 +  * pour les **répertoires** 
 +    * l'​**utilisateur** propriétaire du répertoire dispose de tous les droits, lecture (voir l'​existence du répertoire),​ écriture (modification du nom ou du contenu), l'​exécution consiste à ouvrir le répertoire pour en parcourir le contenu (''​%%rwx%%''​) 
 +    * le **groupe** propriétaire dispose des droits de lecture et d'​ouverture,​ mais pas de modification (''​%%r-x%%''​) 
 +    * le reste du monde dispose des droits de lecture et d'​ouverture,​ mais pas de modification (''​%%r-x%%''​). 
 + 
 +Le masque utilisateur peut être modifié à différents niveaux : 
 +<note>​Dans ​ces exemples, ''​007''​ donne tous les droits ​aux utilisateurs ​et groupes propriétaires ​et aucun aux autres ​(fichiers ''​660''​ et répertoires ''​770''​). Il peut être utile dans certains cas de mettre ''​077''​ pour restreindre les droits au seul utilisateur ​propriétaire ​(''​600''​ et ''​700''​).</​note>​ 
 +  * pour la durée de la **session courante**, en [[:commande shell|ligne de commande]]. Ceci se fait à l'aide de la commande ''​[[man>​umask]]''​. Tout nouveau ​fichier ou dossier créé durant la session courante recevra les droits tels que définis par le masque utilisateur, mais le masque utilisateur par défaut sera de nouveau ​utilisé ​à l'​ouverture d'une nouvelle session ​utilisateur
 +  * pour un **utilisateur particulier** en ajoutant ​la commande ci-dessous dans son fichier ''​~/​.bashrc''​ (propre à la console et la ligne de commande) ou ''​~/​.profile''​ (plus généralement) ​:<file - .profile>umask 007</​file>​ 
 +  * **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> 
 +    * 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]] »+ 
-===== Références ​=====+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 ===== 
   * [[wpfr>​Permissions Unix]] (fr)   * [[wpfr>​Permissions Unix]] (fr)
   * [[http://​www.debian.org/​doc/​manuals/​debian-reference/​ch01.fr.html#​_filesystem_permissions|Didacticiels GNU/Linux -- 1.2.3. Permissions du système de fichiers]] (fr)   * [[http://​www.debian.org/​doc/​manuals/​debian-reference/​ch01.fr.html#​_filesystem_permissions|Didacticiels GNU/Linux -- 1.2.3. Permissions du système de fichiers]] (fr)
   * [[http://​www.debian.org/​doc/​manuals/​securing-debian-howto/​ch4.en.html|Aide Debian - chapitre 4.11.12 Setting users umasks (en)]]   * [[http://​www.debian.org/​doc/​manuals/​securing-debian-howto/​ch4.en.html|Aide Debian - chapitre 4.11.12 Setting users umasks (en)]]
   * [[ACL|ACL]] : Access Control List : Gestion avancée des droits sous linux   * [[ACL|ACL]] : Access Control List : Gestion avancée des droits sous linux
 +
 ---- ----
  
-//​Contributeurs : [[utilisateurs:​AlexandreP]],​ [[utilisateurs:​Ner0lph]],​ [[utilisateurs:​Sbrunner]],​[[utilisateurs:​Newbies]],​ [[utilisateurs:​bcag2]]//​+//​Contributeurs : [[:utilisateurs:​AlexandreP]],​ [[:utilisateurs:​Ner0lph]],​ [[:utilisateurs:​Sbrunner]],​[[:utilisateurs:​Newbies]],​ [[:utilisateurs:​bcag2]], [[:​utilisateurs:​krodelabestiole]]//
  • droits.1743734846.txt.gz
  • Dernière modification: Le 04/04/2025, 04:47
  • par krodelabestiole