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 15/12/2011, 15:17]
127.0.0.1 modification externe
droits [Le 24/06/2025, 22:50] (Version actuelle)
krodelabestiole [Voir aussi] +permissions
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]]. 
  
-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.
  
-Les sections [[#​les_propriétaires|"​Les propriétaires"​]] ​et [[#​les_permissions|"​Les permissions"​]] expliquent de façon générale ce que sont ces attributs auxquels vous devrez faire face dans votre vie linuxienne. Certaines de ces opérations peuvent être accomplies de manière graphique ​à l'aide de votre gestionnaire de fichiers ​préféré ([[Nautilus]][[Konqueror]],​ [[Thunar]]etc.).+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 fichiermembre du groupe propriétaire du fichier ou ni l'un ni l'​autreLa 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]]//​ 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. 
-<note tip>Les manipulations sur les droits des fichiers ​sont abordés ​dans la page « [[:​Permissions]] ​».</note>+  * 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épertoiresmais nous employons ici exclusivement le terme //fichier// par souci de simplicité.</​note>​
-  * -1- **l'​__u__tilisateur** propriétaire du fichier **(__u__)**.La plupart du tempsil s'agit 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.) +
-  * -2- 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. +
-  * -3-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// correspond ​à 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 [[:gestion_compte|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 monde) ont l'​autorisation d'​effectuer sur un fichier ​donnéPar exempleune 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.
-  - 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, 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 ; ajouter, modifier 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).+
  
-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é pars une série de 9 caractères,​associé ​3 par 3 (rwx rwx rwx) 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 55: Ligne 77:
 </​note>​ </​note>​
  
-<note tip>​**Comment sont déterminées les droits d'​accès sur une partition ?**+===== 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 système de fichiers d'une partition ''/​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 à un fichier ===== +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 : +
-  - **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|user mask]]//). Dans Ubuntu, le masque utilisateur par défaut accorde les permissions ''​rwx-rx-rx''​ : +
-    * le propriétaire du fichier dispose des permissions de lecture, d'​écriture et d'​exécution ; +
-    * le groupe propriétaire dispose des droits de lecture et d'​exécution,​ mais pas d'​écriture ; +
-    * le reste du monde dispose des droits de lecture et d'​exécution,​ mais pas d'​écriture.+
  
-Le masque utilisateur par défaut peut être modifié pour un autre choix : +=== Setgid ===
-  * en console, pour la durée de la session courante. Ceci se fait à l'aide de la commande ''​[[wpfr>​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 ; +
-  * de manière permanente pour un ou plusieurs utilisateurs. Le nouveau masque utilisateur se définit en modifiant le fichier de configuration caché ​ //​**.bash_profile**//​ dans chacun des dossiers personnels des comptes d'​utilisateurs pour lesquels le masque utilisateur doit être changé. Ce nouveau masque utilisateur est utilisé même après une nouvelle ouverture de session ; +
-  * de manière permanente pour l'​ensemble des comptes d'​utilisateurs du système d'​exploitation. Le nouveau masque utilisateur se définit en modifiant le fichier de configuration ///​etc/​**profile**//​. Ce nouveau masque utilisateur est utilisé même après une nouvelle ouverture de session.+
  
 +On peut changer ce comportement pour un répertoire en particulier,​ en positionnant son bit [[wpfr>​Setuid|Setgid]].
 + 
 +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).
  
 +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).
  
-===== chown ou chmod : lequel dois-je utiliser ? =====+On positionne un Setgid sur un répertoire grâce à la commande ''​chmod g+s'' ​: 
 +  chmod g+s /​chemin/​du/​répertoire
  
-On observe souvent dans le forum des demandes d'aide concernant l'​accès restreint ​à des fichiers : comment en ouvrir l'​accès à son utilisateur ? Trop fréquemment, ​la réponse se résume à un automatique ​''​chmod ​777''​ sur le fichier, ou encore un ''​chown identifiant:​identifiant''​. ​Pourtant, comme nous l'​avons vu, ''​chown''​ et ''​chmod''​ ont des buts différents : le premier modifie les propriétaires d'un fichier, alors que le second modifie les permissions sur ce fichier. Lequel préférer ? La réponse est aussi simple qu'​elle ne l'est pas : ça dépend de ce que vous prévoyez faire avec votre fichier !+On peut le supprimer grâce ​à la commande ​''​chmod ​g-s''​.
  
