Il faut être root pour avoir le droit de modifier ces fichiers.
3 fichiers essentiels pour gérer les utilisateurs d'une machine LINUX
Ces fichiers peuvent être modifié à la main mais c'est un peu risqué ! bien savoir ce que l'on fait
Sécurité !
Faire une copie du fichier que l'on va modifier , fichier.bak par exemple .. pour revenir à la configuration d'origine si besoin.
/etc/passwd
Le fichier /etc/passwd est un fichier système essentiel sous Linux et d'autres systèmes d'exploitation de type Unix. Il contient des informations sur les comptes utilisateurs du système. Chaque ligne du fichier représente un utilisateur et est structurée en plusieurs champs séparés par des deux-points (:). Voici la structure typique d'une ligne :
nom_utilisateur:x:UID:GID:commentaire:répertoire_home:shell
nom_utilisateur : Le nom de l'utilisateur.
x : Historiquement, ce champ contenait le mot de passe chiffré de l'utilisateur. Aujourd'hui, le mot de passe est généralement stocké dans le fichier /etc/shadow pour des raisons de sécurité, et ce champ contient simplement un x pour indiquer que le mot de passe est ailleurs.
UID (User ID) : L'identifiant numérique de l'utilisateur.
GID (Group ID) : L'identifiant numérique du groupe principal de l'utilisateur.
commentaire : Ce champ est souvent utilisé pour stocker des informations supplémentaires sur l'utilisateur, comme son nom complet.
répertoire_home : Le chemin du répertoire personnel de l'utilisateur.
shell : Le shell par défaut de l'utilisateur, c'est-à-dire le programme qui est lancé lorsque l'utilisateur se connecte.
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:/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-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
systemd-timesync:x:102:104:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:106::/nonexistent:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/false
uuidd:x:107:114::/run/uuidd:/usr/sbin/nologin
tcpdump:x:108:115::/nonexistent:/usr/sbin/nologin
avahi-autoipd:x:109:116:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/usr/sbin/nologin
usbmux:x:110:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
rtkit:x:111:117:RealtimeKit,,,:/proc:/usr/sbin/nologin
dnsmasq:x:112:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
cups-pk-helper:x:113:120:user for cups-pk-helper service,,,:/home/cups-pk-helper:/usr/sbin/nologin
speech-dispatcher:x:114:29:Speech Dispatcher,,,:/run/speech-dispatcher:/bin/false
avahi:x:115:121:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/usr/sbin/nologin
kernoops:x:116:65534:Kernel Oops Tracking Daemon,,,:/:/usr/sbin/nologin
saned:x:117:123::/var/lib/saned:/usr/sbin/nologin
nm-openvpn:x:118:124:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/usr/sbin/nologin
hplip:x:119:7:HPLIP system user,,,:/run/hplip:/bin/false
whoopsie:x:120:125::/nonexistent:/bin/false
colord:x:121:126:colord colour management daemon,,,:/var/lib/colord:/usr/sbin/nologin
geoclue:x:122:127::/var/lib/geoclue:/usr/sbin/nologin
pulse:x:123:128:PulseAudio daemon,,,:/var/run/pulse:/usr/sbin/nologin
gnome-initial-setup:x:124:65534::/run/gnome-initial-setup/:/bin/false
gdm:x:125:130:Gnome Display Manager:/var/lib/gdm3:/bin/false
dorian:x:1000:1000:dorian,,,:/home/dorian:/bin/bash
nvidia-persistenced:x:126:133:NVIDIA Persistence Daemon,,,:/nonexistent:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
systemd-oom:x:127:135:systemd Userspace OOM Killer,,,:/run/systemd:/usr/sbin/nologin
sssd:x:128:136:SSSD system user,,,:/var/lib/sss:/usr/sbin/nologin
etudiant:x:1001:1001:etudiant,,,:/home/etudiant:/bin/bash
sshd:x:129:65534::/run/sshd:/usr/sbin/nologin
/etc/shadow
Le fichier /etc/shadow est un autre fichier système crucial sous Linux et d'autres systèmes d'exploitation de type Unix. Il est utilisé pour stocker les informations sensibles relatives aux mots de passe des utilisateurs. Contrairement au fichier /etc/passwd, qui est accessible en lecture par tous les utilisateurs, le fichier /etc/shadow est protégé et ne peut être lu que par l'utilisateur root ou par des processus ayant des privilèges élevés. Cela renforce la sécurité en empêchant l'accès non autorisé aux mots de passe chiffrés.
Chaque ligne du fichier /etc/shadow correspond à un utilisateur et est structurée en plusieurs champs séparés par des deux-points (:). Voici la structure typique d'une ligne :
nom_utilisateur:mot_de_passe_chiffré:dernier_changement:min:max:avertissement:inactivité:date_expiration:champ_réservé
john est le nom de l'utilisateur.
$6$randomsalt$hashedpassword est le mot de passe chiffré. Le $6$ indique que l'algorithme de hachage SHA-512 est utilisé.
18264 est la date du dernier changement de mot de passe.
0 est le nombre minimum de jours requis entre les changements de mot de passe.
99999 est le nombre maximum de jours avant que le mot de passe ne doive être changé.
7 est le nombre de jours avant l'expiration du mot de passe pendant lesquels l'utilisateur est averti.
Les champs suivants sont vides, indiquant qu'il n'y a pas de période d'inactivité définie, que le compte n'expire jamais, et qu'il n'y a pas de champ réservé utilisé.
Le fichier /etc/shadow est essentiel pour la sécurité du système, car il protège les mots de passe des utilisateurs contre les accès non autorisés et permet de gérer les politiques de mot de passe, telles que l'expiration et les délais de changement.
root:!:18606:0:99999:7:::
daemon:*:18474:0:99999:7:::
bin:*:18474:0:99999:7:::
sys:*:18474:0:99999:7:::
sync:*:18474:0:99999:7:::
games:*:18474:0:99999:7:::
man:*:18474:0:99999:7:::
lp:*:18474:0:99999:7:::
mail:*:18474:0:99999:7:::
news:*:18474:0:99999:7:::
uucp:*:18474:0:99999:7:::
proxy:*:18474:0:99999:7:::
www-data:*:18474:0:99999:7:::
backup:*:18474:0:99999:7:::
list:*:18474:0:99999:7:::
irc:*:18474:0:99999:7:::
gnats:*:18474:0:99999:7:::
nobody:*:18474:0:99999:7:::
systemd-network:*:18474:0:99999:7:::
systemd-resolve:*:18474:0:99999:7:::
systemd-timesync:*:18474:0:99999:7:::
messagebus:*:18474:0:99999:7:::
syslog:*:18474:0:99999:7:::
_apt:*:18474:0:99999:7:::
tss:*:18474:0:99999:7:::
uuidd:*:18474:0:99999:7:::
tcpdump:*:18474:0:99999:7:::
avahi-autoipd:*:18474:0:99999:7:::
usbmux:*:18474:0:99999:7:::
rtkit:*:18474:0:99999:7:::
dnsmasq:*:18474:0:99999:7:::
cups-pk-helper:*:18474:0:99999:7:::
speech-dispatcher:!:18474:0:99999:7:::
avahi:*:18474:0:99999:7:::
kernoops:*:18474:0:99999:7:::
saned:*:18474:0:99999:7:::
nm-openvpn:*:18474:0:99999:7:::
hplip:*:18474:0:99999:7:::
whoopsie:*:18474:0:99999:7:::
colord:*:18474:0:99999:7:::
geoclue:*:18474:0:99999:7:::
pulse:*:18474:0:99999:7:::
gnome-initial-setup:*:18474:0:99999:7:::
gdm:*:18474:0:99999:7:::
dorian:$y$j9T$AeT.5h4ohrOQGD91.sny81$KVX.yQpUIsB0VlmAhLrpSPvCtxJwuxy5NWS5yC12bo2:19156:0:99999:7:::
nvidia-persistenced:*:18606:0:99999:7:::
systemd-coredump:!!:18606::::::
systemd-oom:*:19156:0:99999:7:::
sssd:*:19156:0:99999:7:::
etudiant:$y$j9T$5irJxZzCxSjwp0UH5c4DO1$7FqXhxTJZ5rjDUMuXyvTZQMRv4dwfY56xtXd0lVLmK6:19156:0:99999:7:::
sshd:*:20167:0:99999:7:::
/etc/group
Le fichier /etc/group est un fichier système important sous Linux et d'autres systèmes d'exploitation de type Unix. Il contient des informations sur les groupes d'utilisateurs. Chaque ligne du fichier représente un groupe et est structurée en plusieurs champs séparés par des deux-points (:). Voici la structure typique d'une ligne :
nom_du_groupe:x:GID:liste_des_membres
nom_du_groupe : Le nom du groupe.
x : Historiquement, ce champ contenait le mot de passe du groupe. Aujourd'hui, les mots de passe de groupe sont généralement stockés dans le fichier /etc/gshadow, et ce champ contient simplement un x pour indiquer que le mot de passe est ailleurs.
GID (Group ID) : L'identifiant numérique du groupe.
liste_des_membres : Une liste des noms d'utilisateurs qui sont membres du groupe, séparés par des virgules.
sudo:x:27:john,alice
Dans cet exemple :
sudo est le nom du groupe.
x indique que le mot de passe du groupe est stocké ailleurs.
27 est le GID du groupe.
john,alice sont les membres du groupe, qui ont donc les privilèges associés au groupe sudo.
Le fichier /etc/group est essentiel pour la gestion des utilisateurs et des permissions sur un système Linux, permettant une organisation et une sécurité efficaces des ressources système.
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,dorian,etudiant
tty:x:5:syslog
disk:x:6:
lp:x:7:
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:dorian,etudiant
floppy:x:25:
tape:x:26:
sudo:x:27:dorian,etudiant
audio:x:29:pulse
dip:x:30:dorian,etudiant
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:
video:x:44:
sasl:x:45:
plugdev:x:46:dorian,etudiant
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
systemd-journal:x:101:
systemd-network:x:102:
systemd-resolve:x:103:
systemd-timesync:x:104:
crontab:x:105:
messagebus:x:106:
input:x:107:
kvm:x:108:
render:x:109:
syslog:x:110:
tss:x:111:
bluetooth:x:112:
ssl-cert:x:113:
uuidd:x:114:
tcpdump:x:115:
avahi-autoipd:x:116:
rtkit:x:117:
netdev:x:119:
lpadmin:x:120:dorian,etudiant
avahi:x:121:
scanner:x:122:saned
saned:x:123:
nm-openvpn:x:124:
whoopsie:x:125:
colord:x:126:
geoclue:x:127:
pulse:x:128:
pulse-access:x:129:
gdm:x:130:
lxd:x:131:dorian,etudiant
dorian:x:1000:
sambashare:x:132:dorian,etudiant
nvidia-persistenced:x:133:
systemd-coredump:x:999:
sgx:x:134:
systemd-oom:x:135:
_ssh:x:118:
sssd:x:136:
etudiant:x:1001:
La gestion et l'administration des fichiers /etc/passwd, /etc/shadow, et /etc/group sont des tâches cruciales pour un administrateur système sous Linux. Ces fichiers sont essentiels pour la gestion des utilisateurs, des groupes et des permissions. Voici un guide détaillé sur la manière de les gérer et de les administrer :
Avec adduser est plus simple useradd, elle est interactive.
sudo adduser login
Et un questionnement sera fait pour réaliser le compte login .
sinon : useradd
Pour ajouter un nouvel utilisateur, utilisez la commande useradd :
sudo useradd -m -s /bin/bash nom_utilisateur
-m : Crée le répertoire personnel de l'utilisateur.
-s /bin/bash : Définit le shell par défaut de l'utilisateur.
Pour modifier les propriétés d'un utilisateur existant, utilisez la commande usermod :
sudo usermod -s /bin/zsh nom_utilisateur
-s /bin/zsh : Change le shell de l'utilisateur.
Pour supprimer un utilisateur, utilisez la commande userdel :
sudo userdel -r nom_utilisateur
-r : Supprime également le répertoire personnel de l'utilisateur.
Définir ou Changer un Mot de Passe
Pour définir ou changer le mot de passe d'un utilisateur, utilisez la commande passwd :
sudo passwd nom_utilisateur
sudo passwd -l nom_utilisateur
sudo passwd -u nom_utilisateur
Pour ajouter un nouveau groupe, utilisez la commande groupadd :
sudo groupadd nom_du_groupe
Pour modifier les propriétés d'un groupe existant, utilisez la commande groupmod :
sudo groupmod -n nouveau_nom ancien_nom
-n nouveau_nom : Change le nom du groupe.
Pour supprimer un groupe, utilisez la commande groupdel :
sudo groupdel nom_du_groupe
Pour ajouter un utilisateur à un groupe, utilisez la commande usermod :
sudo usermod -aG nom_du_groupe nom_utilisateur
-aG : Ajoute l'utilisateur au groupe sans le retirer des autres groupes.
Pour retirer un utilisateur d'un groupe, utilisez la commande gpasswd :
sudo gpasswd -d nom_utilisateur nom_du_groupe
Vérifier les Fichiers
Vous pouvez vérifier la cohérence des fichiers /etc/passwd, /etc/shadow, et /etc/group avec les commandes suivantes :
sudo pwck
sudo grpck
Permissions des Fichiers
Assurez-vous que les permissions des fichiers sont correctes :
sudo chmod 644 /etc/passwd
sudo chmod 600 /etc/shadow
sudo chmod 644 /etc/group
/etc/passwd et /etc/group doivent être lisibles par tous, mais modifiables uniquement par root.
/etc/shadow doit être accessible uniquement par root.