Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Cahier de tps
Chapter 1. Introduction
Aucun tp pour ce chapitre.
2
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
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 » :
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 util-
isateur é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.
• 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.
A:
Nous utilisons la commande touch pour créer des fichiers et mkdir pour créer des répertoires.
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
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 4
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 argu-
ment. grep s'utilise de la façon suivante : grep Quoi Où.
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<TAB>
[root@linux ~]# rm un\ super\ fichier
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 :
Table of Contents
3.1. Pipes et redirections ......................................................................................................... 6
3.2. Flux de textes et filtres ..................................................................................................... 9
3.3. L'éditeur VI ...................................................................................................................13
A:
Les trois flux standards sont :
• « > » 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 suf-
fit 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.
Q:
Listez en affichage complet le contenu du répertoire /etc dans le fichier sortie_etc.
A:
[root@linux ~]#
ls -l /etc > sortie_etc
L'affichage complet (option -l) de ls permet d'afficher les permissions, la taille ainsi que les dates de
Editeurs et flux de texte 7
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
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
« \ ».
Editeurs et flux de texte 8
[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.
[root@linux ~]#
Editeurs et flux de texte 9
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 redirec-
tions, 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.
[root@linux ~]#
tr [:lower:] [:upper:] < toto > tata &&
cat tata
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 :
• 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 auto-
matique 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 ~]#
Editeurs et flux de texte 11
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 ob-
servez 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.
[root@linux ~]#
tail -f /var/log/auth.log
[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 :
Q:
Le fichier /etc/passwd contient diverses informations relatives aux comptes des utilisateurs. Com-
ment 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:
Editeurs et flux de texte 12
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.
Editeurs et flux de texte 13
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 « && » :
Le OU logique « || » :
Le séparateur d'instructions « ; » :
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:
Editeurs et flux de texte 14
[supinfo@linux ~]$
vimtutor
15
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.
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 16
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:
Q:
Supprimer toutes les lignes vides d'un fichier.
A:
Q:
Afficher que les lignes finissant par /bin/bash dans /etc/passwd
A:
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'
17
Table of Contents
5.1. Gestion des processus .....................................................................................................17
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 18
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
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 21
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:
Recherche 22
[root@linux ~]#
updatedb
[user@linux ~]$
locate monfichier.txt
23
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
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 24
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
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.
Gestion des utilisateurs et des groupes 25
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 :
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 :
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
Gestion des utilisateurs et des groupes 26
Password:
Authentication failed.
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é).
Q:
Modifiez le fichier /etc/passwd et remplacez le shell de lpic par /bin/false.
A:
[root@linux ~]# vim /etc/passwd
:s/bash/false
Q:
Logguez-vous en tant que lpic. Cela fonctionne-t-il ? Pourquoi ?
Gestion des utilisateurs et des groupes 27
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.
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.
Créez ensuite un compte bernard avec génération automatique du dossier personnel et vérifiez la création
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.
Table of Contents
9.1. Gestion des permissions ..................................................................................................29
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
Q:
Gestion des permissions 30
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.
A:
[user@linux ~]$
touch toto2 ; mkdir foo2
[user@linux ~]$
ls -l
Q:
Changer le propriétaire et le groupe du fichier toto en root
A:
Gestion des permissions 31
[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 nota-
tion 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
32
Table of Contents
10.1. Gestion des disques .......................................................................................................32
10.2. Cas pratique ................................................................................................................35
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...
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:
Gestion des disques 34
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.
Gestion des disques 35
[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.
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
Gestion des disques 36
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
Gestion des disques 37
Table of Contents
11.1. Configuration des quotas ................................................................................................38
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.
2. Préparez la partition /dev/sdb1 à utiliser des quotas via le fichier /etc/fstab et rebootez le server.
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.
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 39
2. Activer les quotas sur la partition /dev/sdb1 dans le fichier /etc/fstab et rebootez le server.
[root@mandriva]# reboot
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):
Activez les quotas (-a pour l'activer sur tous les systèmes de fichiers)
Quotas 40
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.
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
Créez un fichier de 10mo avec la commande dd (1024 octets * 100). Cette commande est très utile pour ce
genre de tests:
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
Table of Contents
12.1. Préparation à l'installation ..............................................................................................41
12.2. Configuration du bootloader ...........................................................................................41
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.
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 util-
isateurs sur une autre partition, il n'est pas nécessaire de sauvegarder puis restaurer les données.
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 change-
ments.
A:
boot=/dev/sda # Chemin du disque sur lequel installer LILO,
# attention à ne pas mettre une partition.
Installation 42
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.
Q:
Installez GRUB sur le MBR et relancez le système pour constater les changements.
Installation 43
A:
Deux facons d'installer GRUB :
Via grub-install :
root@localhost ~ # grub
grub> setup (hd0,0)
grub> root (hd0)
grub> quit
root@localhost ~ #
44
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
A:
Q:
Installer le paquet
A:
Q:
Démarrez le serveur.
A:
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
ftp://ftp.proxad.net/.mirrors1/ftp.debian.org/pool/main/l/lynx/1
A:
Q:
Installer le paquet.
A:
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:
Q:
Modifiez la liste des dépôts afin de ne plus être dépendant du cd d'installation de votre distribution. Re-
gardez dans le fichier /etc/apt/source.list.
A:
Q:
Il faut maintenant mettre à jour la liste des paquets disponibles à l'installation. Effectuez cette action.
A:
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:
Q:
Maintenant que vous connaissez exactement le nom du paquet, vous pouvez procéder à son installation.
A:
A:
[root@linux ~]# dpkg -L openssh-client
Q:
Grâce à wget, télécharger le fichier suivant :
ftp://ftp.ncftp.com/ncftp/ncftp-3.2.2-src.tar.bz22.
A:
Q:
Décompresser l'archive et rentrer dans le répertoire décompressé.
A:
Q:
Configurer l'application pour qu'elle s'installe dans /usr/local/ puis lancer la compilation.
A:
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:
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 48
A:
[root@linux ~]# echo "/home/supinfo/lib" >> /etc/ld.so.conf
[root@linux ~]# ldconfig
49
Table of Contents
15.1. Configuration du serveur X ............................................................................................50
A:
Le Display Manager est le programme qui affiche l'invite de connexion de manière graphique. Ce pro-
gramme 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.
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é :
Q:
Vérifiez que le chemin /usr/X11R6/bin est dans votre variable $PATH, sinon rajoutez le.
A:
root@localhost ~ # echo $PATH
Serveur X 51
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.).
Q:
En tant qu'utilisateur supinfo, lancez le serveur X grâce à la commande startx et vérifiez son fonction-
nement.
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.
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 fonc-
tionne, vous pouvez recopier la configuration depuis votre dossier personnel vers le dossier de configura-
tion du système.
En tant qu'utilisateur supinfo, éditez le fichier ~/.xinitrc pour pouvoir lancer le window manager twm ain-
si 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 :
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.
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.