GNU/Linux >> Tutoriels Linux >  >> Linux

Labo Linux :SysAdmin 101

Table des matières

  • Alors tu veux être administrateur système Linux ?
    • REMARQUE :La présentation suivante est conçue pour être présentée par un présentateur compétent.
  • Linux SysAdmin 101
  • À qui s'adresse ce guide ?
        • Qu'est-ce que Linux ?
        • Répartition
        • Le (Bourne Again) Shell
        • Le système de fichiers
        • Outils de fichiers
        • Les fonctions intégrées de Bash
        • Redirection et canaux
        • Redirection et canaux (suite)
        • Gestion des utilisateurs
        • Autorisations
        • Outils de disque
        • Processus
        • Processus (suite)
        • Outils de mise en réseau et de mise en réseau
        • Progiciels, installation
        • Journaux

Alors tu veux être administrateur système Linux ?

De temps en temps, on me demande de fournir un peu de formation aux administrateurs système en herbe ou aux personnes en voie de devenir un administrateur système Linux ou un ingénieur DevOps qualifié (ou du moins la partie Ops !). Ce diaporama peut être utilisé par vous-même, mais il est destiné à être donné dans un environnement de type salle de classe. Il comprend un certain nombre de domaines majeurs qui sont des commandes importantes et des moyens de contourner un système Linux. Chaque section est suivie d'un certain nombre de sessions pratiques afin que votre classe puisse l'essayer par elle-même.

Meilleur conseil pour le tuteur :Cela a bien fonctionné pour moi avec des classes plus petites (2-3 personnes). Je me suis connecté en ssh à une machine virtuelle Ubuntu Server et j'ai exécuté tmux dessus. J'ai ensuite demandé à chacun des étudiants de se connecter en ssh (en tant que même utilisateur étudiant) et d'exécuter "tmux attach". De cette façon, ils partagent tous le même terminal, et le tuteur peut également interagir/voir leurs terminaux en même temps qu'il exécute des diapositives à partir de son propre ordinateur portable. Je présente les diapositives sur un projecteur ou un téléviseur.

Le plan de cours comprend :

  • Qu'est-ce que Linux, inc. ? très bref historique.
  • Répartition.
  • La coquille (encore Bourne).
  • Le système de fichiers UNIX.
  • Commandes/outils basés sur des fichiers
  • Commandes intégrées de Bash
  • Redirection et canaux
  • Gestion des comptes utilisateurs
  • Autorisations
  • Outils de disque
  • Processus
  • Mise en réseau
  • Installation de logiciels/Packages
  • Journaux/Gestion des journaux

REMARQUE :La présentation suivante est conçue pour être présentée par un présentateur compétent.


Impossible de démarrer ce diaporama. Essayez d'actualiser la page ou de l'afficher dans un autre navigateur.

Linux SysAdmin 101

Guide du débutant pour l'administration d'un serveur Linux

À qui s'adresse ce guide ?

  • Ces diapositives sont destinées à être accompagnées par un présentateur compétent.
  • Toute personne intéressée par une carrière en tant que professionnel Linux ou Unix
  • Améliorer vos compétences Linux d'utilisateur de bureau à utilisateur expérimenté
  • Personnes souhaitant travailler davantage sur la ligne de commande
  • Apprenez des commandes dont vous ne connaissez peut-être pas

Qu'est-ce que Linux ?

Pour un aperçu rapide de Linux lui-même et de son histoire, consultez :

https://www.linuxnewbieguide.org

En bref, cependant, Linux est un système d'exploitation basé sur UNIX composé des composants de base suivants :

  • Le noyau
  • Le Shell (bash dans le cas de ce tutoriel)
  • L'ensemble d'outils GNU de base
  • Et toutes les autres applications, Firefox, ViM, etc.

Répartition

  • Il existe différentes versions de Linux.
  • La plupart de ces éléments diffèrent par la manière dont le système regroupe les logiciels.
  • La configuration entre les distributions peut être légèrement différente.
  • Les distributions les plus connues sont :
    • Debian et Ubuntu
    • Red Hat, CentOS et Fedora
  • D'autres distributions telles que Linux Mint, openSuSE et Elementary sont souvent basées sur les plates-formes ci-dessus.

