Linux part 6 – Utilisateurs et droits

Linux est un système multi-utilisateurs. Cela signifie que plusieurs personnes peuvent travailler simultanément sur le même OS, en s’y connectant à distance notamment.

Puisque plusieurs utilisateurs peuvent être connectés à Linux en même temps, celui-ci doit avoir une excellente organisation dès le départ. Ainsi chaque personne a son propre compte utilisateur, et il existe un ensemble de règles qui disent qui a le droit de faire quoi.

Le système doit tout savoir sur les utilisateurs et groupes. Chaque compte et groupe possède un identifiant unique.

Qu’est-ce qu’un UID et un GID ?

L’UID pour un utilisateur et le GID pour un groupe. Les UIDs et GIDs sont des valeurs numériques. En dessous de 1000 se sont des IDs système, au dessus de 1000 se sont des IDs utilisateurs.

C’est le numéro unique qui identifie un utilisateur (uid) et un groupe (gid) dans un système multi-utilisateur.

UID:  User Identifier
GID:  Group Identifier

L’UID 0 est réservé à root

Les fichiers:

/etc/nsswitch.conf     Fichier indiquant  les annuaires locaux ou réseaux ou rechercher les comptes
/etc/passwd                 Fichier contenant la base locale des comptes utilisateurs
/etc/group                    Fichier contenant la base locale des groupes
/etc/shadow                 Fichier contenant les mots de passe locaux et leur durée de vie

Les commandes:

useradd, usermod, userdel:             Ajout, modification, suppression
groupadd, groupmod, groupdel:     Ajout, modification, suppression
passwd:                                                 Modifie le mot de passe d’un compte
chpasswd:                                             Change un mot de passe de manière scriptable
id:                                                           Affiche l’identité d’un compte
chsh, chfn:                                            Modifier le Shell, les commentaires d’un compte
getent:                                        Affiche les données d’un annuaire (passwd, group, shadow)
pwck, grpck:                                     Vérifie la syntaxe des fichiers passwd et group

Exemple:

# Créer le compte philippe.lima, uid 1001, groupe principal admin, groupes secondaires news et mail, commentaire Architecte_SI, répertoire de connexion /home/philippe.lima (-m création du répertoire), son shell le bash

[philippe.lima@linux]$ useradd -u 1001 -g admin -G news,mail -c Architecte_SI -d /home/philippe.lima -m -s /bin/bash philippe.lima

Les catégories l’utilisateur:

u:     Le propriétaire du ficher
g:     Les membres du groupe auquel est affilié le fichier
o:     Les autres utilisateurs

Les droits pour un fichier ordinaire:

r:     Le droit de lecture
w:    Le droit d’écriture
x:     Le droit d’exécution  (ne doit être utilisé que pour des binaires compilés ou des scripts)

Les droits pour un répertoire:

r:      Le droit de lecture (permet de connaitre la liste des fichiers)
w:     Le droit d’écriture (permet de modifier le répertoire, créer ou supprimer des entrées)
x:      Le droit d’accès (permet d’accéder aux fichiers du répertoire) Ce droit est important, sans lui personne n’a aucun accès aux fichiers du répertoire.

Le Sticky bit:

– Droit réservé a root.
– Corrige un défaut du système.
– Par défaut, un répertoire accessible en écriture à un ensemble d’utilisateurs permet à l’un d’entre eux de détruire les fichiers d’un autre utilisateurs. Avec le Sticky, il faut être propriétaire d’un fichier pour avoir le droit de le détruire.

Les droits d’endossement (SUID,SGID) pour un exécutable:

– SUID:    Sur un binaire exécutable permet à l’utilisateur de l’application d’avoir les mêmes droits d’accès que le propriétaire du binaire
– SGID:    Permet d’endosser les droits du groupe auquel appartient le binaire.

Le SGID pour un répertoire:

Lorsqu’on crée un fichier dans un répertoire, il est automatiquement affilié à son groupe courant (son groupe principal)
Si on crée un fichier dans un répertoire avec le droit SGID, son groupe sera identique à celui du répertoire.

Les droits en octal:

4000      SUID               endossement
2000      SGID               endossement
1000      Sticky-bit
400        Read                user
200         Write              user
100         Execute          user
40           Read               group
20           Write              group
10            Execute          group
4              Read               other
2              Write              other
1              Execute          other

-rwxrwxrwx    u,g,o ont tous les droits
-rwxrwx—      Les o n’ont aucun droit
-rwx——        Seul le propriétaire a tous les droits
-rwxr-xr-x       Le propriétaire a tous les droits, le groupe en lecture et exécution et les autres en exécution
-r–r–r–          Tout le monde a le droit de lecture
-rwxrwxrwt     Le Sticky-bit est positionné mais aussi le x pour les autres
-rwxrwsrwT    Le Sticky-bit est présent, mais pas le droit x pour les autres. Le SGID est présent pour le groupe
—s–s–x          Les droits SUID, SGID et les droits exécution sont présent.

Les droits s et t sont en minuscule s’ils masquent un droit d’exécution. Ils sont en majuscule dans le cas contraire

Exemple:

[p.lima@linux]$ chmod 444 fichier
[p.lima@linux]$ chmod ug+w fichier
[p.lima@linux]$ chmod u+w,g+w fichier

# Afficher les caractéristiques de l’utilisateur plima et du group plima

[p.lima@linux]$ getent passwd plima
plima:x:1002:1002:Philippe LIMA,,,:/home/plima:/bin/bash

[p.lima@linux]$ getent group plima
plima:x:1002:

# Attribuez un password de manière scriptable

[p.lima@linux]$ echo « azerty123 » | passwd –stdin plima

# Recherchez les fichiers de l’user plima

[p.lima@linux]$ find /home -user plima

# Créez un compte plima ayant les mêmes droits que root

[p.lima@linux]$ useradd -u 0 -o -d /root p.lima

twitterlinkedin

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*