Exercice 1 :
Récuperez sur le elearning le fichier RaoulVolfoni_FernandNaudin.zip
Que contient il ? Pour ouvrir le fichier vous pouvez utiliser la commande unzip
ou utiliser le navigateur de fichier.
Effectivement c'est un rendu étudiant, avec la documentation du projet et les sources dans un répertoire src, le repertoire est au nom des deux binomes (les deux étudiants qui ont travaillé ensemble pour ce projet).
Créer votre un répertoire pour votre propre projet en considérant que votre binome s'appelle Groucho Marx pour cet exercice.
Utiliser par exemple: libreoffice
pour créer votre fichier documentation.odt et ensuite l'exporter au format pdf, Utilisez un editeur de texte comme par exemple: geany
ou gedit
ou emacs
pour creer le fichier moncode.py dans lequel vous écrirez la ligne suivante print(" Hello world")
. (Vous avez créé un fichier python qui affiche " Hello World" quand il est appelé.)
Dans tout système d'exploitation, il est nécessaire de protéger le fonctionnement du système en interdisant certaines actions à l'utilisateur. Pour cela, il existe une notion de droits (ou permissions).
Téléchargez le fichier frozen-bubble-2.2.0.zip
sur la plateforme e-Learning du cours et décompressez-le dans le répertoire ~/L1/ISI/TP3
que vous aurez créé pour ce TP.
(Note: il s'agit d'une version modifiée pour ce TP de l'archive que vous pouvez télécharger librement sur www.frozen-bubble.org.)
Exercice 2 :
Placez-vous dans le répertoire frozen-bubble-2.2.0
et tapez la commande ./first.sh
. (Les commandes et autres programmes sont des fichiers comme les autres. Par exemple, /bin/ls
est le fichier correspondant à la commande que vous connaissez bien. Pour exécuter un programme, il suffit de taper son nom. C'est ce que vous avez fait ici avec le fichier first.sh
au début de l'exercice.)
Listez les fichiers et répertoires contenus dans le dossier courant avec la commande ls
. Essayez d'afficher le contenu du répertoire tools
. Que se passe-t-il?
Essayez de vous placer dans le répertoire icons
. Pouvez-vous lister son contenu?
Essayez de créer un fichier i_was_here.txt
dans le répertoire server
. Avez-vous essayé de vous placer dans le dossier server
?
Essayez d'afficher le contenu du fichier README
avec la commande cat
. Que se passe-t-il?
Ouvrez le fichier settings.mk
avec un éditeur de texte et tentez de le modifier. Est-ce possible?
La commande chmod liste_droits fichier(s)
permet d'accorder ou de retirer au(x) fichier(s) passé(s) en arguments les permissions correspondant à liste_droits
. Cette liste est de la forme droit_1
, ..., droit_n
où chaque droit_i
peut être par exemple :
u+r
pour rajouter au propriétaire le droit en lecture,g-w
pour retirer aux membres du groupe le droit en écriture,o+x
pour donner aux autres utilisateurs le droit en exécution,u-wx
, ug-w
, ug-wx
).Exercice 3 : Votre répertoire personnel
L'option -d
de la commande ls
permet d'afficher les informations d'un répertoire et non de son contenu. Servez-vous de cette option (combinée avec l'option -l
) pour afficher les droits de votre répertoire personnel. Que constatez-vous ?
Exercice 4 : Exécuter un fichier.
Créez un répertoire Essai
(si vous n'en possédez pas déjà un), et un fichier mon_ls
dans ce répertoire, et écrivez-y quelques mots de votre choix.
Notez à l'aide de ls -l
les permissions actuelles du répertoire Essai
et du fichier mon_ls
.
En utilisant la commande chmod
, retirez-vous le droit en lecture et en écriture sur le fichier mon_ls
. Vérifiez l'effet obtenu en essayant d'afficher le contenu du fichier sur la fenêtre du terminal avec la commande cat
, puis de remplacer ce contenu par une phrase différente.
Un fichier exécutable est simplement un fichier dont vous possédez le droit en exécution. Rétablissez le droit en écriture puis remplacez le contenu du fichier mon_ls
par le texte "echo Contenu du dossier; ls"
. Ajoutez-vous le droit en exécution, et exécutez le fichier mon_ls
en tapant ./mon_ls
dans le terminal (depuis le répertoire qui le contient). Quel est le problème ?
Rétablissez enfin le droit en lecture et tentez à nouveau d'exécuter le fichier. Que se passe-t-il?
Si le sens de chaque droit pour un fichier ordinaire est assez clair, il est parfois moins intuitif pour un répertoire, comme vous le verrez dans l'exercice suivant.
Exercice 5 : Un test.
Placez-vous dans le répertoire Essai
, et retirez-vous le droit en lecture pour ce répertoire. Listez le contenu du répertoire avec ls
, puis exécutez ou affichez le contenu du fichier mon_ls
. Qu'en déduisez-vous ? Rétablissez le droit en lecture sur mon_ls
et sur Essai
.
Créez dans Essai
un fichier nouveau
ainsi qu'un répertoire Test
. Retirez au fichier nouveau
et au répertoire Essai
le droit en écriture. Tentez de modifier le fichier nouveau
, de le déplacer, de le supprimer. Rétablissez ensuite le droit en écriture au répertoire Essai
. Tentez de modifier le fichier nouveau
, puis de le déplacer ou de le supprimer. Que constatez-vous ?
Positionnez-vous dans votre répertoire personnel, puis retirez le droit en exécution du répertoire Essai
. Tentez de créer, supprimer, ou modifier un fichier dans le répertoire Essai
, de vous y déplacer, d'en faire la liste, etc. Qu'en déduisez-vous quant au sens du droit en exécution pour les répertoires ?
Dans certains cas, par exemple dans le cadre d'un projet à plusieurs ou de la fabrication d'une page web, il peut être intéressant de donner accès à certains de ses fichiers ou répertoires à d'autres utilisateurs. Les exercices suivants explorent deux cas d'utilisation possibles.
Exercice 6 : Donner accès à ses fichiers.
Attribuez au fichier mon_ls
les droits suffisants pour qu'une autre personne de votre groupe UNIX puisse y accéder en lecture (mais pas en écriture).
Les fichiers des utilisateurs, et en particulier vos fichiers, sont visibles depuis tous les ordinateurs de la salle. Demandez à votre voisin(e) de tenter de lire votre fichier mon_ls
depuis sa machine.
Essayez d'accéder aux répertoires personnels d'autres étudiants et de consulter leurs fichiers.
(bonus) Créez un répertoire Dépôt
où toute personne du groupe peut créer ou supprimer un fichier, mais dont personne d'autre que vous ne peut afficher le contenu. Testez son fonctionnement avec l'aide d'un autre utilisateur.