Liste de commandes pour gérer les utilisateurs et groupes sur Unix

Gérer les utilisateurs et les groupes

Commande Résultat
adduser Ajout d'un utilisateur avec ses informations
deluser Supprime l'utilisateur
delgroup Supprime un groupe ?
useradd commande de bas niveau pour ajouter un utilisateur
userdel commande de bas niveau pour supprimer un utilisateur
groupadd commande de bas niveau pour ajouter un groupe
groupdel commadne de bas niveau pour supprimer un group

Exemples d'utilisations

  • Ajouter un utilisateur qui aura accès aux fichiers logs et a certains droits administrateur :
# usermod -a -G adm,sudo mon_utilisateur
  • Autoriser l'utilisateur à certaines applications normalement réservé à l'administrateur :

Par exemple, ici on autorise l'utilisateur à mettre à jour le système.

# visudo

On ajout cette ligne :

mon_utilisateur ALL = NOPASSWD:/usr/bin/apt-get,/usr/bin/aptitude

Par la suite, il lui sera possible d'utiliser ces commandes :

$ sudo apt-get update

Changer des informations sur l'utilisateur en question

Commande Résultat
chfn Changer les infos administrative d'un utilisateur
chsh Changer le shell d'un utilisateur
chage Change les conditions d’expiration d'un mot de passe utilisateur
chage -l <user> Affiche la data d'expiration du mot de passe
passwd -e Oblige le changement du mot de passe d'un utilsateur lors de sa prochaine connexion
passwd -l Désactive temporairement un compte
passwd -u Active un compte
vipw Editer le fichier /etc/passwd de manière sûre
vigr Editer le fichier /etc/group de manière sûre

Changer d'UID ou de GUID

~~~ usermod -u 9383 $USER groupmod -g 9383 $USER ~~~

Créer un groupe d'utilisateur

Ce groupe pourra écrire dans le dossier des autres utilisateurs appartenant uniquement au même groupe.

Créons le groupe mon-groupe avec l'utilisateur toto et tata :

addgroup mon-groupe 
adduser ­­home /home/toto ­­shell /bin/false ­­ingroup mon-groupe ­­disabled­password toto
adduser ­­home /home/tata ­­shell /bin/false ­­ingroup mon-groupe ­­disabled­password tata

Ne pas définir de shell est utilise dans le cas d'un utilisateur rattaché à un service vu qu'il ne nécessite pas d'un terminal.

  • Créer un dossier qui sera accessible uniquement par les précédents utilisateurs et sans qu'ils y accèdent grâce au nom du groupe :
setfacl ­Rm u:toto:rwx /tmp/dossier_a_partager

Intervention temporaires

Il peut arriver que l'on souhaite donner certains droits/accès à un utilisateur de manière temporaire.

  • Changer l'ID du groupe :
newgrp users

Avec la commande id on remarque ce changement

root@light:/home/light# newgrp users
root@light:/home/light# id
uid=0(root) gid=100(users) groupes=100(users),0(root)

Pour quiter le groupe :

exit

Ce qui nous donne :

root@light:/home/light# exit
exit
root@light:/home/light# id
uid=0(root) gid=0(root) groupes=0(root)
  • Executer une commande avec un autre ID de groupe :
sg toto 'touch fichier'

Modifier l'environnement de base des utilisateurs

  • Il faut savoir que le dossier /etc/skel est utilisé pour personnaliser les environnements de travail des utilisateurs. Par exemple, lors de la création d'un fichier / dossier dans ce répertoire skel, ces données s'y trouvant sera présent lors de la création d'un utilisateur avec ses droits respectifs. Cette technique peut être intéressante si l'on personnalise le fichier .bashrc
  • Comme le nom du dossier l'indique /etc/alternative contient des solutions alternatives grâce à des liens pointant vers des programmes installé sur la machines.

Par exemple, on demande à nos utilisateurs d'utiliser la commande suivante pour éditer un fichier :

editor fichier.txt

Par défaut, celui-ci s'ouvrira avec la paquet “nano”. Admettons que l'administrateur veut que ses utilisateurs utilisent “vim”. Il procédera alors de cette manière :

update-alternatives --set editor /bin/vim

S'il souhaite connaitre les éditeurs installé sur la machine, il peut lancer cette comande :

update-alternatives --list editor