Rappel sur les basiques de Linux
Architecture
Mode d’exécution
- Mode kernel
- Le code du kernel s’exécute ici.
- Mode sécurisé ayant accès à toutes les ressources de la machine.
- Le kernel est un simple processus qui exécute chaque autre processus
- Permet aux processus d’accéder aux services et composants du système.
- Mode user
- Tous les autres programmes qui n’ont pas besoin de s’exécuter dans le mode kernel fonctionnent ici
- Aucun accès au hardware et au code du kernel
- Ces programmes utilisent les librairies du système pour accéder aux fonctions du kernel.
Niveau d’exécution
Note : Le fichier /etc/inittab
est pour les sytèmes utilisant System V, maintenant les nouvelles distributions Linux utilisent systemd et le fonctionnement est différent. (Voir article SystemV et SystemD
Runlevel
- Détermine les services qui sont démarrés ou stoppés lors du démarrage du système.
- Est défini dans
/etc/inittab
Niveaux de runlevel
- 0 = arrêt
- 1 = single user text mode (utile pour le dépannage du système)
- 2 = non utilisé (peut-être customisé)
- 3 = Multi-user text mode (Un des plus utilisé)
- 4 = non utilisé (peut être customisé)
- 5 = multi-user graphical mode (Un des plus utilisé)
- 6 = redémarrage
Stockages
Partitions
Types de partitions :
- Primaire :
- 4 maximum par disque
- Etendue :
- 1 seule possible par disque
- Création d’un nombre quasiment illimité de “sous” partitions logiques
@TODO : voir LVM
Gestion des disques
Les systèmes de fichiers sont définis et montés dans le fichier /etc/fstab
https://n0tes.fr/2018/03/03/Les-disques-sous-Linux/
@TODO parted
Types de fichiers
https://n0tes.fr/2015/09/22/Types-fichiers-Linux/
Arborescence
Les répertoires courants d’un système Linux sont :
/bin
= programmes utilisateurs/boot
= fichiers de démarrage/dev
= périphériques/etc
= fichiers de configuration/home
= répertoires personnels/lib
et/lib64
= librairies utilisées par les programmes/media
et /mnt = périphériques amovibles/proc
= informations système/root
= dossier personnel de l’utilisateur root/sbin
= programmes importants du système/tmp
= dossier temporaire/usr
= dossier d’installation de certains programmes/var
= données variables, logs
Plus de détails ici : https://n0tes.fr/2014/09/22/Arborescence-Linux/
Réseaux et sécurité
Fichiers de configuration réseau
• /etc/sysconfig/network-scripts/ifcfg-eth = configuration réseau pour chaque interface
• /etc/sysconfig/network = nom d’hôte
• /etc/hosts = liste de machines connues (utiles si pas de DNS)
• /etc/nsswitch = méthodes de recherche des noms
• /etc/resolv.conf = serveurs DNS
Permissions
https://n0tes.fr/2015/08/10/Les-droits-sous-Linux/
https://n0tes.fr/2015/08/11/ACL-Linux/
SELinux :
- définition des droits d’accès et de transition des utilisateurs, applications, processus et fichiers
- Contraignant, généralement désactivé (fichier
/etc/syconfig/selinux
) - https://www.redhat.com/fr/topics/linux/what-is-selinux
Authentification
Gestion de l’authentification sur un système Linux :
- Authentification locale
/etc/passwd
= contient les utilisateurs/etc/group
= contient les groupes d’utilisateurs/etc/shadow
= contient les mots de passe chiffrés
- PAM (Pluggable Authentication Modules)
- Suite de librairies qui décrit comment les applications authentifient les utilisateurs
- Configuration dans
/etc/pam.d
- Généralement la configuration par défaut d’une application bénéficiant de PAM suffit
- LDAP (Lightweight Directory Access Protocol)
- Service d’annuaire stocké dans une base de données
- Configuration dans
/etc/openldap
- NIS (Network Information Service)
- https://fr.wikipedia.org/wiki/Network_Information_Service
- Abandonné au profit des protocoles LDAP, Kerberos, RADIUS ou autres, plus sécurisés et compatibles avec des réseaux hétérogènes.
Paquets et MAJ
https://n0tes.fr/2021/11/18/Differences-Debian-Redhat/
Services sourants
NFS : Network File System
- Permet d’accéder à des fichiers stockés sur une machine distante à travers le réseau
- Nécessite le paquet
nfs-utils
sur le serveur et les clients - Configuration serveur
/etc/exports
/var/nfs
(permissions)exportfs –a
(actualiser les exports NFS)
- Configuration client
/etc/fstab
mount –a
DHCP
- Configuration serveur
/etc/dhcpd.conf
- Configuration client
/etc/sysconfig/network-scripts/ifcfg-ethX
- Ajouter
BOOTPROTO=dhcp
- Ajouter
Logs
- CentOS
journalctl
Documentation
Formation Linux HPC (pdf)
https://www.redhat.com/fr/topics/linux/what-is-selinux
Manuel runlevel
Manuel innitab