8

Click here to load reader

Synthese Linux

Embed Size (px)

DESCRIPTION

exercice sous linux

Citation preview

  • S. Lavirotte, D. Lopez, H. Renard PolytechNice Sophia PeiP 1

    2014-2015 TD sances n 6 Gestion avance de Fichiers sous Unix

    Ce TP est destin vous familiariser avec les droits d'accs et les liens sous l'environnement Unix.

    1 Droits daccs Comme nous l'avons vu prcdemment, les systmes Unix sont multi utilisateurs, ceci implique que plusieurs utili-sateurs peuvent utiliser la mme machine et les mmes ressources. Pour maintenir la bonne scurit de ces res-sources les systmes linux proposent un systme de permissions sur les fichiers. chaque fichier est associ un ensemble d'informations permettant d'identifier qui est le propritaire du fichier mais aussi sa taille ou encore les droits d'accs qui lui sont associs. Pour consulter ces informations, on utilise la commande ls -l.

    Voici un exemple de rsultat d'une commande ls -l -rwxrwxrwx 1 kernel users 3.8M jan 2 2014 /mnt/multimedia/test.mp3

    Les droits d'accs du fichier /mnt/multimedia/test.mp3 sont les suivants : -rwxrwxrwx.

    Le premier caractre indique le type de fichier. - dcrit un fichier ordinaire d dcrit un rpertoire l dcrit un lien symbolique

    Les caractres suivant indiquent les droits d'accs associs ce fichier. Il existe trois types de droit d'accs : l'accs en lecture (r) : pour autoriser la lecture du fichier ou la visualisation du contenu d'un rpertoire. l'accs en criture (w) : pour autoriser modifier un fichier ou le contenu d'un rpertoire le droit d'excution (x) : pour autoriser l'excution d'un fichier. Attention le droit d'excution x sans le

    droit de lecture r est autoris mais ne vaut rien. Il faut pouvoir lire un fichier pour l'excuter. x sur un rpertoire rend ce dernier traversant, c'est--dire que l'on va pouvoir accder aux rpertoires qu'il con-tient.

    Vous ne pouvez pas renommer, supprimer ou copier des fichiers dans un rpertoire si vous n'avez pas accs en criture ce rpertoire.

    Si vous avez accs en criture un rpertoire, vous POUVEZ supprimer un fichier mme si vous ne disposez pas de droits d'criture pour ce fichier (un rpertoire est en fait juste un fichier dcrivant une liste de fichiers, donc si vous avez accs en criture sur le rpertoire, vous pouvez modifier les liste des fichiers quil contient). Cela permet mme de modifier un fichier (le supprimer et le recrer) mme protg en criture.

    Ces trois types de droits d'accs sont ensuite rpartis sur trois niveaux : utilisateur (u) : pour le propritaire du fichier groupe (g) : pour les membres du groupe associ autres (o) : pour tous les autres (groupes et propritaire exclus)

    Voici comment sont organises les permissions des fichiers :

    PolytechNice Sophia / Universit de Nice Sophia Antipolis 930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France

    Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

    1 1

  • S. Lavirotte, D. Lopez, H. Renard PolytechNice Sophia PeiP 1

    2014-2015 TD sances n 6 Gestion avance de Fichiers sous Unix

    Voici d'autres exemples : -rw-r--r--

    Lisible et modifiable pour le propritaire, seulement lisible pour les autres.

    -rw-r---- Lisible et modifiable pour le propritaire, seulement lisible pour les utilisateurs appartenant au groupe du fichier.

    drwx------ Rpertoire seulement accessible par son propritaire

    -------r-x Fichier excutable seulement par les autres, mais ni par votre groupe ni par vous-mme. Droits d'ac-cs typique d'un pige !

    La commande chmod permet de modifier les droits d'accs un fichier. Un utilisateur peut seulement modifier les droits de ses fichiers (sauf le super-utilisateur qui peut tout faire sur la machine). La commande chmod respecte la syntaxe suivante : $ chmod permissions fichiers ou dossier

    L'option -R permet d'appliquer la commande chmod rcursivement (sur tout ce qui est contenu dans le rpertoire cible y compris les sous-rpertoires).

    Il existe deux formats de permissions possibles : symbolique ou en base 8.

    En base 2, les droits d'accs de chaque niveaux ont pour valeur 0 ou 1. Ainsi par exemple, rwxr-x--- peut tre traduit en 111 101 000 en binaire, qui en base 8 peut tre converti en 750. Pour mettre de telles permissions un fichier, on crira la commande : chmod 750 fichier.

    En format symbolique, on dcrit les permissions pour chaque niveau. Ce format est plus simple comprendre avec des exemples. En voici quelques-uns :

    chmod a+rw : on ajoute le droit pour tous de lire et dcrire

    chmod u+x : on ajoute pour lutilisateur le droit dexcuter

    chmod g-w : on retire pour le groupe le droit dcrire

    chmod o-rwx : on retire pour les autres le droit de lire, crire et excuter

    chmod 644 : on donne le droit de lecteur et dcriture lutilisateur, le droit de lecture au groupe et aux autres

    2 Liens physiques et liens symboliques Un fichier stock sur le disque dur est un ensemble de donnes qui sont enregistres. Il faut ensuite un moyen d'accder ces donnes. C'est le rle que joue alors le nom du fichier qui permet d'indiquer quelles donnes on fait rfrence.

    2.1 Lien physique : ln Lors de la cration d'un fichier, on lui associe traditionnellement un seul nom. Mais en fait il peut y en avoir plu-sieurs. Chacun de ces noms de fichier est appel lien physique vers celui-ci. Il faut voir cela comme un point d'ac-cs vers les donnes se trouvant dans l'arborescence.

    Lors de l'utilisation de la commande ls avec l'option -l, on peut voir le nombre de ces liens physiques.

    $ touch find

    PolytechNice Sophia / Universit de Nice Sophia Antipolis 930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France

    Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

    2 2

  • S. Lavirotte, D. Lopez, H. Renard PolytechNice Sophia PeiP 1

    2014-2015 TD sances n 6 Gestion avance de Fichiers sous Unix

    $ ls -l find

    -rwxr-xr-- 1 user user 0 sept. 12 2014 find

    C'est la deuxime colonne qui l'indique. On l'appelle compteur de rfrence. Ici on sait donc qu'il y a une seule rfrence existant vers le contenu de ce fichier, celui-ci s'appelant find. C'est le cas le plus courant. On peut rajou-ter un lien physique l'aide de la commande ln . On lui passe en paramtre un des liens physiques dj existant suivi par le nom du nouveau lien crer. On pourrait par exemple ajouter un lien physique du nom de search. Cet exemple montre aussi le rsultat ensuite.

    $ ln find search (il faut tre super utilisateur pour avoir lautorisation dans ce cas : ajouter sudo devant cette commande pour avoir les droits du super utilisateur, nous verrons cela un peu plus tard)

    $ ls -l find

    -rwxr-xr-- 2 user user 0 sept. 12 2014 find

    $ ls -l search

    -rwxr-xr-- 2 user user 0 sept. 12 2014 search

    Le nombre de liens physiques est alors pass 2. Il faut bien voir que tous les liens physiques sont strictement quivalents. Lors de la suppression d'un de ces liens ( l'aide de la commande rm), le compteur de rfrence est dcrment. $ rm find $ ls -l -rwxr-xr-- 1 user user 0 sept. 12 2014 search

    S'il est diffrent de 0, rien n'est fait au niveau du fichier. La suppression du fichier ne sera effective que lorsque le dernier lien physique vers celui-ci sera supprim (compteur = 0). Etant donn que gnralement on ne cre des fichiers qu'avec un seul lien physique, la suppression de celui-ci avec rm est quivalente la suppression du fichier.

    2.2 Lien symbolique : ln -s Il existe un autre type de lien, les liens symboliques. Ce sont eux qui s'approchent le plus de la notion intuitive de lien.

    Un lien symbolique est en fait un type de fichier spcial qui contient le chemin vers un fichier du disque (en ralit un de ses liens physiques). On les cre aussi avec la commande ln mais en utilisant l'option -s (c'est ce qui se rap-proche des raccourcis sous Windows). Voici un exemple pour illustrer cela. On suppose que le lien physique cr prcdemment a t supprim.

    $ ln -s search cherche

    $ ls -l search

    -rwxr-xr-- 1 user user 0 sept. 12 2014 search

    $ ls -l cherche

    lrwxrwxrwx 1 Tian users 6 sept. 21 2014 cherche -> search

    La premire chose observer est le fait que le compteur de rfrence de search n'a pas t modifi. Un fichier n'a absolument pas connaissance du nombre de liens symboliques pointant vers lui.

    PolytechNice Sophia / Universit de Nice Sophia Antipolis 930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France

    Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

    3 3

  • S. Lavirotte, D. Lopez, H. Renard PolytechNice Sophia PeiP 1

    2014-2015 TD sances n 6 Gestion avance de Fichiers sous Unix

    Dans les permissions du lien appel cherche, on peut voir tout d'abord la lettre l indiquant qu'il s'agit bien d'un type particulier de fichier, un lien symbolique. On remarquera galement que toutes les permissions sont pr-sentes. Ceci car ce sont en fait celles du fichier destination qui seront utilises pour vrifier les autorisations d'ac-cs.

    Et enfin on a l'indication de la cible du lien symbolique. Lors de la cration, on aurait pu utiliser une indication de chemin. Celle-ci aurait t conserve telle quelle dans le lien symbolique y compris si le chemin tait donn de manire relative.

    L'utilisation ensuite du lien symbolique sera quivalente celle du fichier cible pour les commandes l'utilisant.

    Si ce dernier point fait apparatre les deux types de liens comme trs proches, il reste des diffrences.

    Le lien symbolique est totalement indpendant du fichier lui-mme et aussi du lien physique auquel il fait rf-rence. On peut crer un lien symbolique en indiquant un chemin de fichier n'existant pas. Le fichier peut aussi tre supprim ensuite sans que le lien symbolique n'en soit inform. Toutefois les accs futurs au fichier au travers de ce lien renverront bien sr une erreur. Et enfin la suppression d'un lien symbolique ( l'aide galement de la com-mande rm) n'aura aucune consquence sur le fichier.

    2.3 I-nuds Un systme UNIX n'identifie pas un fichier par son nom. En effet, ce n'est pas commode manipuler et comme on l'a vu avec les liens, deux fichiers de noms diffrents priori peuvent correspondre au mme bloc mmoire . Dans un systme UNIX, un fichier quel que soit son type, est en fait identifi par un numro appel numro d'i-nud ( inode en anglais). Le lien entre le numro d'i-nud attribu par le systme et le nom attribu par l'utili-sateur se situe en ralit dans le contenu du rpertoire dans lequel se trouve le fichier.

    3 Utilisation avance de linterprte de commande

    3.1 Alias Pour ceux qui sont habitus l'utilisation de cd pour changer de rpertoire mais souhaiteraient bnficier de ce comportement, il suffit de dfinir un alias :

    (Un alias est une primitive de nombreux shells informatiques qui permet d'afficher ou d'initialiser les substitutions de noms de commandes. Elle est majoritairement employe pour abrger une commande ou rajouter par dfaut des op-tions une commande rgulirement utilise.)

    $ alias cd="pushd"

    PolytechNice Sophia / Universit de Nice Sophia Antipolis 930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France

    Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

    4 4

  • S. Lavirotte, D. Lopez, H. Renard PolytechNice Sophia PeiP 1

    2014-2015 TD sances n 6 Gestion avance de Fichiers sous Unix

    Un changement de rpertoire en utilisant cd sauvegardera alors le rpertoire quitt. popd permettra ensuite de remonter l'historique des rpertoires visits.

    unalias supprime de faon dfinitive les alias crs avec la commande alias si jamais vous avez des alias dans le fichier d'initialisation de shell (.bashrc par exemple, alors il faut supprimer la ligne correspondant l'alias pour supprimer dfinitif l'alias sinon l'alias ne sera supprim que pour la session en cours).

    1. J'affiche les alias (ce que j'ai dans .bashrc) $ alias alias dem='/bin/ls' alias vi='/usr/bin/vim'

    2. Je cre un alias en ligne de commande $ alias ll='ls -l'

    3. J'affiche les alias (.bashrc + le nouveau cr) $ alias alias dem='/bin/ls' alias ll='ls -l' alias vi='/usr/bin/vim'

    4. Les alias se trouvant dans .bashrc $ grep alias .bashrc # User specific aliases and functions alias dem='/bin/ls' alias vi='/usr/bin/vim'

    5. Suppression des alias $ unalias {ll,vi}

    6. Affiche des alias aprs suppression vi et ll ne sont plus $ alias alias dem='/bin/ls'

    7. Simulation de redmarrage de session $ source ~/.bashrc

    8. Affiche les alias $ alias alias dem='/bin/ls' alias vi='/usr/bin/vim' On voit bien que l'alias vi existe toujours.

    PolytechNice Sophia / Universit de Nice Sophia Antipolis 930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France

    Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

    5 5

  • S. Lavirotte, D. Lopez, H. Renard PolytechNice Sophia PeiP 1

    2014-2015 TD sances n 6 Gestion avance de Fichiers sous Unix

    Exercices

    1 Permissions sur les fichiers Exercice n1:

    1. Crez un rpertoire Linux et dplacez-vous dans celui-ci 2. Crez le fichier vide mon_fichier, et examinez ensuite ses permissions. 3. Pour chacun des exercices suivants, donnez la commande chmod correspondante avec le changement de

    permissions en symbolique et en octal. Donnez successivement au fichier les droits ncessaires pour que vous puissiez :

    a. Lire, modifier et excuter votre fichier. b. Lire, modifier mais ne pas excuter votre fichier. c. Lire mais ne pas modifier ou excuter votre fichier.

    4. Accordez maintenant toutes les permissions au propritaire et la lecture seulement pour le groupe et rien pour les autres.

    5. Maintenant tentez de consulter le fichier mon_fichier cr par votre voisin et testez ce que vous pouvez faire sur ce fichier. Expliquez.

    6. Positionnez les permissions ncessaires pour qu'un utilisateur de votre groupe puisse lire, modifier mais ne pas supprimer votre fichier. Que faut-il faire pour pouvoir supprimer le fichier ?

    2 Liens physiques et symboliques Exercice n2:

    1. Crez dans votre rpertoire ~ un rpertoire tmp qui contient un fichier bidon. A laide de gedit, ajoutez une ligne de texte dans le fichier bidon.

    2. Dans votre home directory (~), crez un lien physique appel dhuile vers le fichier tmp/bidon. Comparez les contenus de tmp/bidon et de ~/dhuile. Que contient dhuile ?

    3. Notez les droits que vous avez actuellement sur le fichier ~/dhuile. Modifiez les droits sur le fichier tmp/bidon pour avoir les permissions suivantes rw-r-----. Quels sont les droits daccs sur le fichier ~/dhuile ?

    4. Supprimez le fichier tmp/bidon puis consultez le contenu du fichier dhuile. Que constatez-vous ? 5. Aprs avoir effac le fichier dhuile, refaites les questions 1, 2 et 3 de cet exercice, mais au lieu de faire un

    lien physique, faite un lien symbolique. 6. Quelles sont les diffrences entre les liens physiques et les liens symboliques ? 7. Faites un lien physique de nom cherche dans /tmp sur le fichier /usr/bin/find. Que se passe-t-il ? En

    dduire dans quel cas on ne peut pas faire de lien physique ? Que faut-il faire alors ?

    3 Alias Exercice n3:

    Faire un alias qui permet de voir les fichiers cachs et d'afficher les fichiers en couleur.

    PolytechNice Sophia / Universit de Nice Sophia Antipolis 930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France

    Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

    6 6

  • S. Lavirotte, D. Lopez, H. Renard PolytechNice Sophia PeiP 1

    2014-2015 TD sances n 6 Gestion avance de Fichiers sous Unix

    Synthse

    Nous allons explorer un peu plus en dtail les possibilits du systme de fichier UNIX travers le concept de lien et la notion de numro d'i-nud. Exercice A :

    Pour commencer, crez l'arborescence suivante dans votre dossier homedir.

    Donnez trois faons de dsigner le fichier fic6 depuis votre homedir. l'aide dun diteur de texte, crivez Il fait beau aujourd'hui ! dans le fichier fic6. l'aide de la commande cat, affichez le contenu du fichier fic6 depuis votre rpertoire rep2. L'option -l de la commande ls permet entre d'autre d'observer les droits d'un fichier/rpertoire. quoi

    correspondent les autres informations que l'on obtient grce cette commande ? Exercice B :

    Comme expliqu dans le cours, la commande ln sert crer des liens. Utilisez-la pour crer un lien physique du fichier fic6 dans test sous le nom de lpfic6.

    Modifiez le contenu du fichier lpfic6. Que constatez-vous pour le fichier fic6 ? Rciproquement, modi-fiez fic6, lisez lpfic6. Concluez.

    Modifiez les droits d'accs au fichier fic6 pour les membres du groupe. Que constatez-vous pour le fi-chier lpfic6 ? Pouvez-vous avancer une explication ?

    La commande ln peut aussi crer des liens symboliques avec l'option -s. Crez un lien symbolique du fichier fic6 dans test que vous appelez lsfic6.

    Regardez toutes les informations concernant les fichiers lpfic6 et lsfic6. Quelles diffrences notez-vous ?

    Essayez de modifiez les droits d'accs au fichier lsfic6. pour les mettre tous les droits pour les utilisa-teurs et le groupe, mais rien pour les autres. Que constatez-vous ?

    Modifiez les droits d'accs au rpertoire rep1 pour ne plus y avoir accs. Essayez d'afficher le contenu de lpfic6 et lsfic6. Que constatez-vous ? Pouvez-vous avancer une explication ?

    Modifiez de nouveau les droits d'accs au rpertoire rep1 pour y avoir de nouveau accs. Dplacez le fi-chier fic6 dans le rpertoire rep1. Essayez d'afficher le contenu de lpfic6 et lsfic6. Que constatez-vous ?

    Redplacez le fichier fic6 dans le rpertoire rep4. Essayez nouveau d'afficher les contenus de lpfic6 et lsfic6. Supprimez le fichier fic6 puis recommencez. Que constatez-vous ?

    Pour la suite de la synthse d'exercices, recrez le fichier fic6 dans le rpertoire rep4.

    PolytechNice Sophia / Universit de Nice Sophia Antipolis 930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France

    Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

    7 7

  • S. Lavirotte, D. Lopez, H. Renard PolytechNice Sophia PeiP 1

    2014-2015 TD sances n 6 Gestion avance de Fichiers sous Unix

    Exercice C :

    Observons maintenant plus attentivement le rpertoire rep2. Combien y a-t-il de liens sur ce rpertoire ? quoi correspondent-ils ?

    Dans le rpertoire rep2, crez un sous-rpertoire rep3. Combien y a-t-il maintenant de liens sur le rper-toire rep2 ? Expliquez.

    Crez un lien physique lprep4 du rpertoire rep4 dans le rpertoire test. Que remarquez-vous ?

    Avec les implmentations existant actuellement, seul le super-utilisateur peut crer un lien matriel sur un rper-toire, et encore, ce n'est pas toujours possible. Par contre, on peut tout fait crer un lien symbolique sur un rper-toire.

    Crez un lien symbolique lsrep4 du rpertoire rep4 dans le rpertoire test. Crez un lien symbolique lslsrep4 du lien lsrep4 dans le rpertoire rep2. Donnez trois manires diffrentes de se dplacer dans le rpertoire rep4 partir du rpertoire test. En utilisant successivement ces trois mthodes, dplacez vous dans le rpertoire rep4 puis remonter dans

    le rpertoire parent l'aide de la commande cd ... Que remarquez-vous ? Que se passe-t-il si on utilise la commande ls -Ral sur lsrep4 ? et sur lslsrep4 ?

    la fin de cet exercice, nous avons maintenant l'arborescence suivante :

    Exercice D :

    l'aide de la commande ls munie de l'option approprie, observez le numro d'i-nud du fichier fic2. Copiez le fichier fic2 dans le rpertoire rep3. Quel est son numro d'i-nud ?

    Changez le nom de ce dernier fichier, pour l'appeler fic6. Le numro d'i-nud change-t-il ? Comparez les numros d'i-nuds entre le fichier fic6 du rpertoire rep4, lpfic6 et lsfic6. Que remar-

    quez-vous ? Expliquez maintenant plus clairement les dernires questions de l'exercice B. Observez maintenant le numro d'i-nud de la racine et de votre rpertoire personnel. Que remarquez-

    vous ?

    PolytechNice Sophia / Universit de Nice Sophia Antipolis 930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France

    Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

    8 8

    1 Droits daccs2 Liens physiques et liens symboliques2.1 Lien physique : ln2.2 Lien symbolique : ln -s2.3 I-nuds

    3 Utilisation avance de linterprte de commande3.1 Alias

    1 Permissions sur les fichiers2 Liens physiques et symboliques3 Alias