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 19/04/2012, 04:58]
24.202.144.127
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 FATvFAT et NTFSCes systèmes ​de fichiers ne gèrent pas les droits ​d'accès selon la norme POSIXCes 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 fichierspuis à son remontage avec des options différentes. +==== Propriétaires par défaut ==== 
-</​note>​+ 
 +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''​. 
 + 
 +=== Setgid === 
 + 
 +On peut changer ce comportement pour un répertoire en particulieren 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). 
 + 
 +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 droitslecture (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%%''​).
  
-===== Droits attribués automatiquement ​à un fichier ===== +Le masque utilisateur peut être modifié ​à différents niveaux ​
-Lorsqu'​un nouveau fichier est créé, celui-ci obtient automatiquement certains paramètres ​+<​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>​ 
-  - **Propriétaires :** Par défautle 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'' ​; +  * 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 utilisateurmais le masque utilisateur par défaut ​sera de nouveau utilisé à l'ouverture d'une nouvelle session utilisateur. 
-  ​**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''​ : +  * 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>​ 
-    le propriétaire du fichier dispose des permissions de lectured'​écriture ​et d'​exécution ; +  **globalement** (déconseillé)définitivement ​et pour tous utilisateurs par défaut : 
-    * le groupe propriétaire dispose des droits de lecture et d'exécution, mais pas d'écriture ; +    * en ajoutant la ligne suivante dans le fichier ​''/​etc/​pam.d/​common-session'' :<file - common-session>​session ​   optional ​    ​pam_umask.so umask=007</​file>​ 
-    * le reste du monde dispose des droits ​de lecture et d'exécution, mais pas d'écriture.+    * 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 masque utilisateur par défaut peut être modifié pour un autre choix : +===== Manipuler ​les droits d'accès =====
-  * 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.+
  
 +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 =====
  
-===== chown ou chmod : lequel dois-je utiliser ​=====+Comment sont déterminées les droits d'​accès sur un volume ​?
  
-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 !+==== Systèmes ​de fichiers compatibles ​avec la norme POSIX ====
  
-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).+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).
  
-  * Avec uniquement ''​chown'', ​le propriétaire ​d'​un ​fichier est changémais les permissions ​sur ce fichier ​sont maintenuesExécutons la commande suivante :+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 exemplepour 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.
  
-<code>sudo chown toto foo.txt</​code>+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]].
  
-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.+==== Systèmes de fichiers incompatibles avec la norme POSIX ====
  
-  * Avec uniquement ''​chmod''​, les permissions ​d'un fichier sont modifiées, mais les propriétaire et groupe propriétaire sont maintenus. Exécutons ​la commande suivante : +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]].
-<code>sudo chmod ug+rw foo.txt +
-sudo chmod o+r foo.txt</​code>​+
  
-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.+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''​.
  
-//​Plus ​d'explications???//​ Allons-y plus simplement avec un comportement typique ;-) :+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.
  
-  - 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. +===== Voir aussi =====
-  - 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.+
  
-===== Références =====+  * //​[[:​permissions|Gérer les droits d'​accès (propriétés et permissions) des fichiers et répertoires]]//​
   * [[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)]]
 +  * [[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.1334804337.txt.gz
  • Dernière modification: Le 19/04/2012, 04:58
  • par 24.202.144.127