Pour manipuler un système GNU/Linux, on doit apprendre une série de tâches de bases. Six exercices sont proposés dans ce LinuxLabs. Les tutoriels libres ne manquent pas.
Lectures préalables.
- la carte de référence Debian GNU/Linux
- Référence Debian, 1. Didacticiels GNU/Linux
- Les commandes de base de votre Debian GNU/Linux
- Les commandes de base en console
- Le système d’exploitation GNU-Linux
Objectifs.
- Gérer les fichiers et répertoires
- Manipuler les utilitaires
- Gérer les droits, utilisateurs et groupes
- Gérer les processus
- Gérer les logs
- Créer un script planifié (en complément).
Exercice 1 : Gérer les fichiers et répertoires
1. Se rendre dans le dossier /home/francois.
francois@ubuntu1:/home$ cd /home/francois francois@ubuntu1:~$ pwd /home/francois
2. Visualiser son contenu avec détail.
francois@ubuntu1:~$ ls -l total 32 -rw-rw-r-- 1 francois francois 12799 avr 30 23:19 typescript -rw-rw-r-- 1 francois francois 12799 avr 30 23:36 typescript1
3. Aller dans le dossier supérieur et visualiser son contenu.
francois@ubuntu1:~$ cd ..
francois@ubuntu1:/home$ ls
francois
4. Visualiser le contenu du répertoire courant de manière détaillée.
francois@ubuntu1:/home$ ls -lartkh total 12K drwxr-xr-x 22 root root 4,0K avr 30 12:27 .. drwxr-xr-x 3 root root 4,0K avr 30 12:51 . drwxr-xr-x 4 francois francois 4,0K mai 1 06:31 francois
5. Créer un dossier « temp » dans son dossier personnel.
francois@ubuntu1:~$ cd
francois@ubuntu1:~$ mkdir temp
francois@ubuntu1:~$ ls -l total 36 drwxrwxr-x 2 francois francois 4096 mai 1 07:03 temp -rw-rw-r-- 1 francois francois 0 mai 1 07:02 typescript
francois@ubuntu1:~$ ls -la total 68 drwxr-xr-x 5 francois francois 4096 mai 1 07:03 . drwxr-xr-x 3 root root 4096 mai 1 06:58 .. -rw------- 1 francois francois 682 mai 1 07:02 .bash_history -rw-r--r-- 1 francois francois 220 avr 30 12:51 .bash_logout -rw-r--r-- 1 francois francois 3486 avr 30 12:51 .bashrc drwx------ 2 francois francois 4096 avr 30 12:59 .cache drwxrwxr-x 2 francois francois 4096 mai 1 00:55 .landscape -rw-r--r-- 1 francois francois 675 avr 30 12:51 .profile drwxrwxr-x 2 francois francois 4096 mai 1 07:03 temp -rw-rw-r-- 1 francois francois 0 mai 1 07:02 typescript
6. Y copier les fichiers cachés .profile et .bashrc
francois@ubuntu1:~$ cp .profile .bashrc temp/
francois@ubuntu1:~$ ls -la temp total 16 drwxrwxr-x 2 francois francois 4096 mai 1 07:05 . drwxr-xr-x 5 francois francois 4096 mai 1 07:03 .. -rw-r--r-- 1 francois francois 3486 mai 1 07:05 .bashrc -rw-r--r-- 1 francois francois 675 mai 1 07:05 .profile
7. Y copier le fichier typescript.
francois@ubuntu1:~$ cp typescript /home/francois/temp/
francois@ubuntu1:~$ ls temp typescript
8. Y copier le fichier typescript en le nommant zozo.txt.
francois@ubuntu1:~$ cp typescript temp/zozo.txt
francois@ubuntu1:~$ ls -la temp total 16 drwxrwxr-x 2 francois francois 4096 mai 1 07:06 . drwxr-xr-x 5 francois francois 4096 mai 1 07:03 .. -rw-r--r-- 1 francois francois 3486 mai 1 07:05 .bashrc -rw-r--r-- 1 francois francois 675 mai 1 07:05 .profile -rw-rw-r-- 1 francois francois 0 mai 1 07:05 typescript -rw-rw-r-- 1 francois francois 0 mai 1 07:06 zozo.txt
9. Déplacer le fichier typescript dans temp en le renommant copie_fichier.
francois@ubuntu1:~$ mv /home/francois/typescript temp/copie_fichier
francois@ubuntu1:~$ ls temp
francois@ubuntu1:~$ ls temp copie_fichier typescript zozo.txt
10. Recopier temp/typescript dans le dossier personnel et vérifier.
francois@ubuntu1:~$ cp temp/typescript typescript
francois@ubuntu1:~$ ls -l total 20 drwxrwxr-x 2 francois francois 4096 mai 1 07:03 temp -rw-rw-r-- 1 francois francois 12799 avr 30 23:36 typescript
11. Effacer le dossier temp.
francois@ubuntu1:~$ rm temp rm: impossible de supprimer «temp»: est un dossier
francois@ubuntu1:~$ rm -rf temp
francois@ubuntu1:~$ ls -l total 16 -rw-rw-r-- 1 francois francois 12799 avr 30 23:36 typescript
Exercice 2. Manipuler les utilitaires.
1. Affiche les 10 dernières lignes du fichier /etc/passwd.
$ tail /etc/paswd
2. Affiche lignes du fichier /etc/passwd qui contiennent les lettres « /bin/sh ».
$ grep /bin/sh /etc/passwd
3. Affiche lignes du fichier /etc/passwd qui commencent par « li ».
$ grep '^li' /etc/passwd
4. Affiche triées les lignes du fichier /etc/passwd qui commencent par « li ».
$ grep '^li' /etc/passwd | sort
5. Affiche, triées, page par page, les lignes du fichier /etc/passwd qui contiennent les lettres « /bin/sh ».
$ grep /bin/sh /etc/passwd | sort | more
6. Affiche la liste des processus page par page.
$ ps aux | more
7. Affiche les lignes des processus contenant les lettres « sshd ».
$ ps aux | grep sshd
8. Redirections : copier la sortie d’une commande dans un fichier.
$ df -H > test.txt
$ more test.txt
$ date > test.txt
$ more test.txt
$ df -H >> test.txt
9. Outil de localisation : mlocate.
mlocate typescript
mlocate -h | more
Exercice 3. Gérer les droits, les utilisateurs et les groupes.
1. S’attribuer les droits root.
$ sudo su
2. Ajouter un groupe « bons ».
# groupadd bons
3. Créer le dossier d’acceuil « tintin »
# mkdir /home/tintin
4. Ajouter l’utilisateur « tintin » dans le groupe « bons » ayant pour dossier d’accueil « /home/tintin ».
# useradd -d /home/tintin -g bon -s /bin/sh tintin
5. Vérifier la création de l’utilisateur et du groupe.
# tail -1 /etc/group bons:x:1001:
# tail -1 /etc/passwd tintin:x:1001:1001::/home/tintin:/bin/sh
6. Attribuer un mot de passe à l’utilisateur « tintin ».
# passwd tintin Entrez le nouveau mot de passe UNIX : Retapez le nouveau mot de passe UNIX : passwd: password updated successfully
7. Copier le contenu du répertoire courant dans « /home/tintin ».
# cp * /home/tintin/
# ls -l /home/tintin
8. Désigner les propriétaires à tout le contenu du répertoire « /home/tintin ».
# chown -R tintin:bons /home/tintin
# ls -l /home
# ls -l /home/tintin/
9. Ajouter un utilisateur ‘milou’ dans le groupe ‘bons’
# useradd -g bon milou
# tail -1 /etc/passwd milou:x:1002:1001::/home/milou:/bin/sh
10. Lui attribuer « /home/tintin » comme répertoire d’accueil.
# usermod -d /home/tintin milou
11. Définir son mot de passe.
# passwd milou Entrez le nouveau mot de passe UNIX : Retapez le nouveau mot de passe UNIX : passwd: password updated successfully
12. Prendre ses droits
# su milou
$ cd $ pwd /home/tintin $ exit
13. Ajouter un groupe « mauvais ».
# groupadd mauvais
14. Ajouter un utilisateur avec le script adduser.
# mlocate adduser | grep bin /usr/sbin/adduser
# adduser alan Ajout de l'utilisateur « alan » ... Ajout du nouveau groupe « alan » (1003) ... Ajout du nouvel utilisateur « alan » (1003) avec le groupe « alan » ... Création du répertoire personnel « /home/alan »... Copie des fichiers depuis « /etc/skel »... Entrez le nouveau mot de passe UNIX : Retapez le nouveau mot de passe UNIX : passwd: password updated successfully Changing the user information for alan Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Cette information est-elle correcte ? [O/n] o
15. Ajouter l’utilisateur « alan » dans le groupe mauvais.
# usermod -G mauvais alan
16. Vérifier son appartenance.
# tail -1 /etc/passwd alan:x:1003:1003:,,,:/home/alan:/bin/bash
# tail -1 /etc/group alan:x:1003:
# id alan uid=1003(alan) gid=1003(alan) groupes=1003(alan),1002(mauvais)
17. L’utilisateur « tintin » crée un fichier « pinces »
# su tintin $ cd $ touch pinces $ ls -l
-rw-r--r-- 1 tintin bon 0 mai 1 10:10 pinces
$ exit
18. L’utilisateur milou tente de le modifier. Quels sont ses droits sur le fichier.
su milou $ cd $ echo "test" > pinces sh: 5: cannot create pinces: Permission denied $ exit
19. Donner les droits d’écriture au groupe auquel appartient l’utilisateur « milou ».
# chmod 664 /home/pinces
20. Vérifier.
# su milou $ echo "test" > pinces $ cat pinces test $ exit
21. Tentative d’écriture par un utilisateur appartenant à un autre groupe.
# su alan alan@ubuntu1:/home/tintin$ pwd /home/tintin $ echo "mauvaise action" >> pinces bash: pinces: Permission non accordée $ exit
Exercice 4. Gérer les processus
1. Trouver le processus sshd. Quel est son pid ?
pstree | more
ps aux | more
top
ps aux | grep sshd
2. Or console SSH, tuer le processus correspondant et vérifier.
kill <numéro PID>
ps aux | grep sshd
3. Démarrer le service sshd.
/etc/init.d/sshd start
3. Redémarrer le service sshd.
/etc/init.d/sshd restart
4. Stopper le service sshd.
/etc/init.d/sshd stop
Exercice 5. Gérer les logs
1. Consulter tous les fichiers du répertoire /var/log. Utilisez cat, more, tail, grep.
Exercices complémentaires.
- Editeur Vim : Vi IMproved
- Consulter les répertoires importants : Les répertoires importants
- Gérer un service avec update-rc.d : How-To: Managing services with update-rc.d
- Lancer des tâches de fond avec &, fg, bg : Invoquer un programme en tâche de fond
- L’archivage et la compression de fichiers : Archivage et compression avec tar, pax, zip, rar etc.
- Planification des tâches : L’ordonnanceur de travaux cron
- Script d’archivage de fichiers exécuté toutes les 5 minutes.
Pour aller plus loin.
…

