Lpic 101 TP Ii [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

LPIC 101

Cahier de tps

Linux Lab., SUPINFO Revision dated from the 01/03/2009 Copyright © 2008 SUPINFO All rights reserved.

ble of Contents 1. Introduction .......................................................................................................................................................... 1 2. Terminaux et commandes de base ............................................................................................................................. 2 2.1. Rappel sur les terminaux ............................................................................................................................... 2 2.1.1. L'interpréteur de commande ................................................................................................................ 2 2.1.2. Changement d'utilisateur .................................................................................................................... 2 2.2. Opérations sur les fichiers et répertoires ........................................................................................................... 3 3. Editeurs et flux de texte .......................................................................................................................................... 6 3.1. Pipes et redirections ..................................................................................................................................... 6 3.2. Flux de textes et filtres ................................................................................................................................. 9 3.3. L'éditeur VI ...............................................................................................................................................13 4. Expressions régulieres ...........................................................................................................................................15 4.1. Préparation ...............................................................................................................................................15 4.2. Grep ........................................................................................................................................................15 4.3. Sed ..........................................................................................................................................................16 5. Gestion des processus ............................................................................................................................................17 5.1. Gestion des processus .................................................................................................................................17 6. FHS ...................................................................................................................................................................19 7. Recherche ...........................................................................................................................................................20 7.1. find .........................................................................................................................................................20 7.2. locate .......................................................................................................................................................21 8. Gestion des utilisateurs et des groupes ......................................................................................................................23 8.1. Les utilisateurs et groupes ............................................................................................................................23 8.2. Gestion des identités ...................................................................................................................................24 8.3. Suppression d'utilisateur et de groupe .............................................................................................................27 8.4. Modèle de répertoire personnel .....................................................................................................................27 9. Gestion des permissions .........................................................................................................................................29 9.1. Gestion des permissions ..............................................................................................................................29 10. Gestion des disques .............................................................................................................................................32 10.1. Gestion des disques ...................................................................................................................................32 10.2. Cas pratique ............................................................................................................................................35 11. Quotas ..............................................................................................................................................................38 11.1. Configuration des quotas ............................................................................................................................38 12. Installation .........................................................................................................................................................41 12.1. Préparation à l'installation ..........................................................................................................................41 12.2. Configuration du bootloader .......................................................................................................................41 13. Installation de programmes ...................................................................................................................................44 13.1. L'approche Red Hat ..................................................................................................................................44 13.1.1. Installation de paquetages avec les rpm ..............................................................................................44 13.1.2. Manipulation des packages RPM .......................................................................................................44 13.2. L'approche Debian ....................................................................................................................................45 13.2.1. Installation de paquetages avec dpkg. ................................................................................................45 13.2.2. Installation de paquetages avec apt-get. .............................................................................................45 13.2.3. Manipulation des packages debian .....................................................................................................46 13.3. Installation universelle et personnalisée. ........................................................................................................46 13.3.1. Installation depuis les sources. ..........................................................................................................46 13.4. Les librairies dynamiques du système ...........................................................................................................47 14. Architecture et materiel ........................................................................................................................................49 15. Serveur X ..........................................................................................................................................................50 15.1. Configuration du serveur X ........................................................................................................................50

1

Chapter 1. Introduction Aucun tp pour ce chapitre.

2

Chapter 2. Terminaux et commandes de base Table of Contents 2.1. Rappel sur les terminaux ................................................................................................... 2 2.1.1. L'interpréteur de commande .................................................................................... 2 2.1.2. Changement d'utilisateur ........................................................................................ 2 2.2. Opérations sur les fichiers et répertoires ............................................................................... 3

2.1. Rappel sur les terminaux 2.1.1. L'interpréteur de commande L’endroit où vous pouvez taper des commandes dans un terminal s’appelle l’interpréteur de commande (shell en anglais). Il en existe plusieurs, le plus utilisé étant Bash. Le texte qui précède l’endroit où vous pouvez saisir vos commandes s’appelle le prompt. Bien que celui ci soit entièrement modifiable, voici de quoi est composé un prompt « classique » : Utilisateur @ NomDeLaMachine RépertoireCourant ($|#)

Par exemple : root@localhost ~ #

Le symbole final (# ou $) permet de distinguer rapidement les privilèges de l’utilisateur : « # » pour le super utilisateur, « $ » pour un utilisateur classique. Ce symbole fait parti du prompt et peut donc aussi être changé. Ici, « ~ » (symbole tilde) signifie qu’il s’agit du répertoire personnel de l’utilisateur. Le répertoire du super utilisateur étant /root et le répertoire d’un utilisateur classique étant situé, par convention, dans / home/login_utilisateur. L’interpréteur de commande permet de compléter automatiquement le nom des commandes et les chemins vers les fichiers ou répertoire. Pour cela, il suffit d’appuyer sur la touche TAB et Bash fera de son mieux pour compléter votre ligne. Dans le cas où plusieurs façons de compléter sont possibles, il faudra appuyer une seconde fois sur la touche TAB pour afficher la liste des possibilités.

2.1.2. Changement d'utilisateur Deux comptes utilisateurs sont présents sur la machine : • Le super utilisateur root • L’utilisateur supinfo

Terminaux et commandes de base

3

Pour passer de l’un à l’autre, il suffit de taper su suivi du login de l’utilisateur désiré. le - permet de recharger l'environnement de l'utilisateur. [root@localhost ~]# su - supinfo [supinfo@localhost ~]$

2.2. Opérations sur les fichiers et répertoires Q: Créez un fichier fichier1 et un dossier dossier1. A: Nous utilisons la commande touch pour créer des fichiers et mkdir pour créer des répertoires. [root@linux ~]# mkdir dossier1 [root@linux ~]# touch fichier1

Ces deux éléments sont créés dans le répertoire courant, il s’agit ici du répertoire personnel de l’utilisateur root (/root). Q: Dans le répertoire dossier1, créez un lien symbolique nommé noyau qui pointe vers /usr/src. A: La commande ln avec l’option -s permet de créer des liens symboliques. Elle s'utilise de la façon suivante : ln -s ObjetDuLien EmplacementDuLien [root@linux ~]# ln -s /usr/src dossier1/noyau

Faire attention à l'ordre des arguments ! Q: Listez le contenu de votre répertoire courant, puis celui du répertoire dossier1, copiez le répertoire dossier1 en dossier2, effacer le répertoire dossier1 puis renommer dossier2 en dossier1. A: Pour lister le répertoire courant qui est ici mon répertoire personnel, je peux faire : [root@linux ~]# ls ou [root@linux ~]# ls .

(. représente le répertoire courant)

ou [root@linux ~]# ls /root

(/root représente le répertoire courant à savoir le réperto

ou [root@linux ~]# ls ~

(~ représente le répertoire personnel de l'utilisateur cour

Terminaux et commandes de base

Pour lister le répertoire dossier1, je peux utiliser les commandes suivantes : [root@linux ~]# ls dossier1 ou [root@linux ~]# ls ./dossier1 ou [root@linux ~]# ls /root/dossier1 ou [root@linux ~]# ls ~/dossier1

Copions à présent le repertoire dossier1 en dossier2 à l'aide de la commande cp et de l'option -r (récursivité). [root@linux ~]# cp -r dossier1 dossier2

Effaçons le répertoire dossier1 et renommons dossier2 en dossier1 à l'aide des commandes rm et mv. [root@linux ~]# rm -r dossier1 [root@linux ~]# mv dossier2 dossier1

Q: Allez dans le répertoire dossier1/noyau/, puis utiliser la commande pwd -P pour afficher le répertoire où vous vous trouvez. Enfin, utilisez la commande cd - pour revenir au répertoire précédent. A: [root@linux ~]# cd dossier1/noyau [root@linux ~/dossier1/noyau]# pwd /root/dossier1/noyau [root@linux ~/dossier1/noyau]# pwd -P /usr/src [root@linux ~/dossier1/noyau]# cd [root@linux ~]#

Q: Affichez les lignes du fichier /var/log/messages qui contiennent le mot usb. A: La commande grep permet d'afficher les lignes d'un fichier qui correspondent au motif passé en argument. grep s'utilise de la façon suivante : grep Quoi Où. L'option -i permet de ne pas tenir compte de la casse (Majuscule/Minuscule). [root@linux ~]# grep -i usb /var/log/messages

4

Terminaux et commandes de base

Q: Créez un fichier un super fichier en l'écrivant entre guillemets. Effacer ce fichier en utilisant la commande rm et l'auto-complétion de Bash à partir du premier mot du fichier. Observez la syntaxe utilisée par Bash. A: [root@linux ~]# touch "un super fichier" [root@linux ~]# rm un [root@linux ~]# rm un\ super\ fichier

On constate que Bash « échappe » les espaces grâce au caractère « \ ». Q: Effacez tous les fichiers et dossiers commençant par « doss » dans le répertoire courant. A: Il faut ici utiliser le « globbing ». Plusieurs méta-caractères sont à notre disposition : • le caractère « . » : correspond à 1 caractère. • le caractère « ? » : correspond à zéro ou 1 caractère. • le caractère « * » : correspond à zéro ou plusieurs caractères.

[root@linux ~]# rm -r doss*

L'option -r permet de supprimer également les répertoires.

5

6

Chapter 3. Editeurs et flux de texte Table of Contents 3.1. Pipes et redirections ......................................................................................................... 6 3.2. Flux de textes et filtres ..................................................................................................... 9 3.3. L'éditeur VI ...................................................................................................................13

3.1. Pipes et redirections Q: Quels sont les trois flux standards ? A: Les trois flux standards sont : • L'entrée standard, STDIN, numéro 0. • La sortie standard, STDOUT, numéro 1. • La sortie d'erreur, STDERR, numéro 2. Pour manipuler les flux, 3 opérateurs sont disponibles : • « > » permet de rediriger la sortie d'une commande dans un fichier. Si le fichier n'existe pas, celui-ci est créé. S'il existe, son contenu est effacé. Si l'on veut conserver le contenu du fichier, il faut utiliser « >> ». Par défaut, c'est la sortie standard de la commande qui est redirigée. Pour rediriger autre chose, il suffit de mettre le numéro du flux avant l'opérateur. • « < » permet de rediriger le contenu d'un fichier dans l'entrée standard d'une commande. • « | » permet de rediriger la sortie standard d'une commande vers l'entrée standard d'une autre. • « 2> » permet de rediriger la sortie d'erreur d'une commande dans un fichier. Q: Listez en affichage complet le contenu du répertoire /etc dans le fichier sortie_etc. A: [root@linux ~]# ls -l /etc > sortie_etc

Le fichier sortie_etc est créé dans le répertoire courant. L'affichage complet (option -l) de ls permet d'afficher les permissions, la taille ainsi que les dates de

Editeurs et flux de texte

modifications des fichiers. Q: Concaténez la liste des répertoires et des fichiers de /var/log/ à la suite de sortie_etc. A: [root@linux ~]# ls /var/log >> sortie_etc

L'opérateur « >> » permet de ne pas écraser le contenu de sortie_etc. Q: Utilisez cat combiné avec less pour afficher le fichier sortie_etc. A: Il suffit d'envoyer la sortie de cat vers l'entrée de less grâce au pipe.

[root@linux ~]# cat sortie_etc | less

Q: Utilisez cat combiné avec grep pour n’afficher que les fichiers qui ont « .conf » dans leur nom et qui sont dans sortie_etc. A: Ici, il faut combiner cat avec grep :

[root@linux ~]# cat sortie_etc | grep .conf

Mais ce n'est pas tout à fait exact, car le « . » est un caractère spécial remplaçant n'importe quel caractère. Ainsi, on obtient des résultats tels que « fontconfig », « autoconf », etc. Il faut donc mettre la chaîne de caractère entre guillemets pour qu'elle ne soit pas interprétée par Bash.

[root@linux ~]# cat sortie_etc | grep ".conf"

Sauf que cela ne marche toujours pas. Pourquoi ? Parce que, maintenant, c'est grep qui interprète le caractère « . » comme un caractère spécial. Il faut donc l'échapper une nouvelle fois grâce à un backslash « \ ».

7

Editeurs et flux de texte

[root@linux ~]# cat sortie_etc | grep "\.conf"

Q: Listez tous les fichiers du répertoire /etc contenant la suite de caractères « env ». A: [root@linux ~]# ls /etc/ | grep env

La commande ls /etc/ nous permet de lister le contenu de /etc sur la sortie standard. On redirige ensuite cette sortie dans l'entrée de grep pour rechercher la chaîne de caractère « env ». Q: Listez le répertoire /dev/ de 3 manières : Classique (ls), combiné avec more, puis avec less. A: [root@linux ~]# ls /dev [root@linux ~]# ls /dev | more [root@linux ~]# ls /dev | less

Q: Affichez les noms de fichiers contenant la suite de caractères « conf » dans les 30 premiers fichiers du répertoire /etc. A: Il suffit de décomposer ce qui est demandé : • 1. Tout d'abord, il faut obtenir la liste des fichiers du répertoire /etc grâce à ls. • 2. Ensuite, on ne veut travailler que sur les 30 premiers fichiers du répertoire, il faut donc prendre les 30 premières lignes renvoyées par ls grâce à head. • 3. Enfin, on peut afficher les lignes contenant « conf » avec grep.

[root@linux ~]#

8

Editeurs et flux de texte

ls /etc | head -n 30 | grep conf

Q: Faites de même pour les 10 derniers fichiers. A: La même chose, mais avec l'utilitaire tail.

[root@linux ~]# ls /etc | tail -n 10 | grep conf

Q: Créez un fichier toto contenant la phrase « linux rulez » grâce à la commande echo et les redirections. A: La commande echo permet d'afficher sur la sortie standard le texte passé en paramètre. Grâce aux redirections, on peut utiliser echo pour écrire dans un fichier.

[root@linux ~]# echo "Linux rulez" > toto

Q: Grâce à la commande tr, convertissez toutes les lettres minuscules (de a à z) du fichier toto en lettres majuscules, redirigez le tout vers le fichier tata puis grâce à l’opérateur && affichez le contenu de tata. N’hésitez pas à consulter l’aide de la commande tr. A: La commande tr permet de transformer du texte. Elle ne fonctionne que sur les flux : tr lit sur l'entrée standard et affiche le résultat sur la sortie standard. tr fonctionne donc de cette façon : tr TexteATransformer Transformation < Fichier

[root@linux ~]# tr [:lower:] [:upper:] < toto > tata && cat tata

3.2. Flux de textes et filtres

9

Editeurs et flux de texte

Affichez le fichier /var/log/messages avec les commandes cat, more, less, tail puis head. Décrire rapidement les effets de chacune de ces commandes. A: [root@linux ~]# cat /var/log/messages [root@linux ~]# more /var/log/messages [root@linux ~]# less /var/log/messages [root@linux ~]# tail /var/log/messages [root@linux ~]# head /var/log/messages

Nous avons donc plusieurs commandes à notre disposition pour afficher le contenu de fichiers textes : • cat : Affiche le contenu du fichier passé en paramètre sur la sortie standard. • more : Affiche le contenu du fichier passé en paramètre sur la sortie standard, avec possibilité de voir le texte page par page et de le faire défiler vers le bas. • less : Equivalent de la commande more qui permet de faire défiler le texte dans les deux sens (haut et bas) ainsi que horizontalement. • head : Permet d'afficher les 10 premières lignes d'un fichier sur la sortie standard. On peut préciser le nombre de lignes à afficher grâce à l'option -n. • tail : permet d'afficher les 10 dernières lignes d'un fichier sur la sortie standard. On peut aussi préciser le nombre de lignes à afficher grâce à l'option -n. On peut faire en sorte que tail se rafraîchisse automatique lors d'une modification extérieure sur le fichier grâce à l'option -f. C'est une commande très pratique pour observer les fichiers de logs. Tous ces programmes lisent également sur leur entrée standard, on peut donc obtenir la même chose avec des redirections :

[root@linux ~]# cat < /var/log/messages [root@linux ~]# more < /var/log/messages [root@linux ~]#

10

Editeurs et flux de texte

less < /var/log/messages [root@linux ~]# tail < /var/log/messages [root@linux ~]# head < /var/log/messages

Q: Sur une première console, affichez le fichier /var/log/auth.log en utilisant le rafraîchissement automatique de la commande tail. Connectez vous à une autre console virtuelle en tant que root et observez le changement du fichier sur la première console. A: Le fichier /var/log/auth.log est le fichier de log correspondant aux actions de connexions sur la machine. Sur une première console :

[root@linux ~]# tail -f /var/log/auth.log

Sur une deuxième console :

[supinfo@linux ~]$ su Password: [root@linux ~]#

On constate que sur la première console, l'affichage s'est rafraîchit pour inclure une ligne du type :

Nov 30 15:17:02 localhost CRON[13589]: (pam_unix) session opened for user root by (uid=0)

Q: Le fichier /etc/passwd contient diverses informations relatives aux comptes des utilisateurs. Comment faire pour obtenir un fichier sys_users contenant le login de tous les utilisateurs du système, à hauteur d'un login par ligne, chaque ligne étant numérotée ? A:

11

Editeurs et flux de texte

L'outil cut permet de découper une ligne en plusieurs champs. cut s'utilise en général avec 2 options, l'option -d qui permet de définir quel caractère va servir de séparateur lors du découpage des champs, et l'option -f qui permet de préciser les champs que l'on veut récupérer. Le fichier /etc/passwd est constitué de plusieurs lignes, chacune de ces lignes contenant plusieurs champs séparés par le caractère « : ». On récupère donc le premier champ grâce à cut et on envoie la sortie dans nl pour que les lignes soient numérotées. Il suffit ensuite de rediriger le tout dans un fichier.

[root@linux ~]# cut -d ":" -f 1 < /etc/passwd | nl > sys_users

Q: Afficher le nombre de comptes utilisateurs présents sur la machine en une seule commande. A: Puisque le fichier /etc/passwd contient une ligne pour chaque utilisateur, il suffit de lister le nombre de lignes avec wc -l pour connaître le nombre d'utilisateurs.

[root@linux ~]# wc -l /etc/passwd

Q: La commande ifconfig (en root) affiche les informations relatives au réseau. Comment faire pour obtenir un fichier ip_address contenant la liste des adresses IP configurées, à hauteur d’une adresse IP par ligne ? A: Exemple d'affichage d'ifconfig :

[root@linux ~]# ifconfig eth0 Lien encap:Ethernet HWaddr 00:0D:60:37:80:88 inet adr:10.1.78.21 Bcast:10.1.79.255 Masque:255.255.252.0 adr inet6: fe80::20d:60ff:fe37:8088/64 Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:82834 errors:0 dropped:0 overruns:0 frame:0 TX packets:155880 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:30244120 (28.8 MiB) TX bytes:20777082 (19.8 MiB) Adresse de base:0x8000 Mémoire:c0220000-c0240000

Tout d'abord on repère la ou les lignes qui nous intéressent afin de pouvoir les récupérer avec grep.

12

Editeurs et flux de texte

inet adr:10.1.78.21 Bcast:10.1.79.255 Masque:255.255.252.0

Il nous reste ensuite à récupérer ce que l'on cherche grâce à cut, plusieurs fois si nécessaire.

[root@linux ~]# ifconfig | grep "Masque:" | cut -d ":" -f 2 | cut -d " " -f 1

Q: Quels sont les trois opérateurs que l’on peut utiliser pour exécuter plusieurs commandes à la suite ? A: Les 3 opérateurs à notre disposition sont : Le ET logique « && » :

commande1 && commande2 (commande2 est exécutée seulement si commande1 réussit)

Le OU logique « || » :

commande1 || commande2 (commande2 est exécutée seulement si commande1 échoue)

Le séparateur d'instructions « ; » :

commande1 ; commande2 (commande2 est exécutée après que commande1 se soit achevée, quoiqu'il arrive)

3.3. L'éditeur VI Q: L’éditeur de texte Vi (prononcer « vi aïe ») est l’un des éditeurs les plus répandus dans le monde UNIX. Il vous faut donc apprendre à le maîtriser. Pour cela, tapez vimtutor et complétez le tutorial. A:

13

Editeurs et flux de texte

[supinfo@linux ~]$ vimtutor

14

15

Chapter 4. Expressions régulieres Table of Contents 4.1. Préparation ...................................................................................................................15 4.2. Grep ............................................................................................................................15 4.3. Sed ..............................................................................................................................16

4.1. Préparation Avant de commencer ce TP, on va créer un fichier qui va nous permettre de vérifier les différentes expressions réguilères. Pour cela, il suffit de copier les lignes ci-dessous dans un fichier et de tester les expressions réguières sur ce dernier. #supinfo #nice1 nice#1 supinfo2# 1234paris 12nice23 8888 azerty88888qwerty 888azqswx888 netbsd freebeerbds 123

4.2. Grep Q: Afficher toutes les lignes commençant par un #. A: grep '^#' fichier

Q: Afficher toutes les lignes qui finissent par un caractère alphanumérique. A: grep '[a-zA-Z0-9]$' fichier

Q: Afficher toutes les lignes contenant une suite de 3 chiffres. A: grep -E '[0-9]{3}' fichier

Q: Afficher toutes les lignes contenant 8888, 88888 ou 888888. A: grep -E '8{4,6}' fichier

Expressions régulieres

Q: Afficher toutes les lignes contenant soit netbsd, freebsd ou openbsd. A: grep -E '(net|free|open)bsd' fichier

4.3. Sed Q: Remplacer toutes les occurrences de /mnt par /media dans /etc/fstab sans modifier le fichier original. A: sed 's/\/mnt/\/media/g' /etc/fstab

Q: Supprimer toutes les lignes vides d'un fichier. A: sed '/^$/d' fichier

Q: Afficher que les lignes finissant par /bin/bash dans /etc/passwd A: sed -n '/\bin\/bash$/p' /etc/passwd

Q: Créer une expression régulière qui reconnaît un nom d'utilisateur Linux valide. A: sed -n '/[a-z_][a-z0-9]*/p'

16

17

Chapter 5. Gestion des processus Table of Contents 5.1. Gestion des processus .....................................................................................................17

5.1. Gestion des processus Q: Lancer yes > /dev/null et mettre en pause la commande en cours à l'aide d'un raccourci clavier. A: [root@linux ~]# yes > /dev/null Puis Ctrl-Z.

Q: Utiliser la commande jobs qui vous permettra d'observer les [travaux] du shell courant. A: [root@linux ~]# jobs Il vous sera affiché un numéro de "job" pour le processus lancé.

Q: Passer la commande yes > /dev/null en arrière plan. A: [root@linux ~]# bg %Numéro_de_job

Q: Envoyer un signal SIGTERM ou SIGKILL au processus yes > /dev/null et vérifier qu'il a bien été quitté. A: [root@linux ~]# ps aux | grep yes [root@linux ~]#

Gestion des processus

kill -9 pid_de_yes [root@linux ~]# ps aux | grep yes Le processus n'est plus présent.

Q: Editer le fichier /etc/resolv.conf avec vi en utilisant la commande nice. Lancer la commande top et vérifier la priorité du processus. Toujours avec la commande top diminuer la priorité du processus à 15. A: [root@linux ~]# nice vi /etc/resolv.conf [root@linux ~]# top Une fois la commande top lancée, tapez "r" et entrer le chiffre 15.

Q: Lancer la commande top afin que celle-ci affiche tous les processus durant 3 rafraichissements, où l'écart entre chaque rafraichissement soit de 5 secondes le tout en mode batch, puis retournez le tout dans un fichier. (voir le man) A: [root@linux ~]# top -n 3 -d 5 -b > fichier_batch

18

19

Chapter 6. FHS Aucun tp pour ce chapitre.

20

Chapter 7. Recherche Table of Contents 7.1. find .............................................................................................................................20 7.2. locate ...........................................................................................................................21

7.1. find Q: Rechercher un fichier portant le nom de messages dans /var. A: [user@linux ~]$ find /var -name messages

Q: Rechercher tous les fichiers se terminant par « .log ». A: [user@linux ~]$ find / -name "*.log"

Q: Rechercher tous les répertoires portant le nom de log qui ont été accédés depuis moins de 2 jours. A: [user@linux ~]$ find / -name log -atime -2 -type d

Q: Rechercher tous les fichiers se terminant par « .log » sur le système et y appliquer un « touch » afin d'en modifier la dernière date d'accès. Vérifier ensuite avec la commande ls -l. A: Il existe un moyen d'exécuter une action pour chaque résultat de find. Pour cela, il faut utiliser l'option exec suivie d'une syntaxe un peu particulière. En effet, après le -exec il faut indiquer la commande à exécuter. Si, dans cette commande, on a besoin

Recherche

d'utiliser le nom du fichier qui a été trouvé par find, il faut utiliser la chaîne de caractère "{}". En dernier lieu, il faut terminer la ligne par les caractères "\;". Ainsi, pour appliquer un touch à tous les fichiers trouvés par find :

[user@linux ~]$ find / -name "*.log" -exec touch {} \;

7.2. locate Q: Rechercher tous les fichiers se terminant par « .log » sur le système avec la commande locate et observer la vitesse. A: [user@linux ~]$ locate *.log

Note La recherche avec locate est immédiate.

Q: Créer un fichier monfichier.txt puis chercher le avec la commande locate. Que remarquez-vous ? A: [user@linux ~]$ touch monfichier.txt [user@linux ~]$ locate monfichier.txt

locate ne trouve pas le fichier. En effet, sa base de donnée n'a pas été mise à jour entre temps. Q: Mettre à jour la base de donnée de locate grâce à la commande updatedb puis rechercher de nouveau le fichier monfichier.txt. A:

21

Recherche

[root@linux ~]# updatedb [user@linux ~]$ locate monfichier.txt

22

23

Chapter 8. Gestion des utilisateurs et des groupes Table of Contents 8.1. Les utilisateurs et groupes ................................................................................................23 8.2. Gestion des identités .......................................................................................................24 8.3. Suppression d'utilisateur et de groupe .................................................................................27 8.4. Modèle de répertoire personnel .........................................................................................27

8.1. Les utilisateurs et groupes Q: Créez un utilisateur lpic avec comme répertoire home /home/lpic (généré automatiquement) et avec comme mot de passe « password » (ne pas faire apparaître le mot de passe en clair sur la ligne de commande). A: [root@linux ~]# useradd -m lpic [root@linux ~]# passwd lpic Enter new UNIX password: Retype new UNIX password:

Note Le répertoire personnel est généré en prenant le répertoire /etc/skel pour modèle.

Q: Créez un groupe forma sans aucune option. A: [root@linux ~]# groupadd forma

Q: Définissez le groupe forma comme groupe principal de l'utilisateur lpic. Cette modification devra être faite en modifiant le fichier /etc/passwd et non en utilsant la commande usermod. A:

Pour cela, il convient de modifier le 4e champ du fichier /etc/passwd et d'y spécifier Pour récupérer le gid, faites un cat /etc/group pour retrouver le GID du groupe désiré

Gestion des utilisateurs et des groupes

Q: Définissez les groupes secondaires de l'utilisateur lpic comme étant : users et staff (créez les si nécessaire avec la commande groupadd). Cette fois-ci, utilisez la commande usermod. A: [root@linux ~]# usermod -G users,staff lpic

Q: Listez les groupes de l'utilisateur lpic. A: [root@linux ~]# groups lpic lpic : forma users staff

Q: Vous voulez activer les fonctionnalités shadow sur votre système (si cela n'est pas déjà fait). Une fois que les fonctionnalités shadow sont activées. Ouvrez le fichier /etc/passwd. Que voyez-vous par rapport au mot de passe? Où ces mots de passe sont-ils stockés ? A: [root@linux ~]# pwconv # permet d'activer les fonctionnlités shadow

Dans le fichier /etc/passwd, le champ mot de passe est marqué d'un x. Le mot de passe chiffré est situé dans le fichier /etc/shadow.

8.2. Gestion des identités Note Pour se déconnecter rapidement d'une session dans un terminal, il existe le raccourci très pratique Ctrl+D. Ce raccourci équivaut à taper la commande exit.

Q: Changez votre identité de l'utilisateur root en utilisateur mandriva. A: [root@linux ~]# su - mandriva [user@linux ~]$

Q: Listez les utilisateurs connectés.

24

Gestion des utilisateurs et des groupes

A: [mandriva@linux ~]$ who

Q: Déconnectez vous de l'utilisateur mandriva pour revenir en super utilisateur root. A: [user@linux ~]$ exit [root@linux ~]#

ou bien : [user@linux ~]$ Ctrl+D [root@linux ~]#

Q: Désactivez le compte lpic. A: [root@linux ~]# passwd -l lpic

On peut vérifier que le compte est bien désactivé en regardant dans le fichier /etc/shadow : root@localhost ~ # cat /etc/shadow | grep lpic | cut -d ":" -f 2 !$1$.8oDh7HP$Avzeu/z2ij4PHjyedRcs20

Note Il y a un « ! » avant le mot de passe : le compte est désactivé.

Q: Changez votre identité en lpic. Pourquoi le mot de passe de user1 n'est-il pas demandé ? A: [root@linux ~]# su - lpic [supinfo@localhost ~]$

Le mot de passe n'est pas demandé, car le super-utilisateur a accès à tous les comptes du système. Q: Essayez de vous logguer en tant que lpic. A: [supinfo@linux ~]$ su - lpic

25

Gestion des utilisateurs et des groupes

Password: Authentication failed.

Le compte est désactivé : il est donc impossible de se connecter. Q: Revenez en root puis logguez vous en tant que lpic. Pourquoi cela marche-t-il ? A: [supinfo@linux ~]$ su [root@linux ~]# su - lpic [lpic@linux ~]$

L'utilisateur root peut se logguer sur un compte même si celui-ci est désactivé puisqu'il n'a pas à rentrer de mot de passe. Q: Revenez en root et réactivez le compte de l'utilisateur lpic. Précisez les trois façons de réactiver le compte: 2 avec la commande passwd et 1 en éditant le fichier /etc/passwd. A: Pour réactiver un compte, plusieurs choix sont possibles : • Utilisez la commande passwd login pour définir un nouveau mot de passe. (Le champ password dans / etc/shadow est redéfini). • Utilisez la commande passwd -u login pour réactiver le compte avec le mot de passe d'origine. (Le point d'exclamation du champ password dans /etc/shadow est retiré). • Éditez le fichier /etc/shadow et retirez le point d'exclamation du champ password.

[root@linux ~]# passwd -u lpic

Q: Modifiez le fichier /etc/passwd et remplacez le shell de lpic par /bin/false. A: [root@linux ~]# vim /etc/passwd

On se positionne sur la ligne du compte lpic puis il suffit de taper : :s/bash/false

Q: Logguez-vous en tant que lpic. Cela fonctionne-t-il ? Pourquoi ?

26

Gestion des utilisateurs et des groupes

Note La page de manuel de false peut vous aider.

A: [root@linux ~]# su - lpic [root@linux ~]#

Juste après s'être loggué en tant que lpic, le programme /bin/false est lancé. Sa particularité est de ne rien faire et de renvoyer un statut d'erreur. Ainsi, le retour au shell précédent est immédiat et on a l'impression que rien ne s'est produit.

8.3. Suppression d'utilisateur et de groupe Q: Supprimez l'utilisateur lpic et son répertoire personnel. A: [root@linux ~]# userdel -r lpic

Q: Supprimez le groupe forma. A: [supinfo@linux ~]$ groupdel forma

Note On peut également éditer les fichiers /etc/passwd et /etc/group et supprimer les lignes correspondantes.

8.4. Modèle de répertoire personnel Q: Faîtes en sorte que, désormais, pour tout répertoire personnel créé automatiquement, des dossiers « Mes Documents », « Ma Musique », « Mes Vidéos » et un fichier « Bienvenue » contenant une phrase de bienvenue soient créés à l'intérieur. Créez ensuite un compte bernard avec génération automatique du dossier personnel et vérifiez la création

27

Gestion des utilisateurs et des groupes

28

des dossiers.

Note Pensez au dossier /etc/skel !

A: Par défaut, lorsque qu'un dossier personnel doit être créé automatiquement, le répertoire /etc/skel sert de répertoire modèle. Il suffit donc de modifier le contenu de ce répertoire. [root@linux ~]# cd /etc/skel [root@linux /etc/skel]# mkdir "Mes Documents" "Ma Musique" "Mes Vidéos [root@linux /etc/skel]# echo "Bienvenue sur votre système GNU/Linux :)" > Bienvenue

On ajoute ensuite notre utilisateur : [root@linux ~]# useradd -m bernard

On vérifie que tout a bien fonctionné : [root@linux /etc/skel]# su - bernard [bernard@linux ~]$ ls Bienvenue Mes Documents Ma Musique Mes Vidéos [bernard@linux ~]# cat Bienvenue Bienvenue sur votre système GNU/Linux :)

29

Chapter 9. Gestion des permissions Table of Contents 9.1. Gestion des permissions ..................................................................................................29

9.1. Gestion des permissions Q: Quelles sont les permissions appliquées au fichier /etc/passwd ? Cela représente-il un risque de sécurité ? A: [user@linux ~]$ ls -l /etc/passwd -rw-r--r-- 1 root root 2676 2007-11-02 19:12 /etc/passwd

Permissions 644. N'importe qui peut alors connaitre la liste des utilisateurs sur le système. C'est un risque en soit. Q: Quelles sont les permissions appliquées au fichier /etc/shadow ? Cela représente-il un risque de sécurité ? A: [user@linux ~]$ ls -l /etc/shadow -rw-r----- 1 root shadow 2303 2007-10-27 15:18 /etc/shadow

Permissions 640. Seul le root et les utilisateurs faisant parti du groupe shadow peuvent consulter le fichier de mot de passes. Cela ne représente donc pas de risque de sécurité. Q: Créer un fichier toto et un dossier foo. Quelles sont les permissions définies par défaut ? A: [Mandriva@linux ~]$ touch toto; mkdir foo

Par défaut le fichier toto aura les permissions : 644 ou rw-r--r-Par défaut le dossier foo aura les permissions : 755 ou rwx-r-xr-x Q:

Gestion des permissions

Afficher les permissions du fichier et du dossier précédemment créé. A: [user@linux ~]$ ls -l drwxr-xr-x 2 luser group 578 Nov 14 16:12 foo/ -rw-r--r-- 1 luser group 306 Oct 26 16:11 toto

Q: Changer le umask à 0077 A: [user@linux ~]$ umask 0077

Q: Créer un fichier toto2 et un dossier foo2, puis afficher leurs permissions. Remettre le umask à 0022. A: [user@linux ~]$ touch toto2 ; mkdir foo2

[user@linux ~]$ ls -l

drwx 2 user group 578 Nov 14 16:14 foo2/ -rw 1 user group 306 Nov 14 16:14 toto2 [user@linux ~]$ umask 0022

Q: Changer le propriétaire et le groupe du fichier toto en root A:

30

Gestion des permissions

[root@linux ~]# chown root:root toto

Q: Appliquer les permissions rwx pour l'utilisateur, rx pour le groupe, r pour les autres, en utilisant la notation avec les lettres, puis avec les chiffres sur le fichier toto. A: [root@linux ~]# chmod u=rwx,g=rx,o=r toto [root@linux ~]# chmod 754 toto

Q: Essayer d'arrêter la machine en tant qu'utilisateur supinfo en utilisant la commande halt puis / sbin/halt. Pourquoi la commande halt ne fonctionne pas sans rentrer son chemin complet ? A: [user@linux ~]$ halt -bash: halt: command not found [user@linux ~]$ /sbin/halt halt: Operation not permitted

Dans le premier cas, le binaire halt n'est pas dans notre variable $PATH. dans les deuxième cas, seul root peut arrêter le système. Q: Faites en sorte qu'un utilisateur normal puisse arrêter la machine en utilisant le suid sur le fichier exécutable /sbin/halt. A: [root@linux ~]# chmod u+s /sbin/halt

31

32

Chapter 10. Gestion des disques Table of Contents 10.1. Gestion des disques .......................................................................................................32 10.2. Cas pratique ................................................................................................................35

10.1. Gestion des disques Q: Quel sera le nom du périphérique correspondant au second disque d'un contrôleur SCSI ? A: /dev/sdb Q: Quel sera le nom du périphérique correspondant au premier disque du premier contrôleur IDE ? A: /dev/hda Q: Créer une nouvelle partition Linux de type ext3 de 100Mo (avec fdisk) sur le disque dur esclave du premier contrôleur SCSI . A: Utilisation de la commande fdisk de manière interactive :

[root@linux ~]# fdisk /dev/sdb Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-2434, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-2434, default 2434): +100M Command (m for help): t Selected partition 1 Hex code (type L to list codes): 83 Changed system type of partition 1 to 82 (Linux swap) Command (m for help): w Writing table partition...

Rappel des principales commandes de fdisk : • n : permet de créer une nouvelle partition • p : permet de choisir cette partition comme partition primaire

Gestion des disques

• t : permet de changer le type de la partition • w : permet d'enregistrer les modifications Q: Mettre en place un système de fichiers ext3 sur la nouvelle partition. A: [root@linux ~]# mkfs.ext3 /dev/sdb1

Q: Monter la partition dans le répertoire /mnt/externe. Attribuer le répertoire à l’utilisateur supinfo et au groupe root. Faire en sorte que l'utilisateur supinfo ait les droits de lecture/écriture/exécution, et que tous les autres aient les droits de lecture/exécution seulement. A: [root@linux ~]# mkdir /mnt/externe [root@linux ~]# mount /dev/sdb1 /mnt/externe [root@linux ~]# chmod 766 /mnt/externe

Q: Démonter la partition puis remplir /etc/fstab afin de monter la partition automatiquement au démarrage. A: [root@linux ~]# umount /dev/sdb1 [root@linux ~]# tail -1 /etc/fstab /dev/sdb1 /mnt/externe/ ext3 defaults 0 0

Q:

33

Gestion des disques

Redémarrer et vérifier que le montage fonctionne. A: [root@linux ~]# init 6 [root@linux ~]# mount /dev/hda1 on / type ext3 (rw,notail) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) usbfs on /proc/bus/usb type usbfs (rw) /dev/sdb1 on /mnt/externe type ext3 (rw)

ou bien

[root@linux ~]# mount -a [root@linux ~]# mount /dev/hda1 on / type ext3 (rw,notail) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) usbfs on /proc/bus/usb type usbfs (rw) /dev/sdb1 on /mnt/externe type ext3 (rw)

Q: Afficher la taille de la partition montée avec df puis avec du. A: Avec df, la taille de toutes les partitions du système est affichée instantanément. L'option -h permet d'obtenir la taille en octet.

[root@linux ~]# df -h Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur /dev/hda1 9,4G 3,7G 5,7G 40% / /dev/sdb1 100M 1M 99M 1% /mnt/sdb1

Avec du, on affiche la taille des fichiers ou dossiers passés en paramètres. du analyse chaque fichier afin d'en obtenir la taille, l'opération prend donc plus de temps.

34

Gestion des disques

[root@linux ~]# du -sh /mnt/externe 1M /mnt/externe

Note À la différence de df qui travaille sur les partitions, du travaille sur les fichiers et les répertoires.

10.2. Cas pratique L'entreprise GnuCorp possède un serveur web. L'administrateur a été assez distrait, il n'a pas créé de partition pour /var. Maintenant que son système est en production, les journaux commencent à représenter une part significative de l'espace disque utilisé. Pour y remédier il souhaite mettre le dossier /var/log sur un autre disque sans changer la configuration des services déjà présent sur le système. Etant occupé, l'administrateur vous confie l'élaboration de la procédure et vous fourni une machine virtuelle afin d'effectuer des simulations. Q: Démontez le disque SCSI que vous venez de préparer. Vous l'utiliserez comme disque de stockage pour / var/log. A:

[root@linux ~]# umount /mnt/externe

Q: Créez le système de fichier sur le disque /dev/sdb1 A:

[root@linux ~]# mkfs.ext3 /dev/sdb1

Q: Montez la partition /dev/sdb1 dans /mnt/externe et copiez le répertoire /var/log dans le répertoire

35

Gestion des disques

/mnt/externe (donc sur le disque).

Note Afin de préserver les permissions, liens symboliques et appartenances, on va employer l'option --preserve=all

A:

[root@localhost ~]# mount /dev/sdb1 /mnt/externe [root@localhost ~]# cp --preserve=all /var/log/ /mnt/externe

Q: Démontez le point de montage /mnt/externe. Ajoutez une entrée dans /etc/fstab afin de monter la partition /dev/sdb1 automatiquement sur /var/log. A:

[root@localhost ~]# umount /mnt/externe [root@localhost ~]# tail -1 /etc/fstab /dev/sdb1 /var/log/ ext3 defaults 0 0

Q: Redémarrer, et vérifier le fonctionnement de votre configuration. A:

[root@localhost ~]# reboot [root@localhost ~]# df -h

36

Gestion des disques

Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur /dev/hda1 9,4G 3,7G 5,7G 40% / /dev/sdb1 100M 10M 99M 10% /var/log

37

38

Chapter 11. Quotas Table of Contents 11.1. Configuration des quotas ................................................................................................38

11.1. Configuration des quotas Configuration et gestion des quotas Pré-requis : Ajouter et formater une nouvelle partition, ajouter cette partition au fichier fstab. Elle sera montée automatiquement dans le répertoire /mnt/save. Q: Quelle est la signification de limite dur (hard limit) , limite douce (soft limite) et temps de grâce (grace limit) A: hard limit : limite que l'utilisateur ne peut pas dépasser. Si la limite est atteinte, l'utilisateur n'aura plus le droit d'écrire. soft limit : Quand cette limite est atteinte, il recevra un message de notification. grace time: La période avant que la soft limite devienne une hard limit.

1.

Installez le paquet "quota" sur votre serveur

2.

Préparez la partition /dev/sdb1 à utiliser des quotas via le fichier /etc/fstab et rebootez le server.

3.

Activez les quotas sur votre serveur.

4.

Configurez la limite quota nommée "blocks" pour l'utilisateur supinfo sur la seconde partition montée dans /mnt/save: 10mo pour la soft limit, 15 mo pour la hard limit. N'oubliez pas de changer d'utilisateur: su - supinfo

5.

testez : créez un fichier de 10 mo avec la commande 'dd' puis créez un autre fichier de 10 mo , Regardez les résultats de la commande

Q: Aprés ces tests, pouvez vous éditer un fichier et sauvegarder dans la partition montée dans /mnt/save ? A:

Quotas

Vous ne pouvez sauver les modifications.

Example 11.1. Correction

1.

Installez le paquet "quota" sur votre serveur

[root@mandriva]#

2.

apt-get install quota

Activer les quotas sur la partition /dev/sdb1 dans le fichier /etc/fstab et rebootez le server. Editez votre fichier /etc/fstab.

[root@mandriva]# vim /etc/fstab

Ajoutez les options usrquota et grpquota sur le disque /dev/sdb1.

/dev/sdb1 /mnt/save ext3 defaults,usrquota,grpquota 0 0

Puis rebootez votre server :

[root@mandriva]# reboot

3.

Activez les quotas sur votre serveur Pour créer tous les fichiers nécessaires (aquota.group et aquota.user) entrez cette commande (-a pour tester tous les systèmes de fichier montés, -u pour les utilisateurs, -g pour les groupes et -v pour le mode verbeux): [root@mandriva save]# quotacheck -avug quotacheck: Scanning /dev/sdb1 [/mnt/save] done quotacheck: Cannot stat old group quota file: No such file or directory quotacheck: Cannot stat old group quota file: No such file or directory quotacheck: Checked 3 directories and 3 files quotacheck: Old file not found.

Activez les quotas (-a pour l'activer sur tous les systèmes de fichiers)

39

Quotas

40

[root@mandriva save]# quotaon -av /dev/sdb1 [/mnt/save]: group quotas turned on /dev/sdb1 [/mnt/save]: user quotas turned on

4.

Configurez la limite quota nommée "blocks" pour l'utilisateur supinfo sur la seconde partition montée dans /mnt/save : 10mo pour la soft limit, 15 mo pour la hard limit. Lancez la commande pour éditer les quotas de l'utilisateur supinfo:

[root@mandriva]# edquota -u supinfo

Editez le fichier comme tel:

Disk quotas for user supinfo (uid 500): Filesystem blocks soft hard inodes soft hard /dev/sdb1 0 10000 15000 0 0 0

5.

Testez : créez un fichier de 10 mo avec la commande 'dd' puis créez un autre fichier de 10 mo , Regardez les résultats de la commande N'oubliez pas de changer d'utilisateur: su - supinfo Créez un fichier de 10mo avec la commande dd (1024 octets * 100). Cette commande est très utile pour ce genre de tests:

[supinfo@mandriva ~]$ dd if=/dev/zero of=/mnt/save/testsoftfile bs=1024 co sdb1: warning, user block quota exceeded. 10000+0 records in 10000+0 records out 10240000 bytes (10 MB) copied, 0,191424 s, 53,5 MB/s

Créez un autre fichier de 10 mo. [supinfo@mandriva ~]$ dd if=/dev/zero of=/mnt/save/testhardtfile bs=1024 count=150 dd: writing `/mnt/save/testhardfile': Disk quota exceeded 4939+0 records in 4938+0 records out 5056512 bytes (5,1 MB) copied, 0,0829262 s, 61,0 MB/s

La première création de fichier vous averti que vous excédez la soft limit. La seconde création de fichier est limitée en taille par la hard limit définie (5mo au lieu de 10mo car l'ensemble des fichiers correspond à 15mo soit la hard limit).

41

Chapter 12. Installation Table of Contents 12.1. Préparation à l'installation ..............................................................................................41 12.2. Configuration du bootloader ...........................................................................................41

12.1. Préparation à l'installation Q: Quelles sont les partitions qu'il faut obligatoirement créer pour installer GNU/Linux ? A: Il faut au minimum deux partitions : • swap : correspond à un espace mémoire virtuel pour étendre la mémoire vive. De manière générale, pour connaitre la taille de la partition swap à créer, il faut doubler la quantité de RAM installée. Cependant, ceci est de moins en moins vrai au vu de la démocratisation de la mémoire RAM. Il faut choisir la taille en fonction de la quantité de mémoire vive nécessaire. • / : correspond au point de montage qui accueille les fichiers du système GNU/Linux. Il est tout à fait possible de subdiviser la partition racine en créant d'autre partition pour les répertoires composant la racine. Exemple : On dédie une partition pour le repertoire /home qui contient l'ensemble des répertoires personnels des utilisateurs. Ainsi, lors d'une réinstallation, en ayant les fichiers utilisateurs sur une autre partition, il n'est pas nécessaire de sauvegarder puis restaurer les données.

12.2. Configuration du bootloader Note LILO est un bootloader pour plateforme de type Intel x86. Il offre beaucoup moins de fonctionnalités que GRUB car il réside entièrement en MBR. Cela signifie qu'il n'est pas lié aux partitions du système, mais aussi qu'il faut réinstaller LILO dans le MBR à chaque modification de son fichier de configuration (/etc/lilo.conf).

Q: Configurer LILO. Ré-installez LILO sur le MBR et redémarrez le système pour observer les changements. A: boot=/dev/sda # Chemin du disque sur lequel installer LILO, # attention à ne pas mettre une partition.

Installation

prompt timeout=50

# # # #

Demande à l'utilisateur de choisir sur quoi il veut démarrer Au bout de combien de temps le choix par défaut va-t-il être choisi.

image=/boot/vmlinuz-2.6.23.1 label="Noyau Maison 2.6.23.1" initrd= /boot/initrd-2.6.23.1 read-only

Il convient ensuite d'installer la nouvelle configuration de LILO sur le MBR.

Note La principale différence entre Lilo et GRUB c'est que GRUB n'a pas besoin d'être réinstallé sur le MBR après chaque changement de configuration. L'inconvénient majeur de GRUB est qu'il dépend de la partition sur laquelle se trouve son fichier de configuration. En cas de suppression de cette partition, GRUB se trouve dans l'incapacité de fonctionner.

Q: Maintenant configurez GRUB. Créer le fichier configuration de GRUB (/boot/grub/menu.lst) si celui-ci n'existe pas. A: Il suffit d'ajouter le bloc de configuration suivant dans le fichier de configuration de GRUB, à savoir / boot/grub/menu.lst. # Fichier de configuration de Grub timeout 10 # Démarre le noyau par défaut au bout de 10 secondes default 0 # Noyau par défaut title root kernel initrd boot

Mon noyau fait main (Linux 2.6.23.1) (hd0,0) /boot/vmlinuz-2.6.23.1 /boot/initrd-2.6.23.1

title root kernel initrd boot

Noyau officiel (hd0,0) /boot/vmlinuz /boot/initrd-2.6.23.1

Q: Installez GRUB sur le MBR et relancez le système pour constater les changements.

42

Installation

A: Deux facons d'installer GRUB : Via grub-install : root@localhost ~ # grub-install /dev/sda --no-floppy

Avec la console grub : root@localhost ~ # grub grub> setup (hd0,0) grub> root (hd0) grub> quit root@localhost ~ #

43

44

Chapter 13. Installation de programmes Table of Contents 13.1. L'approche Red Hat ......................................................................................................44 13.1.1. Installation de paquetages avec les rpm ..................................................................44 13.1.2. Manipulation des packages RPM ...........................................................................44 13.2. L'approche Debian ........................................................................................................45 13.2.1. Installation de paquetages avec dpkg. ....................................................................45 13.2.2. Installation de paquetages avec apt-get. .................................................................45 13.2.3. Manipulation des packages debian .........................................................................46 13.3. Installation universelle et personnalisée. ............................................................................46 13.3.1. Installation depuis les sources. ..............................................................................46 13.4. Les librairies dynamiques du système ...............................................................................47

13.1. L'approche Red Hat 13.1.1. Installation de paquetages avec les rpm Q: Recherchez le paquet rpm de ProFtpd correspondant à votre distribution sur rpmfind.net, et téléchargez-le. A: [root@linux ~]# wget

Q: Installer le paquet A: [root@linux ~]# rpm -ivh proftpd.rpm

Q: Démarrez le serveur. A: [root@linux ~]# /etc/init.d/proftpd start

13.1.2. Manipulation des packages RPM

Installation de programmes

45

Retrouvez à quel package appartient la commande /bin/echo A: [root@linux ~]# rpm -qf /bin/echo

Q: Récupérez la liste de tous les paquets installés dont le nom contient la chaîne de caractère "gnome". Faîtes en sorte que cette liste soit automatiquement inscrite dans un fichier liste.txt . A: [root@linux ~]# rpm -qa | grep gnome > liste.txt

13.2. L'approche Debian 13.2.1. Installation de paquetages avec dpkg. Q: Récupérer depuis le lien ftp qui suit une version de lynx™ compatible avec votre architecture : ftp://ftp.proxad.net/.mirrors1/ftp.debian.org/pool/main/l/lynx/1 A: [root@linux ~]# ftp ftp://ftp.proxad.net/.mirrors1/ftp.debian.org/pool/main/l/lynx/ ftp> get lynx-**********.deb

Q: Installer le paquet. A: [root@linux ~]# dpkg -i lynx-*******.deb

Q: Tester cette nouvelle application. Pour retrouver la commande qui correspond au package que vous venez d'installer, aidez vous de dpkg (en listant l'ensemble des fichiers installés). A: [root@linux ~]# dpkg -L lynx | grep bin [root@linux ~]# lynx www.google.fr

13.2.2. Installation de paquetages avec apt-get. 1

???

Installation de programmes

Q: Modifiez la liste des dépôts afin de ne plus être dépendant du cd d'installation de votre distribution. Regardez dans le fichier /etc/apt/source.list. A: [root@linux ~]# vi /etc/apt/source.list Commenter la ou les lignes commençant par deb cdrom:/// puis sauvegarder. Q: Il faut maintenant mettre à jour la liste des paquets disponibles à l'installation. Effectuez cette action. A: [root@linux ~]# apt-get update

Q: Vous pouvez maintenant partir à la recherche du paquet contenant le serveur proftpd™. Généralement, le nom du paquet est celui du logiciel. Recherchez donc dans le cache le mot clé "proftpd". A: [root@linux ~]# apt-cache search proftpd

Q: Maintenant que vous connaissez exactement le nom du paquet, vous pouvez procéder à son installation. A: [root@linux ~]# apt-get install proftpd

13.2.3. Manipulation des packages debian Q: Lister tous les fichiers appartenant au package openssh-client. A: [root@linux ~]# dpkg -L openssh-client

13.3. Installation universelle et personnalisée. 13.3.1. Installation depuis les sources. Scénario : L'administrateur souhaite installer depuis les sources le client FTP ncftp. Les étapes seront effectuées autant que possibles avec l'utilisateur non priviligié supinfo.

46

Installation de programmes

47

Q: Grâce à wget, télécharger le fichier ftp://ftp.ncftp.com/ncftp/ncftp-3.2.2-src.tar.bz22.

suivant

:

A: [supinfo@linux ~]$ wget ftp://ftp.ncftp.com/ncftp/ncftp-3.2.2-src.tar.bz2

Q: Décompresser l'archive et rentrer dans le répertoire décompressé. A: [supinfo@linux ~]$ tar -xvjf ncftp-3.2.0-src.tar.bz2 [supinfo@linux ~]$ cd ncftp-3.2.0

Q: Configurer l'application pour qu'elle s'installe dans /usr/local/ puis lancer la compilation. A: [supinfo@linux ncftp-3.2.0]$ ./configure --prefix=/usr && make

Q: Passer en root et lancer l'installation de l'application. A: [supinfo@linux ~]$ su [root@linux ~]# make install

Q: En tant qu'utilisateur supinfo, lancer l'application. A: [root@linux ~]# exit [supinfo@linux ~]$ ncftp

13.4. Les librairies dynamiques du système Q: Créez le répertoire /home/supinfo/lib puis allez dans /lib et déplacez le fichier libkrb5.so.3* vers /home/supinfo/lib. Lancez ssh --help, que se passe-t-il ? Remédiez au problème. (indice: aidez vous de la commande ldd) 2

ftp://ftp.ncftp.com/ncftp/ncftp-3.2.0-src.tar.bz2

Installation de programmes

A: [root@linux ~]# echo "/home/supinfo/lib" >> /etc/ld.so.conf [root@linux ~]# ldconfig

48

49

Chapter 14. Architecture et materiel Aucun tp pour ce chapitre.

50

Chapter 15. Serveur X Table of Contents 15.1. Configuration du serveur X ............................................................................................50

15.1. Configuration du serveur X Q: Connectez-vous en tant que root. Si votre session graphique est lancée, arrêtez la en exécutant /etc/init.d/xdm stop. A: Le Display Manager est le programme qui affiche l'invite de connexion de manière graphique. Ce programme est chargé de lancer une session (environnement + applications) graphique après que l'utilisateur se soit authentifié. Un Display Manager tourne en arrière plan : c'est un DAEMON. XDM (X Display Manager) est le display manager par défaut de l'environnement XFree86/X.org. C'est un Display Manager extrêmement simple qui est peu gourmant en mémoire. Pour l'arrêter, on utilise le script de contrôle du DAEMON en lui passant l'argument stop. Couper XDM provoque l'arrêt des sessions graphiques lancées par lui précédemment. root@localhost ~ # /etc/init.d/xdm stop

Q: Faites une copie du fichier de configuration du serveur graphique dans votre dossier personnel. A: Le fichier de configuration du serveur graphique se trouve dans le répertoire /etc/X11 et dépend du serveur utilisé : • Pour XFree86 : XF86Config et XF86Config-4

• Pour X.org : xorg.conf Sur la distribution Debian Sarge, c'est XFree86 qui est installé. root@localhost ~ # mkdir backup_xfree root@localhost ~ # cp /etc/X11/XF86Config* backup_xfree/

Q: Vérifiez que le chemin /usr/X11R6/bin est dans votre variable $PATH, sinon rajoutez le. A: root@localhost ~ # echo $PATH

Serveur X

/usr/local/bin:usr/bin:/sbin/bin root@localhost ~ # export PATH=/usr/X11/bin:$PATH root@localhost ~ # echo $PATH /usr/X11/bin:/usr/local/bin:/usr/bin:/sbin:/bin

Q: Configurez le serveur X grâce à l’utilitaire xf86config qui fonctionne en mode texte. Aidez vous de la commande lspci pour connaître votre matériel afin pouvoir répondre aux questions. A: lspci permet d'afficher la liste du matériel branché sur les ports PCI de l'ordinateur. Cela comprends les ports PCI « classiques » mais aussi les ports AGP ou encore PCI Express. Cette commande est donc très pratique pour obtenir des informations précises sur le matériel (marque, révision, chipset, etc.). root@localhost ~ # lspci … 0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 Lf [FireGL 9000] (rev 02) … root@localhost ~ # xf86config

Q: En tant qu'utilisateur supinfo, lancez le serveur X grâce à la commande startx et vérifiez son fonctionnement. A: La commande startx permet de lancer le serveur X11 sans passer par un Display Manager. Le serveur X va se lancer puis exécuter le contenu du fichier Bash ~/.xinitrc ou bien /etc/X11/xinit/xinitrc si le .xinitrc de l'utilisateur n'est pas trouvé. supinfo@localhost ~ $ startx

Q: Coupez votre session graphique grâce à a combinaison de touche : Ctrl+Alt+Retour arrière. Essayez ensuite la configuration avec l’utilitaire en mode graphique, xf86cfg. A: root@localhost ~ # xf86cfg

Q: Vérifiez de nouveau que tout fonctionne bien. En cas de problème, pour récupérer une session qui fonctionne, vous pouvez recopier la configuration depuis votre dossier personnel vers le dossier de configuration du système. En tant qu'utilisateur supinfo, éditez le fichier ~/.xinitrc pour pouvoir lancer le window manager twm ainsi que les applications suivantes : xterm, xeyes et xclock. A: Le fichier ~/.xinitrc va être exécuté lors du lancement via startx. Il suffit donc de modifier son contenu comme suit : contenu de ~/.xinitrc : xterm & # le & permet d'envoyer en arrière plan et

51

Serveur X

donc de pouvoir lancer la prochaine commande tout de suite. xeyes & xclock & exec twm

Il reste ensuite à lancer startx pour constater le résultat. supinfo@localhost ~ $ startx

Q: Quittez la session graphique puis effacez votre .xinitrc A: Pour quitter la session graphique : Ctrl+Alt+BackSpace supinfo@localhost ~ $ rm .xinitrc

Q: Grâce à apt-get, installez le gestionnaire de session GDM. Lors de l'écran de configuration, choisir GDM comme gestionnaire de session par défaut. A: GDM est le Display Manager du projet GNOME. Il est beaucoup plus complet que XDM. root@localhost ~ # apt-get install gdm

Q: Modifier dans le fichier de configuration de GDM,/etc/gdm/gdm.conf, la ligne suivante : #Greeter=/usr/bin/gdmlogin #par Greeter=/usr/bin/gdmgreeter

A: Le changement de cette ligne dans le fichier de configuration de GDM permet essentiellement d'obtenir un écran de connexion plus joli. • Si ce n'est pas déjà le cas, en root, relancez le gestionnaire de session GDM grâce à la commande suivante : /etc/init.d/gdm restart.

root@localhost ~ # /etc/init.d/gdm restart

52