|
Chapitre Suivant , Précédent , Début du manuel , Table des matières générale |
Chapitre 10
Administration système
Ce chapitre est une présentation du système Linux RH. Il contient diverses informations, et précise les points où la RH Linux diffère des autres systèmes UNIX. La plupart des opérations d'administration système se font depuis le panneau de contrôle, présenté dans le chapitre 8.10 1Arborescence
La distribution Red Hat est conforme au 'Linux File System Standard', un document qui définit les noms et les emplacements des fichiers et répertoires.Cette conformité a deux principaux objectifs : la compatibilité avec un autre système et la possibilité de monter en lecture seule la partition /usr. Cette partition contient les fichiers exécutables, et ne doit pas être modifiée par les utilisateurs. Vous pouvez monter cette partition à partir du CD-ROM ou via NFS en lecture seule. Le document décrivant le standard FSSTND (File System Standard), fait office de référence pour tous les systèmes qui y sont conformes. Hélas ce document n'est pas toujours complet. Vous pouvez vous procurer le document décrivant le standard sur le serveur :
10 1.1 Présentation du standard
Les informations qui suivent représentent seulement une petite partie du standard, pour plus de renseignements consultez le document cité plus haut.Le répertoire /etc
Ce répertoire est réservé aux fichiers de configuration de votre machine. Il n'y a plus d'exécutables dans le répertoire /etc (ceux qui s'y trouvaient auparavant, se trouve maintenant dans /sbin ou /bin).
Les répertoires X11 et skel sont des sous-répertoire de /etc :
/etc |-X11 +-skell
Le répertoire X11, contient les fichiers de configuration X11 (comme par exemple le fichier XF86Config). Le répertoire skel, contient les fichiers 'squelettes' des utilisateurs.
Le répertoire /lib
Le répertoire /lib ne contient que les librairies utilisées pour exécuter les binaires de /sbin et de /bin.
Le répertoire /sbin
Le répertoire /sbin contient les exécutables utilisés par root, les exécutables utilisés au démarrage et au montage de /usr, et ceux destinés aux opérations de récupérations. Voici ce que dit le standard dans sa version originale (en anglais):
'/sbin typically contains files essential for booting the system in addition to the binaries in /bin. Anything executed after /usr is known to be mounted (when there are no problems) should be placed in /usr/sbin. Local-only system administration binaries should be placed into /usr/local/sbin.'
Les programmes qui suivent se trouve dans le répertoire /sbin:
clock, getty, init, update, mkswap, swapon, swapoff, halt, reboot, shutdown, fdisk, fsck.*, mkfs.*, lilo, arp, ifconfig, route
Le répertoire /usr
Ce répertoire est utilisé pour stocker les fichiers partagés par tout un site. Le répertoire /usr utilise généralement sa propre partition, montable en lecture seule. Les répertoires suivants sont des sous-répertoires de /usr :
/usr |-X11R6 |-bin |-dict |-doc |-etc |-games |-include |-info |-lib |-local |-man |-sbin |-share +-src
Le répertoire X11R6 est utilisé pour le système X Window (Xfree86 pour la version Red Hat de Linux), bin pour les exécutables, doc pour la documentation, etc pour les fichiers de configuration, include pour les fichiers d'en-tête C, info pour les fichiers d'information GNU, lib pour les librairies, man pour les pages du man, sbin pour les binaires d'administration système (ce qui n'appartiennent pas à /sbin), et src pour les codes sources.
Le répertoire /usr/local
Voici ce que dit le standard dans sa version originale (en anglais) :
'The /usr/local hierarchy is for use by the system administrator when installing software locally. It needs to be safe from being overwritten when the system software is updated. It may be used for programs and data that are shareable amongst a group of machines, but not found in /usr.'
Le répertoire /usr/local a la même structure que le répertoire /usr, mais il est par contre spécifique à la machine. Les sous- répertoires sont les suivants (le rôle de chacun est décrit dans la section /usr) :
/usr/local |-bin |-doc |-etc |-games |-include |-info |-lib |-man |-sbin +-src
Le répertoire /var
D'après le standard, le répertoire /usr doit être monté en lecture seule. Le répertoire /var est utilisé par exemple pour stocker les répertoires 'spool' de certains programmes. Voici ce que dit le standard dans sa version originale (en anglais) :
'... variable data files. This includes spool directories and files, administrative and logging data, and transient and temporary files.'
Les répertoires qui suivent sont des sous-répertoires de /var:
/var |-log |-catman |-lib |-local |-named |-nis |-preserve |-run |-lock |-tmp +-spool |-at |-cron |-lpd |-mail |-mqueue |-rwho |-smail |-uucp +-news
Les fichiers wtmp ou lastlog sont stockés dans /var/log. Le répertoire /var/lib contient la base de données RPM. Les pages formatées du man se trouvent dans /var/catman. Le répertoire /var/spool contient un certain nombre de sous- répertoires utilisés pour stocker les fichiers de données.
10 1.2 Le répertoire /usr/local dans la version RH de Linux
Le répertoire /usr/local utilisé dans la version RH de Linux, diffère légèrement de celui décrit dans le standard. D'après le standard, le répertoire /usr/local doit se trouver à l'endroit ou vous stockez les programmes qui ne doivent pas être modifiés lors d'une mise à jour. Les programmes RPM et Glint vous assurent une mise à jour fiable du système, nous vous proposons donc d'utiliser le répertoire /usr/local pour stocker tout programme local à votre machine.10 2 Répertoires spécifiques à la version RH
Il existe, en plus du répertoire utilisé pour stocker les fichiers RPM /var/lib/rpm (voir chapitre 7), deux autres répertoires spécifiques à la version RH de Linux.Le panneau de contrôle et ses différents outils utilisent le répertoire /usr/lib/rhs. Ce répertoire contient des scripts, des images bitmaps, et des fichiers textes que vous n'avez pas besoin d'éditer.
Le répertoire /etc/sysconfig contient des informations de configuration (dont les scripts exécutés au démarrage). Vous pouvez éditer manuellement ces fichiers, mais nous vous conseillons d'utiliser les outils du panneau de contrôle.
10 3 Utilisateurs, groupes et groupes utilisateurs privés
La gestion des utilisateurs et des groupes est souvent délicate. La distribution RH vous livre de nombreux outils afin de faciliter cette tâche.Le meilleur moyen de gérer les utilisateurs et les groupes, est d'utiliser les outils du panneau de contrôle (reportez vous à la section 8 et 8.1).
Vous pouvez aussi utiliser la commande adduser.
10 3.1 Utilisateurs standards
Utilisateur UID GID Répertoire HOME Shell ------------------------------------------------------------- root 0 0 /root /bin/bash bin 1 1 /bin daemon 2 2 /sbin adm 3 4 /var/adm lp 4 7 /var/spool/lpd sync 5 0 /sbin /bin/sync shutdown 6 0 /sbin /sbin/shutdown halt 7 0 /sbin /sbin/halt mail 8 12 /var/spool/mail news 9 13 /var/spool/news uucp 10 14 /var/spool/uucp operator 11 0 /root /bin/bash games 12 100 /usr/local/games gopher 13 30 /ust/lib/gopher-data ftp 14 50 /usr/rhs/ftp nobody 99 99 /root
Figure 10.1 : Utilisateurs standards
10 3.2 Groupes standards
Groupe ID Membres ----------------------------------------- root 0 root bin 1 root, bin, daemon daemon 2 root, bin, daemon sys 3 root, bin, adm adm 4 root, adm, daemon tty 5 disk 6 root lp 7 daemon, lp mem 8 kmem 9 wheel 10 root mail 12 mail news 13 news uucp 14 uucp man 15 games 20 gopher 30 dip 40 ftp 50 ftp nobody 99 users 100
Figure 10.2 : Groupes standards
10 3.3 Groupe d'utilisateur privé
La version RH de Linux utilise la notion de groupe d'utilisateur privé. Cette notion ne modifie en rien le standard UNIX, elle offre simplement une nouvelle façon de gérer les groupes. Pour chaque utilisateur créé, un groupe lui est automatiquement attribué par défaut.Groupe d'utilisateur privé : chaque utilisateur possède son propre groupe, dont il est le seul membre.
Exemple :Umask=002 : le masque habituellement utilisé sous UNIX est 022, il empêche les autres utilisateurs et les autres membres du groupe de modifier les fichiers d'un utilisateur. Grâce à la notion de groupe d'utilisateur privé, le nouveau masque sera 002. Ce masque est défini dans /etc/profile.
Bit SGID : en utilisant le bit SGID sur un répertoire (avec chmod g+s nom_répertoire), les fichiers qui y seront créés auront le même groupe que le répertoire.
- Vous souhaitez qu'un groupe de personnes puissent tra vailler sur les fichiers du répertoire:
/usr/lib/emacs/site-lisp
faites confiance à certain pour vous y coller la panique!
- Utilisez la commande
chown -R root.emacs /usr/lib/emacs/site-lisp
et ajoutez au groupe les bons utilisateurs.
- Pour les autoriser à créer des fichiers dans le répertoire, utilisez :
chmod 775 /usr/lib/emacs/site-lisp
- Lorsqu'un utilisateur crée un nouveau fichier, ce dernier est attribué au groupe d'utilisateurs par défaut users en général. La commande suivante attribue tout nouveau fichier au groupe 'emacs' :
chmod 2775 /usr/lib/emacs/site-lisp
- Utilisez le mode 664, pour que les nouveaux fichiers puissent être édités par les autres utilisateurs. Utilisez le masque 002.
- Si votre groupe par défaut est le groupe 'users', tout fichier créé dans votre répertoire sera modifiable par tous dans groupe 'users'.
- Pour remédier à ce problème, vous devez attribuer à chaque utilisateur son 'groupe privé' comme groupe par défaut.
10 4 Boot, Init et Shutdown
10 4.1 Init System V
Cette section présente brièvement le processus de démarrage. Elle décrit l'utilisation d'Init System V, et les différences par rapport à sa version d'origine (celle utilisée dans les anciennes versions de Linux).Init est le programme exécuté par le noyau, au démarrage du système. Il est chargé d'exécuter les différents processus nécessaires au démarrage (gettys, démons NFS, démons FTP, ...).
Init System V est en train de devenir un standard dans le monde Linux. Il est en effet beaucoup plus efficace et beaucoup plus facile à utiliser que la version BSD d'Init.
Contrairement aux fichiers de configuration de la version BSD qui se trouvent dans le répertoire /etc, ceux d'Init System V se trouvent dans un sous-répertoire de /etc. Ce répertoire s'appelle rc.d et contient le fichier rc.sysinit et les répertoires :
init.d rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d
Le répertoire init.d contient un certain nombre de scripts. Vous devez normalement avoir un script par service exécuté au démarrage du système (nfs, httpd, ...). Utilisez rc.local ou rc.serial pour par exemple la configuration des ports séries. rc.local doit se trouver dans /etc/rc.d (la plupart des systèmes en possèdent un par défaut), de même pour rc.serial. Voici le processus de démarrage :
Le niveau d'exécution par défaut est défini dans /etc/inittab. Vous y trouverez s¹rement la ligne suivante :
- le noyau recherche init, et exécute le premier qui a été trouvé
- init exécute /etc/rc.d/rc.sysinit
- s'il existe, rc.serial est exécuté
- init exécute tous les scripts définis par défaut
- init exécute rc.local
id:3:initdefault:
Le niveau d'exécution se trouve dans la seconde colonne, sur la plupart des systèmes la valeur sera initialisée à 3. Vous pouvez éditer manuellement le fichier /etc/inittab, pour modifier le niveau d'exécution (soyez très prudent). Si vous rencontrez un problème, rebootez et exécutez la commande suivante :
LILO boot : linux single
Vous pourrez ainsi redémarrer le système (en mode simple utilisateur) et corriger le problème.
Comment sont exécutés les différents scripts ? Si vous exécutez la commande ls-l dans le répertoire rc3.d, vous obtiendrez :
lrwxrwxrwx 1 root root 17 13:11 S10network -> ../init.d/network lrwxrwxrwx 1 root root 16 13:11 S30syslog -> ../init.d/syslog lrwxrwxrwx 1 root root 14 13:32 S40cron -> ../init.d/cron lrwxrwxrwx 1 root root 14 13:11 S50inet -> ../init.d/inet lrwxrwxrwx 1 root root 13 13:11 S60nfs -> ../init.d/nfs lrwxrwxrwx 1 root root 15 13:11 S70nfsfs -> ../init.d/nfsfs lrwxrwxrwx 1 root root 18 13:11 S90lpf -> ../init.d/lpd.init lrwxrwxrwx 1 root root 11 13:11 S99local -> ../rc.local
Les fichiers de ce répertoire sont en fait des liens sur des scripts du répertoire /init. Vous pouvez remarquer que le lien commence par la lettre S, suivie d'un nombre. La lettre S précise que le script doit être démarré (et la lettre K précise que le script doit être arrêté). Le nombre est utilisé pour préciser un ordre d'exécution.
Comment sont démarrés et arrêtés les différents services ? Chacun des scripts peut recevoir un argument : start ou stop. Vous pouvez exécuter ces scripts de façon manuelle (ici l'arrêt du serveur httpd) :
/etc/rc.d/init.d/httpd.init stop
Lorsque la lettre S apparaît, le script est exécuté avec l'argument start. Lorsque la lettre K apparaît, le script est exécuté avec l'argument stop.
10 4.2 Les niveaux d'exécution
Dans la plupart des cas le système RH Linux fonctionne en mode multi-utilisateurs (3). Voici la liste des niveaux d'exécutions :0 Halt (arrêté)
Si votre machine ne redémarre pas correctement (problème lié au fichier /etc/inittab) ou si vous n'arrivez pas à vous connecter (vous avez par exemple oublié votre mot de passe), redémarrez le système en mode utilisateur unique (tapez au prompt LILO : linux 1) et corrigez le problème.1 Single user mode (mode utilisateur unique)
2 Multiuser mode, without NFS (mode multi-utilisateurs, sans NFS)
3 Multiuser mode (mode multi-utilisateurs)
6 Reboot
10 4.3 Shutdown
Pour arrêter le système, utilisez la commande shutdown. Pour plus de détails consultez les pages du man consacrées à cette commande.Nous vous déconseillons l'usage des commandes reboot et halt.
- Pour arrêter le système, utilisez : shutdown -h now.
- Pour arrêter le système puis redémarrer, utilisez :
shutdown -r now.
Chapitre Suivant , Précédent , Début du document
Table des matières de ce chapitre, Table des matières générale
(c)1996 Pour l'adaptation française : "Logiciels du Soleil"