Le coquillage (de nouveau Bourne)

  • Reprend les commandes de l'utilisateur
  • Peut être utilisé comme langage de script (comme un fichier batch)
  • Peut utiliser des expressions régulières (par exemple, A* correspond à tout ce qui commence par A).
    • Les expressions régulières sont abordées dans des sessions plus avancées.

Le système de fichiers

Voici un exemple. Tout commence à la racine ( / ):

/
|-- bin
|   |-- bash
|   |-- touch
|-- etc
|   |-- service.conf
|   `-- networking
|       |-- eth0.conf
|       `-- eth1.conf
|-- home
|-- var

Outils de fichiers

  • cd (changer de répertoire, par exemple cd /home/ajross, cd ../.. )
  • pwd (répertoire de travail d'impression)
  • ls (répertoire de liste, par exemple ls -l /home/ajross/Desktop)
  • toucher (créer un fichier vide)
  • tar (compresser un fichier ou un répertoire, par exemple tar cvfpz file.tar *.txt)
  • chat (affiche le contenu d'un fichier)
  • moins et plus (affiche un fichier page par page)
  • cp (copie, par exemple fichier cp /home/ajross )
  • mv (déplacer ou renommer)
  • mkdir (créer un répertoire)
  • rm (supprimer un ou plusieurs fichiers)
  • rmdir (supprimer un répertoire vide)

Pratique :
  1. Afficher les fichiers dans n'importe quel répertoire
  2. Créez un fichier vide appelé test.txt
  3. Affichez le contenu de /etc/fstab et décrivez ce que vous voyez
  4. Renommer test.txt en un autretest.txt
  5. Créez un nouveau dossier appelé mondossier
  6. Déplacer un autre test.txt vers mondossier

Outils de fichiers (suite)
  • ln - lien symbolique (par exemple ln -s /sourcefile /destination-alias-file)
  • which (quelle version d'une commande sera exécutée), par exemple which -a vim
  • whereis (basé sur le chemin, donne l'emplacement d'un fichier - par exemple whereis vim).
  • whatis, file (que fait une commande, file - que fait le fichier)
  • trouver (par exemple trouver . -user ajross –max-depth=2)
  • tête, queue (montrer le haut et le bas d'un fichier)
  • joindre, diviser (par exemple joindre a.txt b.txt)
  • sort (par exemple du -h /home | sort -h)
  • du -h (affiche l'utilisation de la taille du disque, par exemple :du -h /home –max-depth=2)
  • df -h (montre combien d'espace est libre sur un système de fichiers)
  • uniq (par exemple :uniq files.txt ou cat /var/log/error.log | uniq)
  • wc, nl (nombre de mots, par exemple :cat /var/log/error.log | wc -l , nl foo.txt)
  • grep (recherche du contenu dans un fichier, par exemple :grep -i foo /var/log/error.log)
  • lsof (répertorie les fichiers ouverts sur le système, par exemple lsof -n).

Pratique :
  1. Recherchez un fichier appelé sysctl.conf dans le dossier /etc
  2. Afficher le contenu d'un fichier page par page
  3. Afficher l'espace occupé par le dossier /var sur le lecteur
  4. Expliquez ce qu'est un lien symbolique
  5. Recherchez dans le contenu de /var/log/kern.log le mot usb

Les fonctions intégrées de Bash

  • alias
  • set / env (echo $PATH)
  • quitter / se déconnecter
  • écho
  • redémarrer/arrêter/arrêter/éteindre
  • historique (affiche les dernières commandes exécutées)
  • if, else, while etc..
    • entre autres…

Pratique :
  1. Écrivez les mots "hello world" sur la sortie standard.
  2. Afficher une liste des dernières commandes exécutées.

Redirection et canaux

  • Norme sortie (stdout – 1):
    • écho bonjour> monfichier.txt
    • écho ici>> monfichier.txt
  • Norme Entrée (stdin):
    • cat un autrefichier.txt
  • Norme Erreur (stderr – 2):
    • si vous faites ls /crapola, vous obtenez une erreur (le répertoire n'existe pas)
      • ls /crapola 2> out.txt (redirige l'erreur vers un fichier appelé out.txt)
    • Si vous voulez une sortie standard et une erreur standard :sorties stderr (2) combinées avec (et &) stdout (1).
      • ls /crapola> out.txt 2>&1

Redirection et canaux (suite)

  • Tuyau
    • Place la sortie d'une commande dans l'entrée d'une autre. Très pratique.
      • ls -l /etc | moins
    • Tee vous permet de mettre la sortie dans un fichier et l'écran
      • ls -l | tee out.txt

Pratique :
  1. Afficher le nombre de mots dans /var/log/kern.log à l'aide d'un tube
  2. Placez la sortie de ls /var dans un fichier texte appelé ls.txt
  3. Ajoutez la sortie de ls /var/log dans le même fichier (c'est-à-dire, ne supprimez pas ce qui s'y trouve déjà).

Gestion des utilisateurs

  • Le compte "root" est le superutilisateur du système.
  • De nombreux fichiers de configuration et système ne peuvent être modifiés/affichés que par root.
  • Les autorisations sont la clé de la protection des fichiers
    • Ils dictent quels utilisateurs (et groupes d'utilisateurs) peuvent travailler sur des fichiers.
  • Les utilisateurs locaux sont stockés dans /etc/passwd, avec le fichier de mot de passe dans /etc/shadow
  • Les groupes sont stockés dans /etc/groups
  • Il est recommandé de vous connecter à un serveur en tant qu'utilisateur normal, puis de passer à la racine avec sudo (ou su).
  • passwd (pour changer un mot de passe)
  • useradd
  • userdel

Pratique :
  1. Regardez les fichiers de mot de passe, d'ombre et de groupe
  2. Essayez de modifier le fichier fantôme en tant qu'utilisateur normal
  3. Comprendre pourquoi vous ne pouvez pas le modifier.
  4. Modifiez votre mot de passe.
  5. Créer un utilisateur et supprimer un utilisateur.

Autorisations

  • Expliquer les autorisations :utilisateurs, groupes, autres, attributs
  • chmod (modifier les permissions du fichier, par exemple chmod u+x file.sh)
  • chown (modifier le propriétaire d'un fichier, par exemple :chown user file.sh)
  • chgrp (modifier la propriété du groupe d'un fichier, par exemple :chgrp groupname file.sh)
  • umask (autorisations par défaut pour un dossier)
  • setuid (racine) – à utiliser avec précaution ! fichier chmod u+s ou g+s
  • immuable / persistant (chmod +i, chmod +t)

Pratique :
  1. Créez un fichier appelé test.sh avec touch.
  2. Modifiez les autorisations en user=read, write, execute, group and other, no permissions
  3. Changez le propriétaire au lieu de vous-même pour être root. Essayez d'accéder au fichier maintenant.
  4. Rendez-vous le propriétaire et modifiez le fichier (nano test.sh)
    1. Ajouter #!/bin/bash à la première ligne
    2. et faites écho à hello world sur la deuxième ligne
  5. Exécutez le script - ./test.sh
  6. Supprimez le bit exécutable et réessayez d'exécuter le script.

Outils de disque

    • e2fsck (vérification du système de fichiers)
    • fdisk / cfdisk / parted (édition de partition)
    • mkfs (créer un nouveau système de fichiers)
  • lvm, lvdisplay, lvextend.. etc
  • Liste de montage du système de fichiers :/etc/fstab

Pratique :
  1. Afficher la table de partition actuelle.
  2. Afficher les systèmes de fichiers qui seront montés par Linux

Processus

  • Les processus ne sont que des applications en cours d'exécution. Linux (comme MacOS et Windows) est un système d'exploitation multithread
  • Sur un système à processeur unique, toutes les applications sont généralement "en veille", à l'exception de l'application "en cours d'exécution".
  • Les processus peuvent être en arrière-plan ou au premier plan.
  • Vous pouvez envoyer des signaux à des processus tels que SIGHUP, SIGKILL, etc.
  • Pour voir les processus, utilisez la commande ps (ex :ps aux, ps auxfwww pour un arbre).
    • Vous pouvez voir le propriétaire, le statut, la ressource et d'autres choses en utilisant ps
    • Vous pouvez voir les processus les plus gourmands en CPU en utilisant la commande "top". Iostat, vmstat montrent iops et virt mem.
  • Vous pouvez tuer les processus avec kill, pkill (par exemple :kill -9 12345, pkill apache2)

Processus (suite)

  • La gentillesse du processus modifie la priorité globale d'un processus sur le système (par exemple, renice, nice)
  • Le système de fichiers /proc contient toutes les informations sur chaque processus dans un format brut (par exemple cat /proc/12345/status)
  • Utilisez Ctrl + Z pour arrêter un processus, bg en arrière-plan, fg en avant-plan, "commande et" arrière-plans automatiques
  • jobs montre vos processus actuels en arrière-plan. fg %4 mettra au premier plan la 4ème commande en arrière-plan.
  • Les processus qui s'exécutent en permanence sont appelés services ou démons
  • Pour démarrer un service, vous utilisez soit la commande "service" soit la commande "systemctl". Les anciens systèmes utilisent /etc/init.d.

Pratique :
  • Démarrez un processus, par exemple cat (qui ne fera rien).
  • Mettre en contexte le processus.
  • Trouvez le PID du processus. NB :Soyez malin et filtrez la sortie ps en recherchant uniquement cat !
  • Tuez le processus en utilisant le PID que vous avez obtenu.
  • Redémarrer/arrêter/démarrer un service, par exemple rsyslogd.

Outils de mise en réseau et de mise en réseau

    • ifconfig / ip
      • /etc/sysconfig/network (redhat) , /etc/networking (debian)
    • route / route IP
    • arp, ping, traceroute, netstat
  • dhclient, dhcpd, bind
      • /etc/resolv.conf
    • /etc/hosts
  • ssh, scp, sftp, rsync
  • nfs, samba (SMB/CIFS)
  • Apache, Python SimpleHTTPServer

Pratique :
  • Afficher les adresses IP de la machine
  • Expliquez ce qu'est l'interface lo
  • Dites comment vous redémarreriez

Progiciels, installation

  • L'installation de logiciels sous Linux est en fait assez simple. Encore plus simple que sous Windows.
  • Red Hat et Debian maintiennent tous deux de grands "dépôts" de logiciels.
  • Les distributions basées sur Debian utilisent des fichiers deb (mais utilisez apt pour les installer)
  • Les distributions basées sur Red Hat utilisent rpm (mais sont installées par yum ou dnf)
  • .tar/.tar.gz peut contenir n'importe quel fichier, mais peut souvent contenir du code source, qui doit être compilé.
    • ./configure; Fabriquer; faire installer

Pratique :
  • Installer le paquet cowsay avec apt
  • Courez cowsay

Journaux

  • /var/log
  • Certaines applications malveillantes se connectent où elles veulent. Grr, par exemple :/opt/app/log
  • syslog/rsyslog
  • dmesg / kern.log
  • auth.log, dernier journal, dernier, w

Pratique :
  • Grep the auth.log pour une phrase, par exemple login
  • Découvrez combien de lignes la phrase existe dans le fichier
  • Analyser le fichier une ligne à la fois pour voir les problèmes
  • Faire de même pour les messages/syslog



Linux
  1. Autorisations Linux 101

  2. Qu'est-ce qu'un utilisateur Linux ?

  3. Comment changer un nom d'utilisateur sous Linux

  4. Principes de base de l'administrateur système Linux :gestion des comptes d'utilisateurs avec les UID et les GID

  5. Principes de base de l'administrateur système Linux :gestion des comptes d'utilisateurs

Commande Su sous Linux (Changer d'utilisateur)

Commande ID sous Linux

Commande Usermod sous Linux

Commande su sous Linux

Introduction aux cgroups d'un administrateur système Linux

Comment changer d'utilisateur sous Linux