Utilisateurs et droits

Comme nous l’avons dit précédemment, Linux est en système d’exploitation multi-utilisateurs. Plusieurs personnes peuvent donc s’y connecter simultanément. c’est notamment le cas pour la plupart des serveurs Web tournant sous Linux (à peu près 90% des serveurs), où chaque site web appartient à un utilisateur. Chaque utilisateur peut se connecter à distance pour maintenir son site.

De ce fait, chaque utilisateur possède son propre espace personnel. Nous allons voir ici comment créer ces comptes, et leur donner des droits.

Les utilisateurs

Les utilisateurs sont classés en deux catégories. Les utilisateurs standards, et le super-utilisateur : root. Seul root à le droit de vie et de mort sur son système. Lui seul peut modifier son Linux.

Sur les distributions Ubuntu et dérivés, l’accès au root est interdit.

Les autres utilisateurs sont de simples usagers. Ils ne peuvent pas installer ou modifier le système. Vous aurez remarqué que même vous qui avez installé votre Linux, n’avez pas forcément accès à tout ! C’est une question de sécurité; il est impossible de faire une erreur, à moins de la faire sciemment.

Les utilisateurs peuvent être aussi rassemblés sous forme de groupes. chaque groupe peut avoir des droits différents des autres. Par exemple, les utilisateurs du groupe BAC peuvent avoir accès à certains répertoires et programmes, tandis que ceux du groupe Bureautique n’auront droit qu’à leur espace personnel,

Les utilisateurs peuvent se situer dans plusieurs groupes en même temps

sudo

Comment faire dès lors pour ajouter une application si nous ne sommes pas root ?

Nous pouvons, si nous sommes dans un groupe spécial nommé les « sudoers », obtenir les super-pouvoirs du root pendant quelques instants via la commande sudo (Substitute User DO).

sudo apt update

Deux fichiers importants

Je le rappelle, en Linux, tout est fichier. La gestion des utilisateurs utilisent deux fichiers différents: /etc/passwd et /etc/shadow.

/etc/passwd

Ce fichier contient les informations relatives à tous les utilisateurs du système. Par défaut, c’est dans ce fichier que les utilisateurs sont définis. Regardons le contenu de ce fichier:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false
systemd-network:x:101:103:systemd Network Management,,,:/run/systemd/netif:/bin/false
systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false
systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false
_apt:x:104:65534::/nonexistent:/bin/false
messagebus:x:105:109::/var/run/dbus:/bin/false
pulse:x:106:114:PulseAudio daemon,,,:/var/run/pulse:/bin/false
lightdm:x:107:117:Light Display Manager:/var/lib/lightdm:/bin/false
nm-openconnect:x:108:118:NetworkManager OpenConnect plugin,,,:/var/lib/NetworkManager:/bin/false
nm-openvpn:x:109:119:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/bin/false
hplip:x:110:7:HPLIP system user,,,:/var/run/hplip:/bin/false
avahi:x:111:120:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
ray:x:1000:1000::/home/ray:/bin/bash
usbmux:x:112:46:usbmux daemon,,,:/var/lib/usbmux:/bin/false

Chaque ligne est un utilisateur. La ligne est décomposée en plusieurs champs, séparés par un double point (:) Les champs sont login:password:UID:GID:infos:home:shell

  • login : c’est le nom d’utilisateur.
  • password : le mot de passe peut être affiché en clair ici, ou être chiffré avec crypt, md5 ou blowfish (passwd). Dans ce cas, le champ peut avoir plusieurs significations:
    • * : il est impossible de s’authentifier avec ce compte.
    • !! : le compte est désactivé
    • x ou ! : le mot de passe est crypté et stocké dans le fichier /etc/shadow.
    • [vide]: Il n’y a pas de mot de passe pour ce compte.
  • UID : c’est l’identifiant numérique unique pour chaque utilisateur. Par convention, root dispose du UID 0 et les UID inférieurs à 100 sont réservés au système.
  • GID : c’est l’identifiant numérique unique du groupe principal de l’utilisateur.
  • infos : ce champ contient les infos personnelles de l’utilisateur, séparés par une virgule.
  • home : le chemin du répertoire personnel de l’utilisateur. Souvent /home/login.
  • shell : interpréteur de commande qui sera lancé après l’authentification. Souvent bash.
