Le système d'exploitation GNU-Linux/Propriétaires et droits d'accès

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


  1. Qu'est-ce qu'un système d'exploitation ?
  2. Unix et Linux
  3. Partitionnement du disque
  4. Installation
    1. Installer Debian via le réseau
  5. Utilisateur Unix, l'interface console
    1. Le login
    2. Commandes de base
    3. L'aide en ligne man
    4. L'éditeur de texte vi
    5. Les shells
    6. La complétion
    7. Les jokers
    8. Les répertoires importants
    9. Redirection des entrées/sorties
    10. Invoquer un programme en tâche de fond
    11. Propriétaires et droits d'accès
    12. Processus
    13. Locale
  6. Administration du système
    1. Configuration du réseau
    2. Les utilisateurs et groupes
    3. Le processus d'initialisation
    4. Les systèmes de fichiers
    5. Le système virtuel /proc
    6. Les périphériques /dev
    7. L'ordonnanceur de travaux cron
    8. Le backup : tar et gzip
    9. ghost avec partimage
    10. sauvegarde de fichiers avec rsync
    11. Les fichiers journaux syslog
    12. Installation de nouveaux logiciels
    13. Le noyau Linux et les modules
    14. Autres commandes utiles
    15. Installation RAID1 logiciel + LVM + XFS
    16. Scripts de surveillance
    17. Réseaux sans fil
  7. Administration des services réseaux
    1. Le serveur de noms BIND
    2. Le serveur de configuration réseau DHCP
    3. Le serveur de shell distant SSH
    4. Le partage de fichiers Samba
    5. Le partage de fichiers NFS
    6. Le serveur d'impression CUPS
    7. Le serveur de fichiers FTP
    8. Le serveur Web Apache
    9. La base de données MySQL
    10. Le serveur de mails Postfix
    11. Les annuaires LDAP
    12. L'outil d'administration Webmin
    13. La supervision
  8. Sécurisation d'un serveur Linux
    1. Installation d'un service en mode chroot
    2. Protection avec iptables
  9. Médiagraphie
  10. Auteurs


Les droits d'accès[modifier | modifier le wikicode]

Fonctionnement[modifier | modifier le wikicode]

Chaque fichier du système est associé à des droits d'accès. Ceux-ci sont affichés par la commande ls en utilisant le format long : ls -l.

Ces droits d'accès sont résumés en 10 caractères de la forme suivante :

type u_read u_write u_exec g_read g_write g_exec o_read o_write o_exec

Exemple :

drwxr-xr-x

Le premier caractère représente le type de fichier :


Types de fichier
Type Description
- Regular file : fichier normal
d Directory : répertoire
l Link : lien
b Block device : périphérique bloc (périphérique à accès direct)
c Character device : périphérique caractère (périphérique à accès séquentiel)
s Socket
p Pipe (tube nommé)

Le reste de la chaîne est scindé en 3 blocs de 3 caractères qui représentent les différents niveaux de droit :

  • user(u) : droits concernant le propriétaire du fichier,
  • group(g) : droits concernant les autres membres du même groupe que le propriétaire du fichier,
  • other(o) : droits concernant tous les autres utilisateurs.

Les trois caractères d'un bloc sont les suivants, dans l'ordre :

  • r (read) : droit de lire le fichier / lister le contenu du répertoire
  • w (write) : droit d'écrire dans le fichier / modifier le répertoire (créer/supprimer des fichiers)
  • x (execute) : droit d'exécuter le fichier (programme ou script) / ou de traverser le répertoire (changer le répertoire courant).

Si l'un des droits n'est pas accordé, un tiret est affiché à sa place.

Exemple :

-rwxrw-r--  ...  script.sh

Le fichier script.sh est un fichier normal (-) et est associé aux droits suivants :

  • Le propriétaire peut lire, écrire et exécuter ce fichier (rwx),
  • Les membres du même groupe que le propriétaire peuvent lire et écrire, mais pas exécuter ce fichier (rw-),
  • Les autres utilisateurs peuvent seulement lire ce fichier (r--).


Pour plus de détails voir : w:Permissions_Unix#Droits étendus.

Modifier les droits d'accès[modifier | modifier le wikicode]

La commande chmod permet de modifier les droits associés à un fichier.

Enlever le droit de lecture (r) aux autres (o)

~$ chmod o-r nom_de_fichier

Ajouter un droit d'écriture (w) au groupe (g)

~$ chmod g+w nom_de_fichier

Combinaison des deux commandes :

~$ chmod o-r,g+w nom_de_fichier

Spécifier tous les droits avec une valeur numérique :

~$ chmod 0754 nom_de_fichier

Les droits par défaut et la commande umask[modifier | modifier le wikicode]

Les droits par défaut d'un nouveau fichier sont définis par rapport à un masque des droits défini pour chaque utilisateur avec la commande umask.

Afficher le masque courant :

~$ umask
0022

Exemples :

  • Un fichier est créé avec les droits par défaut 666 (rw-rw-rw-) filtré par le masque 022 :
666 & ~022 = 644  rw- r-- r--
  • Un >répertoire est créé avec les droits par défaut 777 (rwxrwxrwx) filtré par le masque 022 :
777 & ~022 = 755  rwx r-x r-x


Les propriétaires et les groupes[modifier | modifier le wikicode]

La commande chown[modifier | modifier le wikicode]

La commande chown permet de changer le propriétaire d'un fichier ou d'un répertoire. Il faut être propriétaire du fichier ou répertoire, ou root selon la ressource que l'on souhaite modifier.

La commande chown est suivie du nouveau propriétaire puis du nom du fichier ou du répertoire:
$ chown alex toto  => donne la propriété du fichier toto à alex.

La commande chgrp[modifier | modifier le wikicode]

Comme la commande chown, la commande chgrp change le groupe propriétaire d'un fichier ou d'un répertoire.

La commande chgrp est suivie du nom du groupe puis du nom du fichier ou du répertoire :
$ chgrp etudiant toto  => donne la propriété du fichier toto au groupe etudiant.


On peut aussi changer le propriétaire et le groupe en une seule commande :

$ chown suivit du nom du propriétaire.nom du groupe suivit du nom du fichier
$ chown alex.prof toto  => donne la propriété du fichier toto à alex et au groupe prof.


Le raccourci suivant existe également :

$ chown alex. toto  => donne la propriété du fichier toto à alex et au groupe alex.

Les Access Control List (ACL)[modifier | modifier le wikicode]

À faire...
link={{{link}}}

chapitre à écrire

Afficher les ACL[modifier | modifier le wikicode]

afficher tous les droits, y compris dans les sous-répertoires : $ getfacl -R *

afficher tous les droits sauf les droits de base : $ getfacl --skip-base -R *

Ajouter une ACL[modifier | modifier le wikicode]

Modifier une ACL[modifier | modifier le wikicode]

À faire...
link={{{link}}}

manipulation de la commande setfacl

Supprimer une ACL[modifier | modifier le wikicode]

Sauvegarder les ACL[modifier | modifier le wikicode]

À faire...
link={{{link}}}

manipulation de la commande star

Pour les systèmes de fichier XFS, il convient également de sauvegarde les ACLs. La sauvegarde des ACLs doit être effectuée dans un fichier avant la sauvegarde sur bande.

$ getfacl --skip-base -R /home/acl.sauv

ou

$ getfacl --skip-base -absolute_name -R /home > /home/acl.sauv 

si la sauvegarde se fait en chemin absolu.

Le fichier /home/acl.sauv sera également sauvegardé sur bande.