Fichiers système

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Fichiers de configuration système (init, réseau, comptes)
Emplacements clés /etc/init/, /etc/sysconfig/, /etc/login.defs
Contexte RHEL/CentOS 6 (Upstart) — la logique /etc/init est remplacée par systemd sur RHEL7+
Voir aussi Chkconfig, Systemctl

Panorama des fichiers de configuration système les plus utiles à connaître sur un serveur RHEL/CentOS : séquence de démarrage (Upstart, /etc/init), configuration réseau, consoles/terminaux, et gestion des comptes utilisateurs (login.defs, skel, su/sudo).

Séquence de démarrage (/etc/init)

Sous RHEL/CentOS 6, une partie du démarrage est gérée par Upstart via des fichiers *.conf dans /etc/init/ (en plus des scripts SysV classiques de /etc/init.d/, voir Chkconfig).

# Combinaison Ctrl+Alt+Suppr
cat /etc/init/control-alt-delete.conf
#   exec /sbin/shutdown -r now "Control-Alt-Delete pressed"

# Connexion des process init.d au process PID 1 (dbus)
cat /etc/init/init-system-dbus.conf
#   exec /bin/kill -USR1 1

# Lancement du runlevel courant
cat /etc/init/rc.conf
#   exec /etc/rc.d/rc $RUNLEVEL

Fichiers liés à Plymouth (écran de démarrage graphique, RHGB) dans /etc/init/ :

  • plymouth-shutdown.conf — affiche l'écran Plymouth lors du passage du runlevel 5 vers un autre runlevel
  • splash-manager.conf — message adapté dans l'écran Plymouth lors du passage aux runlevels 0 (halt) ou 6 (reboot)
  • quit-plymouth.conf — arrête le service Plymouth en fin de démarrage

Fichiers liés à readahead (préchargement en RAM du contenu disque nécessaire au boot, configuré dans /etc/sysconfig/readahead) :

  • readahead-collector.conf — utilise les réglages de /etc/sysconfig/readahead
  • readahead-disable-services.conf — désactive les services incompatibles avec readahead (par défaut, seul le démon d'audit associé à SELinux)
  • readahead.conf — démarre effectivement le processus readahead, si la RAM disponible est suffisante

Fichiers liés à la connexion graphique et aux terminaux :

  • prefdm.conf — démarre et maintient l'écran de connexion graphique (GUI) en runlevel 5
  • start-ttys.conf — démarre tous les terminaux virtuels ; la variable d'environnement ACTIVE_CONSOLES y détermine notamment quel terminal démarre l'interface graphique. Voir aussi la directive ACTIVE_CONSOLES dans /etc/sysconfig/init
  • tty.conf — lance un getty (terminal en ligne de commande classique) ; désactivé sur les runlevels 0, 1 et 6 (halt, mono-utilisateur, reboot)
  • serial.conf — utilisé pour une connexion distante sur port série

Fichiers liés au démarrage du système (rc.sysinit) :

  • rcS.conf — exécute /etc/rc.d/rc.sysinit uniquement pendant le démarrage
  • rcS-sulogin.conf — démarre un terminal en mode mono-utilisateur avant de basculer vers le runlevel standard
  • rc.conf — exécute les scripts du runlevel courant (défini dans /etc/inittab ou via init/telinit), scripts situés dans /etc/rcN.d/ (N = runlevel)

Pour ajuster le nombre de terminaux virtuels actifs :

# /etc/init/start-ttys.conf
env ACTIVE_CONSOLES=/dev/tty[1-6]

# ou, équivalent, /etc/sysconfig/init
ACTIVE_CONSOLES=/dev/tty[1-6]

L'équivalent en mode graphique de chkconfig (voir Chkconfig) est l'outil ntsysv.

Configuration réseau (/etc/sysconfig/network)

NETWORKING=yes        # active (yes) ou non (no) la configuration réseau
NETWORKING_IPV6=yes   # active (yes) ou non (no) la configuration réseau en IPv6
NISDOMAIN=example     # nom du domaine NIS, si le système est connecté à un réseau NIS
HOSTNAME=host.example.com  # nom d'hôte de la machine (peut être fourni par un serveur DHCP)
GATEWAY=192.168.1.1   # adresse IP de la passerelle (peut être fournie par un serveur DHCP)
GATEWAYDEV=eth0       # interface utilisée pour joindre la passerelle (inutile s'il n'y a qu'une seule carte réseau)

Gestion des comptes utilisateurs

Valeurs par défaut (/etc/login.defs)

UID_MIN 500
UID_MAX 60000
GID_MIN 500
GID_MAX 60000
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512

Modèle de home directory

/etc/skel : squelette copié dans le répertoire personnel de chaque nouvel utilisateur créé (fichiers de démarrage de shell, etc.).

Restreindre les connexions root

/etc/securetty liste les terminaux (ttys) sur lesquels root est autorisé à se connecter directement.

Autoriser un utilisateur à utiliser su

# Ajouter l'utilisateur au groupe wheel
vi /etc/group
# wheel:x:10:root,utilisateur

# Puis activer la restriction dans /etc/pam.d/su
# décommenter la ligne :
auth required pam_wheel.so use_uid

Commandes de groupe via gshadow

gshadow permet d'exécuter une commande avec les droits d'un groupe, à condition que le mot de passe de groupe soit défini au préalable :

gpasswd groupname
sg project -c 'cp important.doc /home/project'

sudoers

# Avec mot de passe
root ALL=(ALL) ALL

# Sans mot de passe, pour le groupe wheel
%wheel ALL=(ALL) NOPASSWD: ALL

# Autoriser un arrêt de la machine sans mot de passe, pour le groupe users
%users localhost=/sbin/shutdown -h now

Voir aussi

  • Chkconfig — gestion des services SysV init, en lien avec les fichiers /etc/init ci-dessus
  • Systemctl — équivalent systemd (RHEL7+)