Historiquement, Linux gère la liste des systèmes de fichiers montés
dans le fichier /etc/mtab
. Les noyaux
modernes gèrent cette liste en interne et la propose à l'utilisateur
via le système de fichiers /proc
. Afin
de satisfaire les outils qui s'attendent à la présence de
/etc/mtab
, créez le lien symbolique
suivant :
ln -sv /proc/self/mounts /etc/mtab
Créez un fichier /etc/hosts
de base qui
sera mentionné dans certaines suites de tests, et par l'un des
fichiers de configuration de Perl :
cat > /etc/hosts << EOF 127.0.0.1 localhost $(hostname) ::1 localhost EOF
Afin que l'utilisateur root
puisse
s'identifier et que le nom « root » soit reconnu, il doit y avoir des
entrées cohérentes dans les fichiers /etc/passwd
et /etc/group
.
Créez le fichier /etc/passwd
en lançant
la commande suivante :
cat > /etc/passwd << "EOF"
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/dev/null:/usr/bin/false
daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false
systemd-journal-gateway:x:73:73:systemd Journal Gateway:/:/usr/bin/false
systemd-journal-remote:x:74:74:systemd Journal Remote:/:/usr/bin/false
systemd-journal-upload:x:75:75:systemd Journal Upload:/:/usr/bin/false
systemd-network:x:76:76:systemd Network Management:/:/usr/bin/false
systemd-resolve:x:77:77:systemd Resolver:/:/usr/bin/false
systemd-timesync:x:78:78:systemd Time Synchronization:/:/usr/bin/false
systemd-coredump:x:79:79:systemd Core Dumper:/:/usr/bin/false
uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false
systemd-oom:x:81:81:systemd Out Of Memory Daemon:/:/usr/bin/false
nobody:x:99:99:Unprivileged User:/dev/null:/usr/bin/false
EOF
Le mot de passe réel pour root
sera
paramétré plus tard.
Créez le fichier /etc/group
en
exécutant la commande suivante :
cat > /etc/group << "EOF"
root:x:0:
bin:x:1:daemon
sys:x:2:
kmem:x:3:
tape:x:4:
tty:x:5:
daemon:x:6:
floppy:x:7:
disk:x:8:
lp:x:9:
dialout:x:10:
audio:x:11:
video:x:12:
utmp:x:13:
usb:x:14:
cdrom:x:15:
adm:x:16:
messagebus:x:18:
systemd-journal:x:23:
input:x:24:
mail:x:34:
kvm:x:61:
systemd-journal-gateway:x:73:
systemd-journal-remote:x:74:
systemd-journal-upload:x:75:
systemd-network:x:76:
systemd-resolve:x:77:
systemd-timesync:x:78:
systemd-coredump:x:79:
uuidd:x:80:
systemd-oom:x:81:
wheel:x:97:
nogroup:x:99:
users:x:999:
EOF
Les groupes créés ne font partie d'aucun standard, ce sont des
groupes décidés en partie en fonction des besoins de la configuration
de Udev dans le chapitre 9, et par la convention usuelle d'un
certain nombre de distributions Linux existantes. En outre, certaines
suites de tests s'appuient sur des groupes et des utilisateurs
spécifiques. La base Linux standard (Linux Standard Base ou LSB,
disponible sur http://refspecs.linuxfoundation.org/lsb.shtml)
recommande uniquement cela, ainsi que la présence d'un groupe
root
accompagné d'un ID de groupe
(GID) de 0 et d'un groupe bin
accompagné d'un GID de 1. Tous les autres noms de groupe et GID
peuvent être librement choisis par l'administrateur du système
puisque les programmes bien écrits ne dépendent pas des numéros GID,
mais utilisent plutôt le nom du groupe.
Certains tests dans Chapitre 8 ont besoin d'un utilisateur normal. Nous ajoutons cet utilisateur ici et nous supprimons ce compte à la fin de ce chapitre.
echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd echo "tester:x:101:" >> /etc/group install -o tester -d /home/tester
Pour supprimer l'invite « I have no name! », démarrez un nouvel
interpréteur de commandes. Puisque les fichiers /etc/passwd
et /etc/group
ont été créés, la résolution du nom
d'utilisateur et du nom de groupe fonctionnera à présent :
exec /usr/bin/bash --login
Les programmes login, agetty et init, entre autres, utilisent un certain nombre de fichiers journaux pour enregistrer des informations qui permettent de savoir qui s'est connecté sur le système et quand. Cependant, ces programmes n'écriront pas vers ces fichiers journaux s'ils n'existent pas déjà. Initialisez les fichiers journaux et donnez-leur les droits nécessaires :
touch /var/log/{btmp,lastlog,faillog,wtmp} chgrp -v utmp /var/log/lastlog chmod -v 664 /var/log/lastlog chmod -v 600 /var/log/btmp
Le fichier /var/log/wtmp
enregistre
toutes les connexions et les déconnexions. Le fichier /var/log/lastlog
enregistre le moment où chaque
utilisateur s'est connecté pour la dernière fois. Le fichier
/var/log/faillog
enregistre les échecs
de connexion. Le fichier /var/log/btmp
enregistre les mauvaises tentatives de connexion.
Le fichier /run/utmp
enregistre les
utilisateurs qui sont actuellement connectés. Ce fichier est créé
de manière dynamique dans les scripts de démarrage.