TD Admin Version Corrigee
TD Admin Version Corrigee
TD Admin Version Corrigee
GNU/Linux
Administration CentOS 6 (Version corrigée)
1.0, 03-08-2017
Table des matières
Préface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Crédits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Licence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1. Commandes de bases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3. Système de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5. Sauvegardes et restaurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Préface
GNU/Linux est un système d’exploitation libre fonctionnant sur la base d’un noyau Linux,
également appelé kernel Linux.
Linux est une implémentation libre du système UNIX et respecte les spécifications POSIX.
GNU/Linux est généralement distribué dans un ensemble cohérent de logiciels, assemblés autour
du noyau Linux et prêt à être installé. Cet ensemble porte le nom de “Distribution”.
• Les plus connues et utilisées sont les distributions Debian, RedHat et Arch, et servent de base
pour d’autres distributions comme Ubuntu, CentOS, Fedora, Mageia ou Manjaro.
Chaque distribution présente des particularités et peut être développée pour répondre à des
besoins très précis :
• services d’infrastructure ;
• pare-feu ;
• serveur multimédia ;
• serveur de stockage ;
• etc.
La distribution présentée dans ces pages est la CentOS, qui est le pendant gratuit de la distribution
RedHat. La distribution CentOS est particulièrement adaptée pour un usage sur des serveurs
d’entreprises.
Crédits
Ce support de cours a été rédigé par les formateurs :
• Patrick Finet ;
• Antoine Le Morvan ;
• Xavier Sauvignon ;
• Nicolas Kovacs.
Licence
Formatux propose des supports de cours Linux libres de droits à destination des formateurs ou des
personnes désireuses d’apprendre à administrer un système Linux en autodidacte.
Les supports de Formatux sont publiés sous licence Creative Commons-BY-SA et sous licence Art
Libre. Vous êtes ainsi libre de copier, de diffuser et de transformer librement les œuvres dans le
Préface | 1
FORMATUX - Travaux Dirigés GNU/Linux
Les documents de Formatux et leurs sources sont librement téléchargeables sur framagit :
• https://framagit.org/alemorvan/formatux.fr-support/
A partir des sources, vous pouvez générer votre support de formation personnalisé. Nous vous
recommandons le logiciel AsciidocFX téléchargeable ici : http://asciidocfx.com/
2 | Préface
FORMATUX - Travaux Dirigés GNU/Linux
Objectifs
[stagiaire]$ id
uid=1000(stagiaire) gid=100(users) groupes=100(users) …
[stagiaire]$ id
uid=1000(stagiaire) gid=100(users) groupes=100(users) …
[stagiaire]$ id patrick
uid=503(patrick) gid=501(GroupeP) groupes=501(GroupeP)
[stagiaire]$ who
stagiaire tty1 2016-01-04 13:05
stagiaire tty2 2016-01-04 13:10
Il n’y a que l’utilisateur stagiaire de connecté sur le serveur. Il est connecté sur le
terminal 1 (tty1) Les terminaux physiques sont nommés ttyX, les terminaux
virtuels (ceux de l’interface graphique) sont nommés (pts/X).
[stagiaire]$ who am i
stagiaire tty2 2016-01-04 13:10
[stagiaire]$ whoami
stagiaire
Objectifs
[stagiaire]$ date
jeu. mars 14 15:15:25 CET 2015
• Effacer la console.
[stagiaire]$ clear
Objectifs
[stagiaire]$ pwd
/home/stagiaire
chemin absolu :
[stagiaire]$ cd /home/
chemin relatif :
[stagiaire]$ cd ..
[stagiaire]$ pwd
/home
[stagiaire]$ cd
[stagiaire]$ pwd
/home/stagiaire
puis le déplacer :
tickets/pierre/:
listing_en_cours
[stagiaire]$ ls –R tickets/
tickets/:
archives
tickets/archives:
listing_en_cours
Objectifs
rechercher un fichier ;
rechercher du texte dans un fichier ;
afficher un fichier, trier son contenu.
[stagiaire]$ cp /etc/passwd ./
Ou
Puis
/alain
[stagiaire]$ wc -l /home/stagiaire/passwd
39 /home/stagiaire/passwd
• Afficher les fichiers passwd présents dans le dossier /STAGE en précisant leur type.
Objectifs
utiliser un tube ;
utiliser une redirection.
Exercices
Retourner sous le terminal 1 et ajouter au fichier suivi_admin le texte Voici les répertoires de
/STAGE/commandes/gestion/ :.
• Retourner sous terminal 1 et ajouter au fichier suivi_admin le texte Voici les personnes ayant
un fichier listing_en_cours sous /STAGE/commandes/gestion/ :.
• Tapez la commande :
Sur le terminal 2, rien n’a été modifié. En fait, la commande saisie comporte une erreur. Son
affichage a donc été redirigé sur le canal d’erreur, le fichier erreur, et non suivi_admin.
• Afficher parmi les 3 dernières lignes du fichier suivi_admin celles qui contiennent pierre.
[stagiaire]$ exit
Objectifs
• créer un utilisateur ;
• créer un groupe.
Prérequis
• Sauvegarder les fichiers de configuration des groupes et des utilisateurs en les copiant dans le
répertoire /STAGE/utilisateurs.
Créer ensuite les répertoires parents des répertoires de connexion des utilisateurs :
Ajouter enfin les 4 utilisateurs en précisant leur UID, le GID de leur groupe principal, leur
répertoire de connexion ainsi que leur shell :
Utilisateur Commentaire
antoine Antoine LM
xavier Xavier S
vincent Vincent B
david David B
Objectifs
Utilisateur Groupe
antoine GroupeA
xavier GroupeX
vincent GroupeV
david GroupeD
Rediriger les informations à propos des groupes de ces utilisateurs vers le fichier
/STAGE/utilisateurs/modifications.
Utilisateur MDP
antoine tuxtux
xavier tuxone
vincent formatux
david itstime
ou en mode interactif
• Verrouiller le compte david puis le compte de vincent avec deux commandes distinctes.
et
Afficher les 4 dernières lignes du fichier /etc/shadow et visualiser les changements apportés par cet
exercice.
Objectifs
• Configurer les paramètres par défaut pour qu’à la création d’un utilisateur :
◦ Les répertoires privé, travail et partage soient créés dans le répertoire de connexion
Dans un premier temps, vérifier la valeur de la variable HOME contenue dans le fichier
/etc/default/useradd.
Modifier le fichier /etc/login.defs pour configurer les options d’UID, de GID et de mot de passe :
• Automatiser la création des dossiers privé, travail, partage lors de la création des comptes.
Faire afficher le message suivant à la connexion du compte xavier : "Tout est fichier, sauf le café !"
• Solution 1 :
[root]# echo ‘echo "Tout est fichier, sauf le café !"’ >> /home/linux/xavier/.bashrc
• Solution 2 :
Vérifier que les modifications des exercices précédents ont bien été prises en compte.
[root]# id tanguy
uid=3000(tanguy) gid=3000(tanguy) groupes=3000(tanguy)
[root]# tail –n 1 /etc/passwd
tanguy:x:3000:3000::/home/utilisateurs/tanguy:/bin/bash
[root]# tail –n 1 /etc/shadow
tanguy:!!:16897:0:60:7:::
Objectifs
[root]# fdisk -l
[root]# ls -l /dev/sdc*
[root]# mount
...
/dev/sdc1 on /Disque1 type ext4 (rw)
...
• Faire en sorte qu’à chaque redémarrage, le disque ajouté (ses partitions) soit pris en compte.
• Rediriger le contenu du fichier de configuration des montages et la table associée dans le fichier
« Resultat » que vous placerez sur la première partition du disque ajouté dans un répertoire
« SuiviInstallation ».
[root]# cd /Disque1
[root]# mkdir SuiviInstallation
[root]# cat /etc/fstab /etc/mtab > SuiviInstallation/Resultat
Objectifs
Pré-requis
• Créer un lien physique tux-v1.exe dans le répertoire src vers le fichier src/version1/tux.exe.
Le compteur revient à 1.
[stagiaire]$ rm -f src/version1/tux.exe
[stagiaire]$ ls -li src/tux-v1.exe
263883 -rw-r--r-- 1 stagiaire users 0 fev 11 14:37 src/tux-v1.exe
• Le lien physique est-il toujours un lien vers src/version1/tux.exe ? Vérifier le contenu du fichier
src/version1/tux.exe.
Impossibilité de créer le lien physique car la source et le lien sont sur deux systèmes de fichiers
différents.
• Pourquoi ?
[stagiaire]$ cd sources
[stagiaire]$ ln -s ./version2/tux.exe latest.exe
• Déplacer (ne pas copier) le répertoire sources et son contenu dans « /Disque1/programmeTux ».
[stagiaire]$ cd ..
[stagiaire]$ mv sources /Disque1/programmeTux/
[stagiaire]$ ls -l /Disque1/programmeTux/sources/latest.exe
lrwxrwxrwx 1 stagiaire users 24 fev 11 16:20 /Disque1/programmeTux/sources/latest.exe
-> ./version2/tux.exe
Objectifs
• positionner le suid.
• Faire en sorte que les utilisateurs puissent uniquement déposer des fichiers dans « resultats »
en ne pouvant que passer dans BAL .
• Lister les droits de « BAL » ainsi que ceux de ses sous répertoires.
[root]# cd ..
[root]# ls -ld BAL
drwx--x--x 5 root root 1024 fev 11 08:21 BAL
[root]# cd BAL
[root]# ls –l
drwx-wx-wx 5 root root 1024 fev 11 08:21 resultats
La commande « chfn » permet de formater le champ commentaire des comptes utilisateurs. Cette
commande écrit dans le fichier « /etc/passwd ».
[root]# ls -l /usr/bin/chfn
-rwx--x--x 1 root root 16464 oct 16 2007 /usr/bin/chfn
[root]# ls -l /etc/passwd
-rw-r--r-- 1 root root 1638 fev 5 13:23 /etc/passwd
• Faire en sorte que les utilisateurs puissent utiliser cette commande et ainsi changer le
commentaire les concernant.
[root]# ls -l /usr/bin/chfn
-rws--x--x 1 root root 16464 oct 16 2007 /usr/bin/chfn
[root]# ls -l /etc/passwd
-rw-r--r-- 1 root root 1638 fev 5 13:23 /etc/passwd
Objectifs
[stagiaire]$ cd
[stagiaire]$ mkdir cours
Je suis le propriétaire
• Que se passe-t-il ?
• Que se passe-t-il ?
• Rétablir les droits drwxr-xr-x du répertoire cours. Créer un fichier linux.txt dans cours puis
créer le répertoire cours/windows.
• Remettre les droits dr-xr-xr-x sur le répertoire cours. Tenter de détruire le fichier linux.txt et le
sous-répertoire wndows.
• Commenter le résultat.
Les droits du répertoire cours permettent le passage, et ceux sur windows la copie du fichier.
[stagiaire]$ cd cours
• Que se passe-t-il ?
[stagiaire]$ cd cours/windows
• Que se passe-t-il ?
• Mettre les droits afin de pouvoir se positionner dans le répertoire cours et donner les droits de
lecture seule au fichier « linux.txt ».
• Tenter de modifier son contenu (à l’aide d’un éditeur de texte ou par la commande « cat
>>linux.txt »).
[stagiaire]$ rm -f linux.txt
La destruction du fichier est possible car le répertoire où il est situé possède le droit « w » pour «
stagiaire ».
• Copier le fichier « /bin/ls » dans votre répertoire de travail. Renommer le fichier en « ls1 ».
[stagiaire]$ cd
[stagiaire]$ cp /bin/ls ls1
[stagiaire]$ ./ls1
[stagiaire]$ ./ls1
bash: ./ls1: permission non accordée
#!/bin/bash
clear
echo "essai de script Shell"
[stagiaire]$ ls -l Prog
[stagiaire]$ ./Prog
Objectifs
[stagiaire]$ ps
[stagiaire]$ ps > /STAGE/processus/stagiaire
[stagiaire]$ ps –ef
[stagiaire]$ ps -ef > /STAGE/processus/systeme
• Lancer en tâche de fond la commande sleep avec une durée de 1000 secondes. Récupérer son
exécution au premier plan.
[stagiaire]$ fg 1
[CTRL]+[Z]
[1]+ Stopped sleep 1000
[stagiaire]$ bg 1
[1]+ sleep 1000 &
[stagiaire]$ jobs
[1]+ Running sleep 1000 &
Objectifs
• restaurer la sauvegarde.
Prérequis
• Réaliser une sauvegarde en mode absolu de « /etc ». Nommer cette sauvegarde de façon à
connaître l’utilitaire utilisé. Elle sera placée dans le répertoire « /Disque1/sauvegardes ».
ou
[root]# cd /Disque1/sauvegardes
[root]# tar cvfP etc.P.`date +%j`.tar /etc
La sauvegarde précédente ayant été faite en mode absolu, on ajoutera le fichier en mode absolu
également :
ou
[root]# cd /Disque1/sauvegardes
[root]# tar rvfP etc.P.`date +%j`.tar /usr/bin/passwd
• Réaliser une sauvegarde en mode absolu de /home. Elle portera un nom explicite. Cette
sauvegarde sera placée dans le répertoire « /Disque1/sauvegardes ».
ou
[root]# cd /Disque1/sauvegardes
[root]# tar cvfP home.P.`date +%j`.tar /home
• Réaliser une sauvegarde compressée en mode relatif de « /etc ». Pour la compression, vous avez
le choix de la méthode. Nommer cette sauvegarde de façon à connaître l’utilitaire utilisé. Cette
sauvegarde sera placée dans le répertoire « /Disque1/sauvegardes ».
La sauvegarde est à réaliser en mode relatif et compressée (plus besoin de la clé « P »).
[root]# cd /Disque1/sauvegardes
[root]# echo "Lecture de la sauvegarde etc.P.`date +%j`.tar" >ResultatDesSauvegardes
[root]# echo "----------------------------------" >>ResultatDesSauvegardes
[root]# tar tvfP etc.P.`date +%j`.tar >> ResultatDesSauvegardes
[root]# echo >> ResultatDesSauvegardes
[root]# echo "Lecture de la sauvegarde home.P.`date +%j`.tar" >>ResultatDesSauvegardes
[root]# echo "-----------------------------------" >>ResultatDesSauvegardes
[root]# tar tvfP home.P.`date +%j`.tar >> ResultatDesSauvegardes
[root]# echo >> ResultatDesSauvegardes
ou
La sauvegarde du répertoire /home a été réalisée en mode absolu. Pour la restaurer en mode
relatif, il suffit d’omettre la clé « P » lors de la restauration.
Se placer dans un répertoire neutre (ici « /tmp ») pour que « home/GroupeA » soit restauré. Notez
bien, que c’est effectivement « home/GroupeA » qui sera restauré et non « /home/GroupeA » car la
restauration est en mode relatif !!
[root]# cd /tmp
Notez que le « / » devant « home/GroupeA » est nécessaire car c’est ce que contient effectivement la
sauvegarde, qui pour rappel a été réalisée en mode absolu.
La sauvegarde compressée ayant été réalisée en mode relatif, nous devons la restaurer dans ce
mode. Il est donc impératif de bien se positionner au préalable. Ensuite, il faut penser à utiliser la
bonne clé de décompression.
[root]# cd /tmp
[root]# tar xvfz /Disque1/sauvegardes/etc.`date +%j`.tar.gz
ou
ou
Objectifs
• restaurer la sauvegarde.
Prérequis
• Réaliser une sauvegarde de « /etc » en mode absolu. Nommer cette sauvegarde de façon à
connaître l’utilitaire utilisé. Cette sauvegarde sera placée dans le répertoire
« /Disque1/sauvegardes ».
Pour réaliser une sauvegarde en mode absolu, il faut lister le répertoire à sauvegarder en mode
absolu. Afin de respecter la convention de nommage vu en cours, noter « A » quand la sauvegarde
est effectuée en mode absolu.
ou
Elle portera un nom explicite. Cette sauvegarde sera placée dans le répertoire
«/Disque1/sauvegardes».
Pour réaliser une sauvegarde en mode relatif, il faut lister le répertoire à sauvegarder en mode
relatif et donc il faut se trouver à l’endroit où se trouve le répertoire à sauvegarder.
[root]# cd /
[root]# find home/GroupeA | cpio -ov >/Disque1/sauvegardes/HomeGroupeA.`date +%j`.cpio
ou
home/GroupeA est listé en relative car son chemin ne commence pas par un “/”.
• Lister le contenu des deux sauvegardes réalisées et mettre le résultat du listage dans
« /Disque1/sauvegardes/ResultatDesSauvegardes ».
[root]# cd /Disque1/sauvegardes
[root]# echo >> ResultatDesSauvegardes
[root]# echo "Lecture de la sauvegarde etc.A.`date +%j`.cpio" >>ResultatDesSauvegardes
[root]# echo "-----------------------------------" >>ResultatDesSauvegardes
[root]# cpio -tv <etc.A.`date +%j`.cpio >> ResultatDesSauvegardes
ou
ou
La sauvegarde ayant été réalisée en mode absolu, elle sera restaurée par défaut en
mode absolu.
L’utilisation de -u permet d’écraser tous les fichiers sans demander le remplacement des fichiers
récents par de plus anciens.
ou
ou
Pour restaurer en mode relatif une sauvegarde ayant été réalisée en mode absolu, il faut préciser
l’option « --no-absolute-filenames ».
En général quand une sauvegarde est restaurée en mode relatif, c’est pour la vérifier et donc la
restaurer dans un répertoire autre que celui naturellement prévu.
[root]# cd /tmp
[root]# cpio --no-absolute-filenames -iv </Disque1/sauvegardes/etc.A.`date +%j`.cpio
ou
(Notez bien que le nom du fichier de sauvegarde doit se trouver directement après l’option « F »,
c’est pourquoi l’option « --no-absolute-filenames » est placé en premier).
[root]# cd /Disque1/sauvegardes
[root]# echo >> CmdSauvegardes
[root]# echo "Restauration en relatif de etc.A.`date +%j`.cpio">> CmdSauvegardes
[root]# echo "-------------------------------------">> CmdSauvegardes
[root]# echo "cd /tmp" >> CmdSauvegardes
[root]# echo "cpio --no-absolute-filenames -iv </Disque1/sauvegardes/etc.A.`date
+%j`.cpio" >> CmdSauvegardes
ou
[root]# cd /tmp
[root]# cpio -idv </Disque1/sauvegardes/HomeGroupeA.`date +%j`.cpio
ou
[root]# cd /Disque1/sauvegardes
[root]# echo >> CmdSauvegardes
[root]# echo "Restauration en relatif de HomeGroupeA.`date +%j`.cpio" >>CmdSauvegardes
[root]# echo "-----------------------------------------" >> CmdSauvegardes
[root]# echo "cpio -idv </Disque1/sauvegardes/HomeGroupeA.`date +%j`.cpio"
>>CmdSauvegardes
ou