Administration linux
Linux
"Talk is cheap. Show me the code."
"Microsoft isn't evil, they just make really crappy operating systems."
----------------------- Linus Torvalds ----------------------------------------------
GNU/Linux est le nom parfois donné à un système d'exploitation associant des éléments essentiels du projet GNU et d'un noyau Linux. C'est une terminologie créée par le projet Debian et reprise notamment par Richard Stallman, à l'origine du projet de travail collaboratif GNU, lequel manquait encore d'un noyau de système d'exploitation pour en faire un système d'exploitation complet lors de la création du noyau Linux, en 1991
On appelle distribution Linux une solution prête à être installée par l’utilisateur final comprenant le système d’exploitation GNU, le noyau Linux, des programmes d’installation et d’administration de l’ordinateur, un mécanisme facilitant l’installation et la mise à jour des logiciels comme RPM ou APT ainsi qu’une sélection de logiciels produits par d’autres développeurs.
Système de fichier
Ce qui suit est une liste de considérations importantes en ce qui concerne les répertoires et les partitions.
- / (la partition racine) doit toujours physiquement contenir /etc, /bin, /sbin, /lib et /dev, sinon vous ne pourrez pas amorcer le système.
- /usr contient tous les programmes utilisateurs (/usr/bin), les bibliothèques (/usr/lib), la documentation (/usr/share/doc), etc. C’est la partie du système qui prend généralement le plus d’espace disque.
- /var : des données variables, tels que des articles, des courriels, des sites web, des bases de données, le cache du gestionnaire de paquets, etc. seront placées dans ce répertoire.
- /tmp : Les données temporaires créées par les programmes iront le plus probablement dans ce répertoire.
- /home : Chaque utilisateur mettra ses données personnelles dans un sous-répertoire de ce répertoire.
CLI
Une interface en ligne de commande (en anglais command line interface, couramment abrégé CLI) est une interface homme-machine dans laquelle la communication entre l'utilisateur et l'ordinateur s'effectue en mode texte :
l'utilisateur tape une ligne de commande, c'est-à-dire du texte au clavier pour demander à l'ordinateur d'effectuer une opération ; l'ordinateur affiche du texte correspondant au résultat de l'exécution des commandes tapées ou à des questions qu'un logiciel pose à l'utilisateur. Une interface en ligne de commandes peut servir aussi bien pour lancer l'exécution de divers logiciels au moyen d'un interpréteur de commandes, que pour les dialogues avec l'utilisateur de ces logiciels. C'est l'interaction fondamentale entre un homme et un ordinateur (ou tout autre équipement informatique).
Lorsqu'une interface est prête à recevoir une commande, elle l'indique par une invite de commande. Celle-ci, parfois désignée par l'anglicisme prompt, consiste en quelques caractères, en début de ligne (généralement, le nom de compte de l'utilisateur, et/ou l'unité logique par défaut, et/ou le chemin par défaut, et/ou date…), se terminant par un caractère bien connu (souvent « ] », « # », « $ » ou « > »), invitant l'utilisateur à taper une commande.
Gestion de fichier
- $ mkdir repertoire : créer un répertoire
- $ cat fichier : afficher fichier dans la console
- $ nano fichier : afficher fichier dans éditeur
- $ cp p1 p2 : copie un fichier p1 vers p2
- $ mv p1 p2 : déplace un fichier p1 vers p2
- $ rm fichier : supprime un fichier
- $ zip -r archive.zip f1 f2 : créé un zip (archive.zip) avec f1 et f2
- $ unzip archive.zip : extrait l’archive archive.zip
- $ grep motif fichier : recherche motif dans fichier
Transferts de fichiers
- $ scp source destination où source et destination sont de la forme user@host:path avec
- user : nom d’utilisateur sur la machine
- host : adresse de la machine ( ndd ou IP )
- path : chemin du fichier à copier ( ou destination où copier )
Exemple :
- $ scp yann@6tech.net:~/test.zip download => copie le fichier ~/test.zip sur la machine 6tech.net dans le dossier download
- scp yann@6tech.net:~/test.zip formateur@wf3.fr:/var/www/html/ => copie ~/test.zip de la machine 6tech.net dans le dossier /var/www/html/ de la machine wf3.fr
Permissions
Les droits d'accès définissent la possession d'un fichier ou d'un répertoire à un utilisateur et à un groupe d'utilisateurs. Ils gèrent aussi quelles actions les utilisateurs ont le droit d'effectuer sur les fichiers (lecture, écriture et exécution), selon qu'ils sont propriétaire du fichier, membre du groupe propriétaire du fichier ou ni l'un ni l'autre. La possession et la gestion des permissions associées s'effectue individuellement avec chaque fichier.
Les droits d'accès apparaissent comme une liste de 10 symboles : drwxr-xr-x Le premier symbole est soit « - », « d », soit « l », nous indiquant la nature du fichier :
- - : fichier
- d : répertoire
- l : lien
Suivent ensuite 3 groupes de 3 symboles chacun, indiquant si le fichier (ou répertoire) est autorisé en lecture, écriture ou exécution. Les 3 groupes correspondent, dans cet ordre, aux droits du propriétaire, du groupe puis du reste des utilisateurs. Si la permission n'est pas accordée, la lettre en question est remplacé par « - ». Si l'on reprend les lettres données pour lecture/écriture/exécution (read/write/execute), nous obtenons : rwx et pour propriétaire/groupe/autres (user/group/other), nous obtenons : ugo
chown La commande chown (change owner, changer le propriétaire) permet de changer le propriétaire du fichier. chmod L'outil chmod (change mode, changer les permissions) permet de modifier les permissions sur un fichier. Il peut s'employer de deux façons : soit en précisant les permissions de manière octale, à l'aide de chiffres ; soit en ajoutant ou en retirant des permissions à une ou plusieurs catégories d'utilisateurs à l'aide des symboles r w et x, que nous avons présenté plus haut.
Super Utilisateur : root
Le terme root (litt. racine) est sur les systèmes d'exploitation de type Unix le nom conventionnel de l'utilisateur qui possède toutes les permissions sur le système, aussi bien en mode mono qu'en mode multi-utilisateur. Ainsi, un tel utilisateur équivaut à un utilisateur suprême, doté de fonctions supérieures et d'accès privilégiés1.
L'utilisateur root est également connu sous le nom de substitute-user. Généralement, c'est le compte administrateur. L'utilisateur root a la possibilité de faire tout ce qu'un utilisateur normal ne pourrait pas faire, comme changer l'appartenance de tous les fichiers. La séparation entre les droits de l'administrateur et les droits d'un utilisateur normal permet d'avoir un système d'exploitation plus résistant aux virus, ainsi qu'aux autres programmes malveillants. De plus cela donne davantage de tranquillité à l'administrateur, car les utilisateurs ne peuvent quasiment rien casser dans le système, que ce soit par mégarde ou dans l'optique de s'octroyer plus de droits.
De manière générale, l'utilisation du compte root comme compte utilisateur classique comporte des risques et nécessite une grande vigilance, car de simples erreurs de typographie peuvent causer des dégâts irréversibles. Les différents systèmes d'exploitation recommandent de n’effectuer une action en tant qu'utilisateur root que lorsque cela est nécessaire. Pour cela l'action est de passer par l'intermédiaire d'un compte d'utilisateur normal et de passer par la commande su. Pour une utilisation directe, il existe aussi la commande sudo suivie de la ligne de commande à effectuer.
Le mot de passe root constitue donc une véritable clef pour le système, mais aussi une cible pour le piratage de la machine. Les attaques visant à découvrir le mot de passe root sont fréquentes.
Installation de logiciels
Advanced Packaging Tool ou APT est un gestionnaire de paquets utilisé par Debian GNU/Linux et ses dérivés.
APT simplifie l'installation, la mise à jour et la désinstallation de logiciels en automatisant la récupération de paquets à partir de sources APT (sur Internet, le réseau local, des CD-ROM, etc.), la gestion des dépendances et parfois la compilation. Lorsque des paquets sont installés, mis à jour ou enlevés, les programmes de gestion de paquets peuvent afficher les dépendances des paquets, demander à l'administrateur si des paquets recommandés ou suggérés par des paquets nouvellement installés devraient aussi être installés, et résoudre les dépendances automatiquement. Les programmes de gestion de paquets peuvent aussi mettre à jour tous les paquets.
Il existe désormais une commande apt, qui réuni les fonctions de apt-get et apt-cache.
Les dépôts du projet Debian comptent plus d'une dizaine de milliers de paquets disponibles. Pour obtenir d'autres paquets, d'autres dépôts peuvent être ajoutés aux sources de APT (répertoriées dans le fichier /etc/apt/sources.list)
apt-get
- $ apt-get install, installe un paquet
- $ apt-get update met à jour la liste des paquets disponibles à partir des sources du fichier /etc/apt/sources.list ;
- $ apt-get upgrade remplace chaque paquet installé par la dernière version disponible ;
- $ apt-get dist-upgrade remplace chaque paquet installé par la dernière version disponible, installe les paquets supplémentaires nécessaires et supprime les paquets devenus inutiles.
- $ apt-get moo, easter egg
apt-cache
apt-cache est une interface permettant d'effectuer quelques manipulations basiques sur les paquets, installés ou non, disponibles dans la liste mise en cache des paquets des dépôts APT configurés.
apt-cache réalise différentes opérations sur le cache de paquet d' APT. apt-cache ne manipule pas l'état du système mais fournit des moyens de recherche dans les métadonnées d'un paquet desquelles il extrait d'intéressantes informations.
- $ apt-cache pkgnames // Liste tous les paquets connus du cache
- $ apt-cache search ftp // Recherche tous les paquets contenant 'ftp' dans leur titre/description
- $ apt-cache showpkg nom_paquet // Affiche des informations détaillées sur le paquet