8.9. Créer le mot de passe, le groupe et les fichiers journal

Afin que l'utilisateur root puisse se connecter et pour que le nom “root” soit reconnu, il doit y avoir des entrées adéquates 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
EOF

Le mot de passe actuel pour root (le “x” utilisé ici n'est qu'un paramètre fictif) sera réglé plus tard.

Utilisateurs supplémentaires que vous pourriez vouloir ajouter :

bin:x:1:1:bin:/bin:/bin/false

Peut être utile pour la compatibilité avec des applications héritées.

daemon:x:2:6:daemon:/sbin:/bin/false

Il est souvent recommandé d'utiliser l'ID d'un groupe ou d'un utilisateur non privilégiés pour l'exécution de démons, afin de limiter leur accès au système.

adm:x:3:16:adm:/var/adm:/bin/false

Était utilisé pour des programmes qui effectuaient des tâches d'administration.

lp:x:10:9:lp:/var/spool/lp:/bin/false

Utilisé par des programmes pour l'impression

mail:x:30:30:mail:/var/mail:/bin/false

Souvent utilisé par des programmes de messagerie

news:x:31:31:news:/var/spool/news:/bin/false

Souvent utilisé pour un réseau de serveurs de nouvelles (news)

operator:x:50:0:operator:/root:/bin/bash

Souvent utilisé pour permettre aux opérateurs du système d'accéder au système

postmaster:x:51:30:postmaster:/var/spool/mail:/bin/false

Utilisé généralement comme compte qui reçoit toutes les informations de problèmes avec le serveur de messagerie

nobody:x:65534:65534:nobody:/:/bin/false

Utilisé par NFS

Créez le fichier /etc/group en lançant la commande suivante :

cat > /etc/group << "EOF"
root:x:0:
bin:x:1:
sys:x:2:
kmem:x:3:
tty:x:4:
tape: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:
EOF

Groupes supplémentaires que vous pourriez vouloir ajouter

adm:x:16:root,adm,daemon

Tous les utilisateurs de ce groupe ont le droit de faire des tâches d'administration

console:x:17:

Ce groupe a un accès direct à la console

cdrw:x:18:

Ce groupe est autorisé à utiliser le lecteur CDRW

mail:x:30:mail

Utilisé par MTAs (Mail Transport Agents)

news:x:31:news

Utilisé par le réseau de serveurs de nouvelles

users:x:1000:

Le GID utilisé par défaut par shadow pour les nouveaux utilisateurs

nogroup:x:65533:

C'est le groupe par défaut utilisé par certains programmes qui n'ont pas besoin d'un groupe

nobody:x:65534:

C'est utilisé par NFS

Les groupes créés ne font partie d'aucun standard—ce sont des groupes décidés d'une part par les exigences de la configuration d'Udev dans le système final, d'autre part par la convention couramment utilisée par un grand nombre de distributiods Linux existantes. La Linux Standard Base (LSB, disponible sur http://www.linuxbase.org) recommande uniquement que, après le groupe “root” ayant l'identifieur de groupe (GID) 0, un groupe “bin” avec un GID de 1 soit présent. L'administrateur système peut choisir librement tout autre noms de groupe et GIDs, vu que les programmes bien écrits ne dépendent pas des numéros GID mais utilisent plutôt le nom d'un groupe.

Pour supprimer l'invite “I have no name!” démarrez un nouveau shell. Puisqu'on a installé une Glibc complète dans le Constructing Cross-Compile Tools et que les répertoires /etc/passwd et /etc/group ont été créés, la résolution des noms d'utilisateur et de groupe va à présent fonctionner.

exec /tools/bin/bash --login +h

Remarquez l'utilisation du paramètre +h. Il dit à bash de ne pas utiliser son hachage interne des chemins. Sans ce paramètre, bash se rappelerait des chemins vers les binaires qu'il a exécutés. Pour s'assurer que les binaires nouvellement compilés seront utilisés dès qu'ils seront installés, le paramètre +h sera utilisée durant toute le chapitre suivant.

Les programmes login, agetty et init (et d'autres) utilisent un certain nombre de fichiers journal pour enregistrer des informations telles que ceux qui se sont connectés au système et quand. Néanmoins, ces programmes n'écriront pas dans les fichiers journal s'ils n'existent pas déjà. Initialisez les fichiers journal et donnez-leur les bons droits :

touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
chgrp -v utmp /var/run/utmp /var/log/lastlog
chmod -v 664 /var/run/utmp /var/log/lastlog
chmod -v 600 /var/log/btmp

Le fichier /var/run/utmp enregistre les utilisateurs actuellement connectés. 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/btmp enregistre les tentatives de connexion erronnées.