Nous venons de voir que les 100 premiers UID sont des utilisateur système. Qu’est-ce qu’un utilisateur système ? Linux tourne très souvent sur une architecture client-serveur. Avec ces utilisateurs systèmes, un logiciel peut communiquer avec des services de la distribution.

/etc/shadow

Le fichier /etc/passwd est un fichier accessible en lecture seule par tout le monde. La présence du mot de passe dans ce fichier, même crypté, peut poser un problème de sécurité, puisque le fichier est accessible. Pour palier ce problème, les mots de passes sont désormais stockés dans le fichier /etc/shadow que seul root peut lire.

Le contenu du fichier est similaire a /etc/passwd.

La gestion des utilisateurs

adduser

sudo adduser  va créer un nouvel utilisateur avec le nom passé en paramètre. Le système vous posera une suite de questions pour faciliter la création du compte. Par défaut, le système créera un groupe propre à l’utilisateur, lui assignera un n° de groupe supérieur à 1000 (les 1000 premiers étant réservés au système), et va créer son répertoire utilisateur dans /home.

En passant un second paramètre à la commande, sudo adduser [group] , nous pouvons définir l’appartenance du nouvel utilisateur au groupe spécifié.

deluser

La commande pour supprimer un utilisateur est sudo deluser  . Attention, aucune confirmation n’est demandée. Vous êtes root, après tout !

Cependant, deluser ne supprime que le compte, pas les fichiers personnels associés. Pour tout supprimer définitivement, il faut ajouter le paramètre suivant : sudo deluser –remove-home

Ne supprimez pas votre compte utilisateur ! Sans compte, vous ne pourrez plus vous connecter à votre système

Voir qui est connecté

Pour connaitre l’identité de l’utilisateur courant, ou connaître les utilisateurs connectés au système, nous utiliserons les commandes suivantes : whoami , who , w , et users . Chaque commande offre des infos plus ou moins fines.

La gestion des groupes

Sous linux, les groupes permettent de classer les utilisateurs. De la même manière que ceux-ci, les informations pour les groupes du système sont stockés dans un fichier associé : /etc/group.

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:ray
tty:x:5:
disk:x:6:
lp:x:7:ray
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:ray
floppy:x:25:ray
tape:x:26:
sudo:x:27:ray
audio:x:29:pulse,ray
dip:x:30:
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:

Comme on peut le voir, le fichier /etc/group ressemble au fichier /etc/passwd, et contient les champs suivants : group:x:GID:user1,users

  • group : le nom du groupe
  • x :  ce champ n’est plus utilisé, mais il est lié aux anciennes versions de Unix…
  • GID : l’identifiant numérique unique du groupe:
  • user1, users :  les utilisateurs appartenant au groupe.

addgroup et delgroup

Chaque utilisateur appartient à au moins un groupe. Par défaut, la commande adduser crée un utilisateur et un groupe au même nom que l’utilisateur. Nous avons vu aussi que la commande adduser peut ajouter un utilisateur dans un groupe, mais nous n’avons pas encore vu comment créer ce groupe !

Pour créer un groupe, nous utiliserons la commande sudo addgroup [group] . Rien de plus compliqué.

Pour supprimer un groupe, nous utiliserons la commande associée : sudo delgroup [group]

Avec ça, nous pouvons créer des groupes et des utilisateurs, mais comment faire pour ajouter des utilisateurs existant à de nouveaux groupes, ou au contraire les supprimer d’un groupe ?

usermod

La commande usermod permet de modifier un utilisateur. Je vous conseille d’aller jeter un œil au manuel de usermod, vous y trouverez des éléments sympa. Nous retiendrons ici le paramètre -g qui permet de modifier le groupe : sudo usermod -g [group]

Il est possible d’ajouter plusieurs groupes en même temps : sudo usermod -aG [goup1],[group2],[group3],…  . Notez le G en Majuscule ! Les noms des groupes doivent être séparés par une virgule, sans espace

groups, id

Permet de voir les groupes associés à l’utilisateur courant.

Print Friendly, PDF & Email