-Pour illustrer nos proposimaginons un fichier ''​foo.txt''​ appartenant à l'​utilisateur '​root'​ et au groupe '​root'​Ce fichier a le mode 420 (soit lecture seule pour le propriétaire,​ écriture seule pour le groupe propriétaire ​et aucun accès pour le reste du monde).+À ce sujetvoir par exemple [[https://​tech.feub.net/​2008/​03/​setuid-setgid-et-sticky-bit/​|cette documentation]].
  
-  * Avec uniquement ''​chown'',​ le propriétaire d'​un ​fichier ​est changémais les permissions sur ce fichier sont maintenuesExécutons la commande suivante :+<​note>​Lorsqu'​un ​sous-répertoire ​est crééil hérite lui aussi de la propriété Setgid.</​note>​
  
-<​code>​sudo chown toto foo.txt</​code>​+==== Permissions par défaut ====
  
-L'​utilisateur 'toto' ​devient désormais ​le propriétaire du fichier'toto' ​a maintenant accès en lecture seule à ce fichier ​(puisque les permissions ​pour le propriétaire du fichier sont limitées à la lecture ​seule pour le propriétaire ​du fichier). Les permissions ne sont pas modifiées.+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%%''​).
  
-  * Avec uniquement ​''​chmod'',​ les permissions ​d'un fichier ​sont modifiées, mais les propriétaire et groupe propriétaire sont maintenusExécutons ​la commande ​suivante ​+Le masque utilisateur peut être modifié à différents niveaux : 
-<code>sudo chmod ug+rw foo.txt +<​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>​ 
-sudo chmod o+r foo.txt</code>+  * 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.
  
-Le propriétaire du fichier et le groupe propriétaire du fichier disposent désormais de l'​accès ​en lecture et écriture sur le fichier ''​foo.txt'',​ et le reste du monde y a accès en lecture seule. L'​utilisateur '​toto'​ n'a donc accès qu'en lecture au fichier, puisqu'​il n'est ni le propriétaire ('​root'​) ni membre du groupe propriétaire (groupe '​root'​) ; il n'a donc que les accès du reste du monde.+===== Manipuler les droits d'​accès ​=====
  
-//​Plus ​d'explications???​// Allons-y plus simplement avec un comportement typique ;-) :+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]]//​.
  
-  - Si un fichier ou dossier contient des informations relativement sensibles ou privées, utilisez conjointement ''​chown'' ​et ''​chmod''​ pour régler des propriétaires adéquats et des permissions qui ne permettent pas l'​accès total au fichier. +===== Volumes de stockage ​et systèmes ​de fichier ​=====
-  - Si un fichier ou dossier ne contient que de l'​information généraliste ou publique, autorisez simplement l'​accès en lecture, écriture et exécution au fichier ​avec ''​chmod''​ et ne vous préoccupez pas des propriétaires.+
  
-<note tip>Le très officiel, réellement utile et accessible site sur les droits d'​accès ​+Comment sont déterminées ​les droits d'​accès ​sur un volume ?
-[[wpfr>​Permissions_Unix]]+
  
 +==== 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 ceux qui préferent plus le mode texte que visuel voir le debian-reference en Français :+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.
  
-http://​www.debian.org/​doc/​manuals/​debian-reference/​ch01.fr.html#​_filesystem_permissions +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]]. 
-</note>+ 
 +==== 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 ===== 
 + 
 +  * //​[[:​permissions|Gérer les droits d'​accès (propriétés et permissions) des fichiers et répertoires]]//​ 
 +  * [[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/​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
  
 ---- ----
  
-//​Contributeurs : [[utilisateurs:​AlexandreP]],​ [[utilisateurs:​Ner0lph]],​ [[utilisateurs:​Sbrunner]],​[[utilisateurs:​Newbies]]//​+//​Contributeurs : [[:utilisateurs:​AlexandreP]],​ [[:utilisateurs:​Ner0lph]],​ [[:utilisateurs:​Sbrunner]],​[[:utilisateurs:​Newbies]], [[:​utilisateurs:​bcag2]],​ [[:​utilisateurs:​krodelabestiole]]//
  • droits.1323958633.txt.gz
  • Dernière modification: Le 19/04/2012, 04:58
  • (modification externe)