2017-11-03 / 420-C42-MA / Matériel et système d'exploitation client 2

Précédent : 2017-10-30 / 420-C42-MA / Matériel et système d'exploitation client 2

## Gestion des utilisateurs

### Fichiers concernés

* /etc/passwd
* /etc/shadow
* /etc/group

### Commande *adduser*

La commande va créer

* l'utilisateur <user>
* son groupe <user>
* le répertoire */home/user*

#### Utilisation la plus simple

```
adduser lsavard

```

Ne pas confondre avec useradd ! Celle-là va créer un utilisateur et son groupe, mais rien de plus (ni le répertoire, ne même un mot de passe).

```
useradd lsavard
passwd lsavard
mkdir /home/lsavard
chmod ...

```

### /etc/passwd

Vérification rapide

```
tail /etc/passwd

```

Exemple :

```
r00t:x:1001:1001:John Ripper,666,,:/home/r00t:/bin/bash

```

Structure d'une ligne :

```
<login>:<x>:<group id>:<user id>:<prénom, nom ou commentaire>:<home dir>:<shell>

```

Relire : 2017-06-21 / 420-R62-MA / Introduction à la sécurité informatique

### /etc/shadow

Les mots de passe ne sont pas stockés dans /etc/passwd ! Ils sont dans /etc/shadow en forme haché.

Exemple :

```
r00t:$6$1PyO5ghP$rh6YisASR2bRlpj2QDCMcuOepZp06bT4bAkz/wGKVubK3kIh8rKLtxevjPu4vt5Nn3KvK.nofLstKZv.r2FKG/:17338:0:99999:7:::

```

Explication du format de fichier /etc/shadow sur tldp.org.

#### Algorithmes de hachage

* MD5 ― n'est plus utilisé
* SHA
* etc (lire plus sur Wikipédia)

### Commande usermod

Pour modifier tel ou tel paramètre d'un utilisateur...

## Gestion des droits

### Droits de base de Linux

* **r** ― lire (ang. read)
* **w** ― écrire (ang. write)
* **x** ― exécuter (ang. execute) pour *exécuter un fichier* ou *entrer un répertoire*

### Trois groupes de droits

* propriétaire
* groupe propriétaire
* autres

Pour chaque fichier/répertoire on spécifie les droits pour chaque de ces groupes:

Personne à part du propriétaire ne peut pas modifier les droits d'accès propriétaire (user), même pas root (à vérifier !) (pourtant root peut prendre la possession du fichier/répertoire et modifier les droits aprés).

Exemple :

```
-rw-r--r-- 1 tivasyk tivasyk   36 oct  6 10:04 fruits.txt

```

Format :

```
D |  U  |  G  |  O
- | rw- | r-- | ---

```

Changer les droits d'accès

### Commande chmod

#### Donner les droits de lire / écrire à l'utilisateur (propriétaire)

```
chmod u+rw readme.txt

```

#### Retirer les droits d'écrire du groupe

```
chmod g-w readme.txt

```

#### Spécifier les droits des autres (other)

```
chmod o= readme.txt

```

#### Format binaire

* r = 4
* w = 2
* x = 1

Combinaisons :

* rx = 5 = 4+1
* rw = 6 = 4+2
* rwx = 7 = 4+2+1
* 0 = aucun droit !

Exemple :

```
chmod 640 readme.txt

```

Ça veut dire : donner 6 (rw-) au propriétaire, 4 (r--) au groupe et 0 (---) aux autres.

Exemple :

```
chmod 777 /examen

```

Tous les droits à tous !

### Permissions par défaut

* **644** ― fichiers [-rw-r--r--]
* **755** ― répertoires [drwxr-xr-x]

Pour modifier les droits d'un répertoire ET tous les fichiers dedans, il faut le faire recursivement :

```
chmod -R 777 /examen

```

### Commande umask

umask = 0**022** (par défaut) ― modificateur de droits d'accès par défaut !

* fichier : 666 - 022 = 644 (droits par défaut pour un fichier)
* répertoire 777 - 022 = 755 (droits par défaut pour un répertoire)

Pour modifier les droits d'accès par défaut ― changer umask ! Exemple :

```
umask 0026

```

Après ça les fichiers seront crées avec les droits 640 (-rw-r-----) plutôt que 644 (-rw-r--r--), et les répertoires ― 751 (drwxr-x--x).