Cherchez sur le web, par exemple sur wikipedia (http://fr.wikipedia.org/wiki/Liste_d'extensions_de_fichiers), des informations sur les types de fichiers suivants. Prenez le temps de bien comprendre à quoi sert chacun de ces types de fichiers avant de répondre.
Dans les pages suivantes nous allons voir la commande sudo
Sur un système UNIX l'accès à divers fichiers et logiciels nécessaires à l'administration système est limité.
Si n'importe quel utilisateur pouvait y accéder, il pourrait
- détruire délibérément ou par erreur des données d'autres utilisateurs
- perturber délibérément ou par erreur le fonctionnement de la machine
- accéder à des informations confidentielles
- etc.
Pour ces raisons, certaines taches d'administration sont réservées à un utilisateur particulier qui s'appelle "root".
Ce contrôle se fait généralement en limitant les droits d'accès aux fichiers et aux répertoires.
Parmi les opérations suivantes lesquelles sont réservées à l'utilisateur "root"?
Essayez de faire ces différentes opérations en tant qu'utilisateur simple (pas root)
(par contre n'essayez surtout pas de les faire en tant que root!)
Traditionnellement, les administrateurs système travaillaient en tant que root. Pour ça, il suffit de s'identifier en tant que root lorsqu'on se connecte au système (il faut, bien sur, connaître le mot de passe de root, qui est généralement gardé avec soin). On peut aussi devenir root en tapant la commande "su -" et en rentrant le mot de passe.
Malheureusement, lorsqu'on travaille en tant que root on peut très facilement commettre de erreurs qui peuvent avoir des conséquences graves (par exemple: suppression de fichiers vitaux pour le système).
Pour éviter ces problèmes, on conseille souvent de ne pas travailler en tant que root, et d'utiliser la commande "sudo" lorsqu'on a besoin de faire une opération en tant que root. C'est ce que nous allons faire dans ces TP. Dans ces TP, vous n'aurez pas le mot de passe root.
Sur vos machines le compte "etudiant" a été configuré pour pouvoir utiliser sudo. Sudo vous demandera une fois un mot de passe (il s'agit de celui de "etudiant" et pas celui de "root"). Sudo se souviendra ensuite pendant quelque temps (dizaines de minutes) que vous avez rentré le bon mot de passe et ne vous le redemandera pas.
Exemple:
etudiant@machinetp:~$ cat /etc/shadow
cat: /etc/shadow: Permission non accordée
etudiant@machinetp:~$ sudo cat /etc/shadow
[sudo] password for etudiant: (saisie du mot de passe)
root:$1$sdsQ//Ib$iVsdDDUtfkBFNB1d9rJW0:13521:0:99999:7:::
daemon:*:13521:0:99999:7:::
bin:*:13521:0:99999:7:::
...
etudiant@machinetp:~$
Quelle commande faut-il taper pour editer le fichier /etc/ssh/ssh_config avec l'editeur "gedit" en tant que root?
On veut se connecter sur le compte que votre voisin vient de vous créer sur sa machine. Pour ca, on va utiliser la commande ssh. Tapez "man ssh" pour savoir comment préciser le nom de l'utilisateur.
Page man (simplifiée):
ssh [...] [user@]hostname [...]
Rappel: dans une page man, les [...] indiquent des arguments optionnels.
Pour le "hostname" (en francais: nom de la machine) utilisez son adresse ip.
Connectez vous sur la machine de votre voisin.
Une fois connecté, tapez la commande "w" pour obtenir des informations sur l'activité de la machine et savoir qui est connecté dessus.
Vous devriez obtenir quelque-chose de cette forme:
01:08:53 up 3:13, 2 users, load average: 0.81, 0.10, 0.10
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
etudiant tty1 - 9:56pm 24:04 0.28s 0.28s -bash
toto pts/1 192.168.0.10 10:31pm 0.00s 0.32s 0.10s sshd
Utilisez la commande "man w" pour comprendre les différents champs. Les trois champs "load average" en haut, à droite, sont particulièrement intéressants. Ils indiquent la charge (activité) de la machine. Une machine sur laquelle un seul processus est actif en permanence a une charge de 1. Si deux processus tournent à plein régime, la charge est de 2...
Tapez la commande "ps -ef" pour obtenir la liste des processus. Parmi les programmes suivants, lesquels ont au moins un processus correspondant à votre nom d'utilisateur?
Comme on l'a vu en cours, la commande scp permet de copier des fichiers d'une machine à l'autre.
Prenez le temps d'apprendre cette syntaxe. Elle revient souvent (y compris au contrôle).
La syntaxe est:
scp nom-util@nom-machine-src:chemin-src nom-util@nom-machine-dest:chemin-dest
Au final, ca peut devenir très simple.
Voici quelques exemples:
scp ordi2.toto.org:a.txt .
scp 192.168.1.3:a.txt .
scp b.txt ordi2.toto.org:
scp /etc/passwd ordi2.toto.org:/tmp
1. avec gedit, créez un fichier appelé essai.txt sur votre machine
2. Copiez ce fichier vers le répertoire personnel du compte que votre voisin vous a crée sur sa machine.
3. En supposant que l'adresse IP de votre voisin était 192.168.123.123 et que votre compte sur sa machine est "dupond", quelle commande parmi les suivantes fallait-il taper?
Dans cet partie du TP, nous allons découvrir le système de gestion de paquets de Debian, et, entre-autres les commandes "apt" et "dpkg". Nous verrons comment installer et desinstaller des paquets en gérant les dépendances.
Voici quelques transparents du cours à ce sujet:
Pensez à regarder votre cours (disponible aussi ici en PDF) pour revoir l'ensemble du fonctionnement du système de gestion de paquets.
Vous trouverez aussi de nombreuses sources de documentation sur internet. Prenez un peu de temps pour trouver celle qui vous convient le mieux.
Par exemple:
http://fr.wikipedia.org/wiki/Advanced_Packaging_Tool
Attention: la plupart des informations sur le web traitent des commandes "apt-get" et "apt-cache". Dans ces cours nous utilisons la commande "apt", qui est plus récente.
apt search toto
recherche tous les paquets dont la description contient le terme "toto". Cette commande cherche dans tous les paquets qui existent (pas seulement ceux qui sont installés).
apt show nompaquet
affiche des informations sur nompaquet
apt list --installed
liste de tous les paquets installés sur votre système
dpkg -L nompaquet (L majuscule)
liste de tous les fichiers installés sur votre système appartenant à nompaquet
dpkg -S nomfichier (S majuscule)
rechercher a quel paquet(s) appartient nomfichier. Cette commande cherche uniquement dans les paquets deja installés sur votre système.
Pendant tous les TP d'administration système, gardez le transparent suivant de votre cours sous la main:
(NB: une copie de cet aide-mémoire vous sera fourni lors du contrôle écrit)
Votre machine est configurée pour chercher les paquets sur internet.
On peut lui dire à partir de quelle URL (http://example.org...) il doit le faire.
Ceci est spécifié le fichier de configuration principal du système apt.
Pour trouver le nom de ce fichier, réfléchissez et cherchez ... ou bien regardez votre cours.
(indice: où se trouvent les fichiers de configuration?)
Donnez le chemin complet de ce fichier de configuration:
Votre machine est configurée pour chercher les paquets sur internet, à partir de trois sources différentes:
Regardez le fichier /etc/apt/sources.list
Repérez les trois sources.
En utilisant les infos de la question précédente, et en regardant le fichier de configuration, donnez l'URL de la source principale.
Certains fichiers de config, comme sources.list, ont une page man qui peut être accédé par "man nom-fichier-config" (donc ici "man sources.list").
Parcourez rapidement la page man.
Vous y trouvez une description du "format d'une entrée dans sources.list" :
deb [options] uri suite [composant1] [composant2] [...]
En utilisant cette info, trouvez dans votre fichier de config sources.list le nom de la "suite" (distribution ou version) sur laquelle vous travaillez.
(attention, ne confondez pas le fichier de config sources.list avec la page man sources.list qui documente ce fichier)
Dans le fichier sources.list ignorez les lignes commençant par '#' (commentaire), les lignes deb-src (paquets à compiler) et les lignes concernant la mise à jour (updates)
La commande "apt list" (sans options) permet d'obtenir la liste des paquets qui sont disponibles (c'est à dire pas encore nécessairement installés)
Au total, quel est l'ordre de grandeur du nombre de paquets sont disponibles?
En utilisant la commande appropriée, recherchez les paquets disponibles qui ont un lien avec le jeux d'échecs. (on cherchera "chess" en anglais).
Un grand nombre de lignes s'affichent, chacune correspondant à un paquet.
On peut rechercher plusieurs mots à la fois avec la même commande.
Donnez le nom du paquet fourni par GNU permettant de jouer à une version japonaise ("Japon") des échecs.
Donnez le nom du paquet principal contenant un client bittorrent écrit en Python et utilisant la librairie PyGTK
Quelle commande permet d'afficher des informations sur un paquet dont on connaît déjà le nom : "exemple" ?
Affichez des informations sur le paquet "gimp".
Lisez la description du paquet.
"GIMP" est un acronyme. de quoi est-ce l'acronyme ?
Quelle commande faut-il taper pour installer le logiciel "xbomb" ?
(remarque: xbomb est peut-etre déjà installé sur votre machine. Dans ce cas, desinstallez-le avec "sudo apt remove xbomb", puis reinstallez-le avec "sudo apt install xbomb", pour voir les messages)
Lisez attentivement l'affichage de la commande d'installation. Il s'agit d'un logiciel très simple.
Trouvez (et lisez) les descriptions correspondant à chacune des lignes.
sudo apt install xbomb
1: Lecture des listes de paquets... Fait
2: Construction de l'arbre des dépendances
3: Lecture des informations d'état... Fait
4: Les paquets supplémentaires suivants seront installés :
5: fonts-sil-gentium fonts-sil-gentium-basic frozen-bubble-data libalien-sdl-perl libcapture-tiny-perl libclass-inspector-perl libcompress-bzip2-perl
6: libfile-sharedir-perl libfile-which-perl libmikmod2 libparams-util-perl libsdl-gfx1.2-4 libsdl-image1.2 libsdl-mixer1.2 libsdl-net1.2 libsdl-pango1
7: libsdl-perl libsdl-ttf2.0-0 libsmpeg0 libtie-simple-perl libwebp2 ttf-sil-gentium-basic
8: Paquets suggérés :
9: pulseaudio-esound-compat oss-compat ttf-freefont
10: Les NOUVEAUX paquets suivants seront installés :
11: fonts-sil-gentium fonts-sil-gentium-basic frozen-bubble frozen-bubble-data libalien-sdl-perl libcapture-tiny-perl libclass-inspector-perl
12: libcompress-bzip2-perl libfile-sharedir-perl libfile-which-perl libmikmod2 libparams-util-perl libsdl-gfx1.2-4 libsdl-image1.2 libsdl-mixer1.2
13: libsdl-net1.2 libsdl-pango1 libsdl-perl libsdl-ttf2.0-0 libsmpeg0 libtie-simple-perl libwebp2 ttf-sil-gentium-basic
14: 0 mis à jour, 23 nouvellement installés, 0 à enlever et 0 non mis à jour.
15: Il est nécessaire de prendre 25,7 Mo dans les archives.
16: Après cette opération, 32,9 Mo d'espace disque supplémentaires seront utilisés.
17: Souhaitez-vous continuer [O/n] ? o
18: Réception de : 1 http://ftp.fr.debian.org/debian/ wheezy/main libmikmod2 i386 3.1.12-5 [166 kB]
19: Réception de : 2 http://ftp.fr.debian.org/debian/ wheezy/main libsdl-gfx1.2-4 i386 2.0.23-3 [56,4 kB]
20: Réception de : 3 http://ftp.fr.debian.org/debian/ wheezy/main libwebp2 i386 0.1.3-3+nmu1 [99,4 kB]
21: Réception de : 4 http://ftp.fr.debian.org/debian/ wheezy/main libsdl-image1.2 i386 1.2.12-2 [37,2 kB]
22: Réception de : 5 http://ftp.fr.debian.org/debian/ wheezy/main libsdl-mixer1.2 i386 1.2.12-3 [93,5 kB]
23: Réception de : 6 http://ftp.fr.debian.org/debian/ wheezy/main libsdl-net1.2 i386 1.2.8-2 [16,4 kB]
24: (...)
25: Réception de : 21 http://ftp.fr.debian.org/debian/ wheezy/main libsdl-perl i386 2.540-1 [787 kB]
26: Réception de : 22 http://ftp.fr.debian.org/debian/ wheezy/main frozen-bubble-data all 2.212-3 [22,4 MB]
27: Réception de : 23 http://ftp.fr.debian.org/debian/ wheezy/main frozen-bubble i386 2.212-3 [193 kB]
28: 25,7 Mo réceptionnés en 16s (1 561 ko/s)
29: Sélection du paquet libmikmod2:i386 précédemment désélectionné.
30: (Lecture de la base de données... 128163 fichiers et répertoires déjà installés.)
31: Dépaquetage de libmikmod2:i386 (à partir de .../libmikmod2_3.1.12-5_i386.deb) ...
32: Sélection du paquet libsdl-gfx1.2-4:i386 précédemment désélectionné.
33: Dépaquetage de libsdl-gfx1.2-4:i386 (à partir de .../libsdl-gfx1.2-4_2.0.23-3_i386.deb) ...
34: (...)
35: Sélection du paquet frozen-bubble-data précédemment désélectionné.
36: Dépaquetage de frozen-bubble-data (à partir de .../frozen-bubble-data_2.212-3_all.deb) ...
37: Sélection du paquet frozen-bubble précédemment désélectionné.
38: Dépaquetage de frozen-bubble (à partir de .../frozen-bubble_2.212-3_i386.deb) ...
39: Traitement des actions différées (« triggers ») pour « fontconfig »...
40: Traitement des actions différées (« triggers ») pour « man-db »...
41: Traitement des actions différées (« triggers ») pour « desktop-file-utils »...
42: Traitement des actions différées (« triggers ») pour « gnome-menus »...
43: Traitement des actions différées (« triggers ») pour « menu »...
44: Paramétrage de libmikmod2:i386 (3.1.12-5) ...
45: Paramétrage de libsdl-gfx1.2-4:i386 (2.0.23-3) ...
46: Paramétrage de libwebp2:i386 (0.1.3-3+nmu1) ...
47: (...)
48: Paramétrage de frozen-bubble-data (2.212-3) ...
49: Paramétrage de frozen-bubble (2.212-3) ...
50: Traitement des actions différées (« triggers ») pour « menu »...
Supposons que vous exploriez votre système et que vous tombiez sur le répertoire "/etc/selinux"
En utilisant les commandes "dpkg" et "apt show" avec les options d'interrogation appropriées, déterminez à quoi sert "/etc/selinux" :
quelle est la version de "selinux" (libsemanage) installée sur votre système?
(le champ Version de la description)
Quel est le nom du paquet auquel appartient le fichier /usr/lib/x86_64-linux-gnu/libbind9-9.16.22-Debian.so ?
A quoi sert le paquet bind9-libs ?