Pour ce TP, les manipulations demandent d’avoir des droits que nous n’avons pas sur le système d’exploitation réel de la machine, nous allons donc travailler dans une machine virtuelle (Ubuntu18.08), en tant que robert, dont le mot de passe est leffe.

On pourra envoyer des fichiers de la machine réelle à la machine virtuelle avec scp (ssh copy). Par exemple, dans un terminal sur la machine réelle,

scp Bureau/fichier robert@192.168.56.101:/home/robert/

Le premier argument est le chemin vers le fichier à transférer, le deuxième argument est le chemin de destination. Dans le deuxième chemin, avant le :, nous avons le login @ l’hôte (il s’agit de l’“autre” machine).

Sudo

  1. À quoi sert la commande sudo ?

  2. Tester les lignes de commandes suivantes :

    ls -al /root
    sudo ls -al /root
  3. Quels sont ses fichiers de configuration ? Que contiennent-ils ?

  4. Qui peut utiliser sudo ? Pourquoi robert peut-il faire sudo ?

XKCD 149

Utilisateurs et groupes

Les commandes adduser, addgroup et useradd permettent de créer des utilisateurs, des groupes sur le système.

  1. Parcourir les pages de manuel de ces commandes
  2. Tester les commandes useradd et adduser pour créer les utilisateurs roger et roland.
  3. Créer un utilisateur albert qui sera sudoer.
  4. Créer un groupe eleves.
  5. Créer des utilisateurs pour chacun des élèves du fichier https://cygne.hainry.fr/cours/etudiants.tsv. Les logins seront de la forme hainry, akhadad ou lhote, les mots de passe également.
  6. Regarder les fichiers /etc/passwd et /etc/shadow pour vérifier que les utilisateurs ont bien été créés.

Gestion de paquets

Debian et ses dérivés (ubuntu, mint, knoppix, grml, kali, damn small linux, xandros…) utilisent des paquets au format deb et les manipulent avec les commandes dpkg et apt. Il existe aussi des interfaces graphiques (par exemple synaptic) pour gérer l’installation et la suppression de logiciels.

De façon simplifiée, dpkg permet de manipuler les paquets eux-mêmes ; apt permet de rechercher des choses dans la base de données de paquets et de gérer les paquets (installation, désinstallation…) et leurs dépendances.

  1. Parcourir en diagonale les pages de manuel de ces 2 commandes.
  2. Mettre à jour la base de données des paquets.
  3. Quelle version de apparmor est installée ? Doit-elle être mise à jour ?
  4. Mettre à jour tous les paquets installés.
  5. Regarder le changelog de apparmor. Y a-t-il eu des mises à jour de sécurité récentes ?
  6. Quels paquets parlent de vache ?
  7. Installer cowsay. Quels fichiers ont été installés par ce paquet ?
  8. Installer zsh. Noter les paquets installés en plus (dépendances).
  9. Quel paquet a installé le fichier /bin/ls ?
  10. Quel paquet a installé le fichier /bin/sh ?
  11. Désinstaller zsh. Désinstaller ses dépendances.
  12. Combien de paquets sont actuellement installés ?
    1. Quels sont les paquets dont le nom contient beneath ?
    2. Énumérer les dépendances de ces paquets, y compris dépendances indirectes.
    3. Remarquer les numéros de versions ainsi que les incompatibilités (Breaks)
$ apt-get moo

                 (__) 
                 (oo) 
           /------\/ 
          / |    ||   
         *  /\---/\ 
            ~~   ~~   
..."Have you mooed today?"...