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

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

## Les droits d'accès
### Fonctionnement

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 :
Exemple :
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 :
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

La commande chmod permet de modifier les droits associés à un fichier.
Enlever le droit de lecture (r) aux autres (o)
Ajouter un droit d'écriture (w) au groupe (g)
Combinaison des deux commandes :
Spécifier tous les droits avec une valeur numérique :

### Les droits par défaut et la commande umask

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 :
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
### La commande chown

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 chgrp

Comme la commande chown, la commande chgrp change le groupe propriétaire d'un fichier ou d'un répertoire.
On peut aussi changer le propriétaire et le groupe en une seule commande :
Le raccourci suivant existe également :

## Les Access Control List (ACL)

chapitre à écrire

### Afficher les ACL

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 *

### Modifier une ACL

manipulation de la commande setfacl

### Sauvegarder les ACL

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.
ou
si la sauvegarde se fait en chemin absolu.
Le fichier /home/acl.sauv sera également sauvegardé sur bande.