Linux: gestion des utilisateurs
Gestion d'utilisateurs
Ajout
sudo useradd -m toto
création d'un nouvel utilisateur toto
et l'option -m
permet la création automatique d'un dossier personnel /home/toto
.
sudo adduser
est une commande (script perl qui utilise useradd
) qui fourni une interface plus agréable guidée par une série de questions.
Suppression
sudo deluser -r -f toto
: supprime l'utilisateur toto du système.
-r
supprime le répertoire home de ce user-f
force la suppression des fichiers du home, même ceux qui n'appartiennent pas à ce user
Désactivation
sudo passwd -l toto
: désactive le login sur le système avec login/mot de passe, attention le login via clé SSH sera toujours fonctionnel avec cette commande. Intervient sur le fichier /etc/shadow
sans supprimer le dossier utilisateur
sudo usermod --expiredate 1 toto
: désactive complètement le compte sans le supprimer du système, bloque également l'accès via clés SSH. Intervient sur le fichier /etc/passwd
usermod
permet de changer les caractéristiques d'un compte (expiration, chemin du dossier home, groupes etc)
Création ou modification du mot de passe d'un user
sudo passwd toto
permet de modifier interactivement le passwd de toto
Gestion des groupes d'utilisateurs
Ajout/création d'un groupe
sudo addgroup www-data
ajoute un nouveau groupe au système
Suppression d'un groupe
sudo delgroup www-data
supprime le groupe spécifié du système
Ajouter un user à un groupe
sudo usermod -a -G www-data $USER
ajoute l'utilisateur courant au groupe spécifié
Supprimer un user à un groupe
sudo gpasswd -d $USER www-data
supprimer l'utilisateur courant du groupe spécifié (ici www-data)
Sudo
La commande sudo permet à un utilisateur autorisé, d'exécuter des commandes avec les droits d'admins. Cette commande (à installer avec apt) s'appuie sur le fichier de conf /etc/sudoers.
Il est vivement recommandé d'utiliser l'utilitaire visudo
pour modifier ce fichier, car il effectuera une vérification syntaxique avant la sauvegarde du fichier /etc/sudoers
. Il est possible de configurer un éditeur de texte en particulier (ici Vim
) en lançant visudo
:
sudo VISUAL=$(command -v vi) visudo
La syntaxe générale est la suivante :
login_du_user ALL =(user) commande1, NOPASSWD: commande2,...
Pour autoriser un utilisateur toto à lancer n'importe quelle commandes :
toto ALL=(ALL) ALL
et pour autoriser l'exécution de sudo sans demander de mot de passe grâce à l'argument NOPASSWD (attention danger!):
toto ALL=(ALL) NOPASSWD:ALL
Il est également possible d'attribuer les droits à un groupe d'utilisateurs, il suffira alors de rajouter notre utilisateur à ce groupe (ex ici un groupe nommé sudo):
%sudo ALL=(ALL) NOPASSWD:ALL
Voici la signification de chaque argument (tiré de serversforhackers) et l'étendu de leur application :
- toto ALL=(ALL:ALL) ALL -> utilisateur toto
- toto ALL=(ALL:ALL) ALL -> tous les utilisateurs totos, loggés depuis n'importe quel machine
- toto ALL=(ALL:ALL) ALL -> utilisateur toto peut exécuter les commandes en tant que n'importe quel utilisateur
- toto ALL=(ALL:ALL) ALL -> utilisateur toto peut exécuter les commandes en tant que n'importe quel groupe
- toto ALL=(ALL:ALL) ALL -> cette règle s'applique à toutes les commandes (c'est ici qu'on spécifie la liste de commandes, si on ne souhaite pas donner accès à toutes les commandes du système)
- toto ALL=(ALL:ALL) NOPASSWD: ALL -> aucun password requis pas toto, il peut tout exécuter sur la machine sans limite
Fichiers importants
/etc/passwd
/etc/shadow
/etc/login.defs
/etc/deluser.conf
/etc/skel # arborescence par défaut copié lors d'un useradd -m
/etc/sudoers
Blog post Understanding /etc/passwd File Format sur cyberciti.biz