Développeur FullStack & Devops

Notes et mémos techniques

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

admin-linux
linux
user
group
linux
rédigé le 27/08/18, mis à jour le 11/03/22 par Behrouze
A proposCheat SheetsOutilsVidéos