Dernière modification le 08/08/2021

Utilisateurs et groupes


Utilisateurs

Liste des utilisateurs

sudo cat /etc/passwd | awk -F: '{print $ 1}'

Recherche si un utilisateur existe

sudo cat /etc/passwd | grep "utilisateur"

Ajouter un utilisateur

sudo useradd utilisateur

Si vous souhaitez que l’utilisateur ne puisse pas se connecter en SSH ou exécuter des script la commande est la suivante :

sudo useradd -s /bin/false utilisateur

Attention

Cette dernière commande n’est fonctionnelle que si la ligne “/bin/false” est bien présente dans le fichier “/etc/shells”, ajouter la ligne si elle n’est pas présente.

Avec cette dernière commande le dossier personnel dans “home” n’est pas créé automatiquement :

sudo mkdir /home/utilisateur

Ajouter un utilisateur avec dossier personnel, groupe, shell :

useradd -d /home/utilisateur -G groupe1,groupe2 -s /bin/bash utilisateur

Supprimer un utilisateur

sudo userdel utilisateur

Attention

Cette façon de supprimer le compte n'entraîne pas la suppression du dossier personnel dans "home". Ce qui veut dire que l’utilisateur qui aura le même UID aura accès aux données de l’utilisateur supprimé. Il est alors recommandé de supprimer le dossier personnel.

Supprimer le compte et le dossier personnel dans “home” :

sudo userdel -r utilisateur

Modifier un utilisateur

sudo usermod [OPTIONS] utilisateur

Options :

Mot de pass d’un l’utilisateur

Permet de créer un mot de passe ou de le modifier :

sudo passwd utilisateur

Créer un utilisateur sur une seul commande

La commande “adduser” permet de créer un nouvel utilisateur, son mot de passe, renseignement personnel et le répertoire personnel de l’utilisateur. Exemple :

sudo adduser carl
Adding user `carl' ...
Adding new group `carl' (1003) ...
Adding new user `carl' (1003) with group `carl' ...
Creating home directory `/home/carl' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for carl
Enter the new value, or press ENTER for the default
Full Name []: Carl
Room Number []: 666
Work Phone []: 099 123456
Home Phone []: 0888 123456
Other []: 999
Is the information correct? [Y/n] y

Maintenant l’utilisateur “carl” peut se connecter.

Ajouter le privilège sudo à un utilisateur

Lorsque l’on veut remplacer l’utilisateur “pi”, vous devez ajouter le privilège “sudo” à un utilisateur. Ceci est possible avec la commande suivante :

sudo adduser carl sudo
Adding user `carl' to group `sudo' ...
Adding user carl to group sudo
Done.

Maintenant l’utilisateur “carl” à le privilège “sudo”.


Groupes

Liste des groupes

sudo cat /etc/group | awk -F: '{print $ 1}';

Recherche si un groupe existe

sudo cat /etc/group | grep "groupe"

Ajouter un groupe

sudo groupadd groupe

Supprimer un groupe

sudo groupdel groupe

Ajouter un utilisateur à un groupe

sudo adduser utilisateur groupe

Retirer un utilisateur d’un groupe

sudo gpassswd --delete utilisateur groupe

Lister les groupes d’un utilisateur

pour l’utilisateur courant :

sudo groups

Attention

Attention si la base de données à changé après la connexion de l'utilisateur, la liste n’est pas conforme. Il faut alors se déconnecter et se reconnecter.

ou pour un utilisateur bien précis :

sudo groups utilisateur

ou

sudo grep "utilisateur" /etc/group

Liste les utilisateurs d’un groupe

sudo grep "groupe" /etc/group


UID

UID de l’utilisateur courant :

id
uid=0(root) gid=0(root) groups=0(root)

UID d’un utilisateur précis:

id ftp
uid=1001(ftp) gid=1001(ftp) groups=1001(ftp)

Liste des UID

Afficher la liste des utilisateur et leur UID :

cut -f1,3 -d: /etc/passwd
root:0
daemon:1
bin:2
sys:3
sync:4
games:5
man:6
lp:7
mail:8
news:9
uucp:10
proxy:13
www-data:33
backup:34
list:38
irc:39
gnats:41
nobody:65534
systemd-timesync:100
systemd-network:101
systemd-resolve:102
_apt:103
pi:1000
messagebus:104

Comment trouver le premier UID libre

Lorsque l’on doit attribuer un “id” à un utilisateur, voici une commande qui affiche le premier id libre à partir de 1000 :

awk -F: '{uid[$3]=1}END{for(x=1000;x<=10000;x++)if(!uid[x]){print x;exit}}' /etc/passwd /etc/group

Où :
awk permet d’effectuer un certain nombre d’action sur un ou plusieurs fichiers


GID

Afficher la liste des groupes et leur UID :

cut -f1,3 -d: /etc/group
root:0
daemon:1
bin:2
sys:3
adm:4
tty:5
disk:6
lp:7
mail:8
news:9
uucp:10
man:12
proxy:13
kmem:15
dialout:20
fax:21
voice:22
cdrom:24
floppy:25
tape:26
sudo:27
audio:29
dip:30
www-data:33
backup:34
operator:37
list:38
irc:39
src:40
gnats:41
shadow:42
utmp:43
video:44
sasl:45
plugdev:46
staff:50
games:60
users:100
nogroup:65534
systemd-journal:101
systemd-timesync:102
systemd-network:103
systemd-resolve:104
input:105
kvm:106
render:107
crontab:108
netdev:109
pi:1000
messagebus:110
ssh:111
bluetooth:112
avahi:113
spi:999
i2c:998
gpio:997
systemd-coredump:996