tp n

Upload: assoumatiazeddine

Post on 04-Mar-2016

231 views

Category:

Documents


1 download

DESCRIPTION

fdgdfgfd

TRANSCRIPT

TP n1

RETOURInfos systme Quel est le systme install? Quelle est la distribution installe? Quels sont les utilisateurs en cours du systme? Ouvrir un nouveau terminal en utilisant un autre compte. Fermer ce terminal.La commande man Tester la commande man pour obtenir de l'aide sur man.Quelles sont les commandes susceptibles d'tre documentes dans man?Contenu de rpertoires et de fichiers ascii (texte) Lister le contenu du rpertoire /etc. Lister de manire dtaille le contenu du rpertoire /etc.Les fichiers nomms "passwd", "shadow", "group" et "gpasswd" sont-ils prsents dans /etc? Lister le contenu du rpertoire /dev. Lister le contenu du fichier /etc/passwd. Lister le contenu du fichier /etc/shadow. Afficher par ordre alphabtique les utilisateurs dfinis dans le fichier /etc/passwd. Rechercher tous les fichiers du rpertoire /etc contenant la chaine de caractres "root". Rechercher la localisation du fichier "stdio.h" dans le systme de fichier de votre installation. A l'aide de la commande "od", illustrer la diffrence majeure entre les types de fichier ascii (texte) DOS, UNIX et Macintosh. Utiliser le fichier ascii Dosmontexte.dosfourni en lien et crer les fichiers ascii Unix "montexte.unix" et ascii Macintosh "montexte.mac" avec le mme contenu au moyen d'un diteur texte (Kate par exemple) puis comparer (version Macintosh si l'diteur le permet).Quelle est la diffrence? Utiliser les commandes de comparaison de fichiers de Linux pour tester le contenu d'un mme fichier texte en version Unix et Dos. Combien de lignes, de mots et de caractres comportent les fichiers "montexte.unix", "montexte.dos" et "montexte.mac"?CommandesDterminer les commandes permettant de raliser les actions suivantes: Dterminer le rpertoire par dfaut dans la hirarchie des rpertoires? Y a t-il des fichiers, des rpertoires dans ce rpertoire? Entrer du texte dans un fichier nomm "Mon_fichier". Lister le contenu de "Mon_fichier". Lister le rpertoire courant. Lister les rpertoires /bin et /dev. Crer sous votre rpertoire deux sous-rpertoires : "Source" et "Data". Se positionner sous "Source". Listez le rpertoire courant. Revenir sous le rpertoire de dpart et dtruire "Source". Crer un deuxime fichier nomm "Mon_fichier_2". Copier chaque fichier en nom_de_fichier.old. Crer un rpertoire "Old". Dplacer les fichiers avec l'extension old vers le rpertoire "Old". Copiez les fichiers sans extension dans le repertoire "Data". Sous votre rpertoire de dpart, crez un lien matriel "Mon_lien" quivalent "Mon_fichier_2". Lister les deux fichiers "Mon_lien" et "Mon_fichier_2" en affichant leur numro d'inode.Que remarquez vous? Supprimer "Mon_lien"."Mon_fichier_2" a-t-il disparu? Sous votre rpertoire de dpart, crez un lien symbolique "Mon_nouveau_lien" sur "Mon_fichier_2". Lister les deux fichiers "Mon_nouveau_lien" et "Mon_fichier_2".Que remarquez vous? Supprimer "Mon_fichier_2"."Mon_nouveau_lien" a-t-il disparu? Quelle est la taille totale des fichiers contenus dans votre rpertoire? Effacer tous les fichiers cres.Mise en place d'un espace de travail pour 4 utilisateursDfinir le lot de commandes excuter pour crer 4 utilisateurs en suivant les rgles suivantes: Cration de 2 groupes. Les premier et deuxime utilisateurs sont membres du premier groupe. Les troisime et quatrime utilisateurs sont membres du second groupe. Le deuxime utilisateur est aussi membre du second groupe. Le quatrime utilisateur est aussi membre du premier groupe. Outre leur rpertoire de travail, les utilisateurs ont accs un rpertoire commun /home/groupe1 et/ou /home/groupe2 suivant leur groupe. Dans ce rpertoire, ils peuvent crire, crer des fichiers mais ne peuvent pas effacer les fichiers.1. Dtaillez les tapes de cration des groupes, des utilisateurs et des rpertoires en indiquant quels fichiers vous utilisez et quelles commandes vous utilisez sur ces fichiers.2. Modifiez les profils des utilisateurs pour qu'au login, le rpertoire d'accueil sur lequel il souhaite travailler lui soit demand (s'il entre U, il sera sous son rpertoire, s'il entre G, il sera sous le rpertoire de son groupe).3. Parmi ces 3 valeurs: 066, 067, 077, quel umask positionneriez vous? Expliquez pour chaque valeur quelles sont les consquences de ce choix.RETOUR

Corrections des exercices du TP n1

RETOURInfos systmeQuel est le systme install?uname -aLinux hector 2.6.15-27-386 #1 PREEMPT Fri Dec 8 17:51:56 UTC 2006 i686 GNU/Linux

Quelle est la distribution installe?cat /etc/issueUbuntu 6.06.1 LTS \n \l

Quels sont les utilisateurs en cours du systme?whonico :0 2007-01-14 16:25

Ouvrir un nouveau terminal en utilisant un autre compte.su user

Fermer ce terminal.exit

La commande manTester la commande man pour obtenir de l'aide sur man.Quelles sont les commandes susceptibles d'tre documentes dans man?man manman is the systems manual pager. Each page argument given to man is normally the name of a program, utility or function.

Contenu de rpertoires et de fichiers ascii (texte)Lister le contenu du rpertoire /etc.ls /etc

Lister de manire dtaille le contenu du rpertoire /etc.Les fichiers nomms "passwd", "shadow", "group" et "gpasswd"sont-ils prsents dans /etc?ls -l /etcls -la /etcTous ces fichiers sont bien prsents.

Lister le contenu du rpertoire /dev.ls /dev

Lister le contenu du fichier /etc/passwd.cat /etc/passwdroot:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/bin/shbin:x:2:2:bin:/bin:/bin/shsys:x:3:3:sys:/dev:/bin/shsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games:/usr/games:/bin/shman:x:6:12:man:/var/cache/man:/bin/shlp:x:7:7:lp:/var/spool/lpd:/bin/shmail:x:8:8:mail:/var/mail:/bin/shnews:x:9:9:news:/var/spool/news:/bin/sh...user,,,:/var/run/hplip:/bin/falsenico:x:1000:1000:Nico,,,:/home/nico:/bin/bash

Lister le contenu du fichier /etc/shadow.cat /etc/shadowLecture refuse.

Afficher par ordre alphabtique les utilisateurs dfinis dans le fichier /etc/passwd.cat /etc/passwd | sortbackup:x:34:34:backup:/var/backups:/bin/shbin:x:2:2:bin:/bin:/bin/shcupsys:x:100:106::/home/cupsys:/bin/falsedaemon:x:1:1:daemon:/usr/sbin:/bin/shdhcp:x:101:101::/nonexistent:/bin/falsegames:x:5:60:games:/usr/games:/bin/sh...root:x:0:0:root:/root:/bin/bashsync:x:4:65534:sync:/bin:/bin/syncsyslog:x:102:102::/home/syslog:/bin/falsesys:x:3:3:sys:/dev:/bin/shuucp:x:10:10:uucp:/var/spool/uucp:/bin/shwww-data:x:33:33:www-data:/var/www:/bin/sh

Rechercher tous les fichiers du rpertoire /etc contenant la chaine de caractres "root".grep root /etc/*...

Rechercher la localisation du fichier "stdio.h" dans le systme de fichier de votre installation.find / -name stdio.h...find: /tmp/kde-root: Permission non accorde/usr/include/bits/stdio.h/usr/include/stdio.h

A l'aide de la commande "od", illustrer la diffrence majeure existant entre les types de fichier ascii (texte) DOS, UNIX et Macintosh. Utiliser le fichier ascii Dosmontexte.dosfourni en lien et crer les fichiers ascii Unix "montexte.unix" et ascii Macintosh "montexte.mac" avec le mme contenu au moyen d'un diteur texte (Kate par exemple) puis comparer (version Macintosh si l'diteur le permet).Quelle est la diffrence?od -x monfichier.dos0000000 6e75 0a0d 6564 7875 0a0d 7274 696f 0d730000020 710a 6175 7274 0d65 630a 6e69 0d71 730a0000040 7869 0a0d 6573 7470 0a0d 0a0d 0a0d 0a0d0000060 0a0d 0a0d0000064od -c monfichier.dos0000000 u n \r \n d e u x \r \n t r o i s \r0000020 \n q u a t r e \r \n c i n q \r \n s0000040 i x \r \n s e p t \r \n \r \n \r \n \r \n0000060 \r \n \r \n0000064od -x monfichier.unix0000000 6e75 640a 7565 0a78 7274 696f 0a73 75710000020 7461 6572 630a 6e69 0a71 6973 0a78 65730000040 7470 0a0a 0a0a 0a0a0000050od -c monfichier.unix0000000 u n \n d e u x \n t r o i s \n q u0000020 a t r e \n c i n q \n s i x \n s e0000040 p t \n \n \n \n \n \n0000050od -x monfichier.mac0000000 6e75 640d 7565 0d78 7274 696f 0d73 75710000020 7461 6572 630d 6e69 0d71 6973 0d78 65730000040 7470 0d0d 0d0d 0d0d0000050od -c monfichier.unix0000000 u n \r d e u x \r t r o i s \r q u0000020 a t r e \r c i n q \r s i x \r s e0000040 p t \r \r \r \r \r \r0000050Codage des fins de ligne sous Dos par les deux caracteres 0x0D et 0x0A.Codage des fins de ligne sous Unix par le seul caractere 0x0A.Codage des fins de ligne sous Macintosh par le seul caractere 0x0D.

Utiliser les commandes de comparaison de fichiers de Linux pour tester le contenu d'un mme fichier texte en version Unix et Dos.cmp monfichier.unix monfichier.dosmonfichier.unix monfichier.dossont diffrents: octet 3, ligne 1

diff monfichier.unix monfichier.dos1,12c1,12< un< deux< trois< quatre< cinq< six< sept cinq> six> sept>>>>>

diff monfichier.unix monfichier.mac1,12c1< un< deux< trois< quatre< cinq< six< sept> ~/Gros_fichier.$$ echo $file >> ~/$0.$$ done

script4.bash

Exercice 5 Crer un script permettant d'afficher la liste des fichiers du rpertoire /etc accessibles en lecture. Crer un script permettant d'afficher la liste des fichiers du rpertoire /etc accessibles en criture.for FILE in /etc/* do if test -r $FILE then echo $FILE fi done

script5a.bash

for FILE in /etc/* do if test -w $FILE then echo $FILE fi done

script5b.bash

Exercice 6Crer un script nomm "table" permettant d'afficher des tables de multiplication."table 5 10" aura pour rsultat l'affichage:0 x 5 = 01 x 5 = 52 x 5 = 103 x 5 = 154 x 5 = 205 x 5 = 256 x 5 = 307 x 5 = 358 x 5 = 409 x 5 = 4510 x 5 = 50for V in $(seq 0 $2) do echo $V" x "$1" = "$(expr $V "*" $1 ) done

table.bash

RETOUR

TP n3

RETOURDroits daccsPour cet exercice, vous crerez un utilisateur banalis Vous est-il possible de faire une copie du fichier /etc/passwd? Vous est-il possible de supprimer ou de modifier le fichier /etc/passwd?Rpeter ces tentatives en tant qu'utilisateur root.Expliquer la situation laide de la commande ls -l. A laide de la commande id, vrifier votre identit et le(s) groupe(s) au(x)quel(s) vous appartenez. Crer un petit fichier texte (de contenu quelconque), qui soit lisible par tout le monde, mais non modifiable (mme pas par vous). Crer un rpertoire nomm "Secret", dont le contenu est visible uniquement par vous mme.Les fichiers placs dans ce rpertoire sont-ils lisibles par dautres membres de votre groupe? Crer un rpertoire nomm "Connaisseurs" tel que les autres utilisateurs ne puissent pas lister son contenu mais puissent lire les fichiers qui y sont placs.On obtiendra:ls Connaisseursls : Connaisseurs: Permission deniedcat Connaisseurs/toto

Chercher dans le rpertoire /usr/bin des exemples de commandes ayant la permission SUID.De quelle genre de commande sagit-il?Les utilisateurs Votre compte d'utilisateur est-il dfini dans le fichier /etc/passwd? Pourquoi? Il y a-t-il d'autres alternatives? Quel est le rpertoire de connexion de lutilisateur root? Quel est le shell de lutilisateur root? Quelle est la particularit de lutilisateur nobody? Et de lutilisateur shutdown? Quels sont les utilisateurs dfinis dans /etc/passwd qui font partie du mme groupe que ladministrateur?Redirections, mta-caractresLe rpertoire /usr/include contient les fichiers dentte standards en langage C (stdlib.h, ...). Crer un rpertoire nomm inc dans votre rpertoire de connexion (HOME).En utilisant une seule commande, y copier les fichiers du rpertoire /usr/include dont le nom commence par std. Afficher la liste des fichiers de /usr/include dont le nom commence par a, b ou c. Modifier la commande de la question prcdente pour qu'au lieu dafficher le rsultat, celui-ci soit plac dans un fichier nomm "Abc.list" de votre rpertoire de connexion. Afficher le contenu de ce fichier en utilisant la commande cat.Copier avec cat son contenu dans un nouveau fichier nomm "Copie". Toujours avec cat, crer un nouveau fichier nomm "Double" form par la mise bout bout (concatnation) des fichiers "Abc.list" et "Copie".Vrifier que le nombre de lignes a bien doubl laide de la commande wc. Crer un fichier nomm "Temp" contenant une ligne de texte. Avec cat, ajouter la ligne"The end" la fin du fichier "Temp. En une seule ligne de commande, faire afficher le nombrede fichiers de /usr/include dont le nom contient la lettre t.find Afficher la liste des fichiers .h situs sous le rpertoire /usr/include. Afficher la liste des fichiers plus vieux que 3 jours situs sous votre rpertoire de connexion.head, tail, tubes Afficher les 5 premires, puis les 5 dernires lignes du fichier /etc/passwd. Afficher la 7ime ligne de ce fichier (et elle seule), en une seule ligne de commande.tr, more, tubes Afficher le fichier /etc/passwd en remplaant les caractres / par des X. Obtenir le rsultat prcdent page par page.Contrles d'accsUn administrateur dsire sassurer chaque matin que tous les fichiers placs sous $REPERTOIRE sont lisiblespar tout le monde, mais non modifiables except par leur propritaire. Quel doit tre le mode de ces fichiers et rpertoires? crire un script permettant dafficher la liste des fichiers d'un rpertoire et le type de chacun (utilisation de file et sort ) tri par type.Flux dE/S standardstudier la documentation de la commande tee. crire une commande qui affiche"Bonjour" lcran et en mme temps cre un fichier nomm "Salutation.txt" dont le contenu est le mme message. Ecrire un script qui lit une ligne de caractres sur son entre standard et lcrit sur sa sortie, en passant tous les caractres en majuscules. Modifiez votre script pour quil affiche le nombre de caractres traits sur sa sortie derreur. Crer un fichier texte quelconque. crire une seule commande shell qui recopie le contenu pass en majuscule de ce fichier dans un nouveau fichier nomm "Titre.txt" et affiche lcran le nombre de caractres traits.grep, cut, uniq, sort et tubestudier la documentation des commandes cut et uniq. Afficher la liste des rpertoires de connexion des utilisateurs dclars dans le fichier /etc/passwd. On rappelle qu chaque utilisateur est associ un interprteur de commandes (shell) lanc lors de son login. La commande correspondante est indique dans le 7ime champ du fichier /etc/passwd.Afficher en une ligne de commande lenombredinterprteurs de commandes diffrentsmentionns dans /etc/passwd. On dispose d'un fichier textetelephone.txtcontenant un petit carnet dadresses.Chaque ligne est de la forme "nom prenom numerotelephone". Les champs sont spars par des tabulations.Rpondre aux questions suivantes en utilisant chaque fois une ligne de commande shell: Afficher le carnet dadresse tri par ordre alphabtique de noms. Afficher le nombre de personnes dans le rpertoire. Afficher toutes les lignes concernant les Dupond. Afficher toutes les lignes ne concernant pasles Dupond. Afficher le numro de tlphone (sans le nom) du premier Dupond apparaissant dans le rpertoire. Afficher le numro de tlphone (sans le nom) du premier Dupond dans lordre alphabtique (ordre bas sur les prnoms).RETOUR

Corrections des exercices du TP n3

RETOURDroits daccs Essayer de supprimer ou de modifier le fichier /etc/passwd. Que se passe-t-il?Expliquer la situation laide de la commande ls -l.Il est impossible de supprimer le fichier /etc/passwd. Seul le propritaire (root) du fichier peut le supprimer.ls -l /etc/passwd-rw-r--r-- 1 root root 1705 2004-12-09 09:55 /etc/passwd A laide de la commande id, vrifier votre identit et le(s) groupe(s) au(x)quel(s) vous appartenez.iduid=1000(toto) gid=1000(toto) groupes=1000(toto) Crer un petit fichier texte nomm "Lecture" (de contenu quelconque), qui soit lisible par tout le monde, mais non modifiable (mme pas par vous).touch Lecturechmod 444 Lecture-r--r--r-- 1totototo 3 2004-12-09 09:55 Lecture Crer un rpertoire nomm "Secret", dont le contenu est visible uniquement par vous mme.Les fichiers placs dans ce rpertoire sont-ils lisibles par dautres membres de votre groupe?mkdir Secretchmod 700 Secretdrwx------ 2 toto toto 4096 2004-12-09 09:55 Secret Crer un rpertoire nomm "Connaisseurs" tel que les autres utilisateurs ne puissent pas lister son contenu mais puissent lire les fichiers qui y sont placs.On obtiendra:ls Connaisseursls : Connaisseurs: Permission deniedcat Connaisseurs/toto

mkdir Connaisseurschmod 711 Connaisseurs Chercher dans le rpertoire /usr/bin trois exemples de commandes ayant la permission SUID.De quelle genre de commande sagit-il?/usr/bin/passwd pour modifier son mot de passe/usr/bin/gpasswd pour administrer le fichier /etc/group/usr/bin/readcd pour lire et crire des cdCes commandes "travaillent" en tant que root mais peuvent tre endosses par d'autres utilisateursLes utilisateurs Votre compte d'utilisateur est-il dfini dans le fichier /etc/passwd? Pourquoi?Non, car les comptes sont dfinis globalement au sein d'un "domaine" NIS. Quel est le rpertoire de connexion de lutilisateur root?Le rpertoire de connexion de root est /root. Quel est le shell de lutilisateur root?Le shell est /bin/bash. Quelle est la particularit de lutilisateur nobody?Et de lutilisateur shutdown?L'utilisateur Nobody n'a pas de home valide, son home devient /. Quels sont les utilisateurs dfinis dans /etc/passwd qui font partie du mme groupe que ladministrateur?sync, postfix, sshd, partimag et distccd.Redirections, mta-caractresLe rpertoire /usr/include contient les fichiers dentte standards en langage C (stdlib.h, ...). Crer un rpertoire nomm inc dans votre rpertoire de connexion (HOME).En utilisant une seule commande, y copier les fichiers du rpertoire /usr/include dont le nom commence par std.mkdir inccp /usr/include/std* $HOME/inc Afficher la liste des fichiers de /usr/include dont le nom commence par a, b ou c.find /usr/include/ \( -name 'a*' -o -name 'b*' -o -name 'c*' \)oufind /usr/include/ -name [abc]* Modifier la commande de la question prcdente pour qu'au lieu dafficher le rsultat, celui-ci soit plac dans un fichier nomm "Abc.list" de votre rpertoire de connexion.find /usr/include/ \( -name 'a*' -o -name 'b*' -o -name 'c*' \) >$HOME/Abc.list Afficher le contenu de ce fichier en utilisant la commande cat.Copier avec cat son contenu dans un nouveau fichier nomm "Copie".cat Abc.list > copiewc Abc.list450 450 14861Abc.list Toujours avec cat, crer un nouveau fichier nomm "Double" form par la mise bout bout (concatnation) des fichiers "Abc.list" et "Copie".Vrifier que le nombre de lignes a bien doubl laide de la commande wc.cat Abc.list copie >doublewc double900 900 29722 double Crer un fichier nomm "Temp" contenant une ligne de texte.touch Temp Avec cat, ajouter une ligne The end la fin du fichier temp.cat >> tempThe endCTRL-d En une seule ligne, faire afficher le nombrede fichiers de /usr/include dont le nom contient la lettre t.ls /usr/include/[t]* | wc14 14 306find Afficher la liste des fichiers h situs sous le rpertoire /usr/include.find /etc -name "*.conf" Afficher la liste des fichiers plus vieux que 3 jours situs sous votre rpertoire de connexion.find $HOME -ctime +3head, tail, tubes Afficher les 5 premires, puis les 5 dernires lignes du fichier /etc/passwd.head -5 /etc/passwdtail -5 /etc/passwd Afficher la 7ime ligne de ce fichier (et elle seule), en une seule ligne de commande.head -n7 passwd | tail -n1tr, more, tubes Afficher le fichier /etc/passwd en remplaant les caractres / par des X.cat /etc/passwd | tr / X Obtenir le rsultat prcdent page par page.cat /etc/passwd | tr / X | moreContrles d'accsUn administrateur dsire sassurer chaque matin que tous les fichiers placs sous $REPERTOIRE sont lisiblespar tout le monde, mais non modifiables except par leur propritaire. Quel doit tre le mode de ces fichiers et rpertoires?fichiers: rwxr-xr-xrpertoires: rwxr-xr-x crire un script permettant dafficher la liste des fichiers d'un rpertoire et le type de chacun (utilisation de file et sort ) tri par type.#! /bin/bashfor i in `ls`dofile $i >>textdonemore text| sort -t: +1rm textFlux dE/S standards crire une commande qui affiche"Bonjour" lcran et en mme temps cre un fichier nomm "Salutation.txt" dont le contenu est le mme message.echo "Bonjour" |tee salutation.txt Ecrire un script qui lise une ligne de caractres sur son entre standard et lcrive sur sa sortie, en passant tous les caractres en majuscules.#! /bin/bashread aecho $a|tr "[a-z]" "[A-Z]" Modifiez votre script pour quil affiche le nombre de caractres traits sur sa sortie derreur.read aecho $a|tr "[a-z]" "[A-Z]"|tee text1 Crer un fichier texte quelconque. crire une seule commande shell qui recopie le contenu pass en majuscule de ce fichier dans un nouveau fichier nomm "Titre.txt" et affiche lcran le nombre de caractres traits.cat salutation.txt|tr "[a-z]" "[A-Z]"|tee text1|wc -cgrep, cut, uniq, sort et tubestudier la documentation des commandes cut et uniq. Afficher la liste des rpertoires de connexion des utilisateurs dclars dans le fichier /etc/passwd.cut -d: -f 6 passwd On rappelle qu chaque utilisateur est associ un interprteur de commandes (shell) lanc lors de son login. La commande correspondante est indique dans le 7ime champ du fichier /etc/passwd.Afficher en une ligne de commande lenombredinterprteurs de commandes diffrentsmentionns dans /etc/passwd.cut -d: -f 7 passwd|sort|uniq|wc -l On dispose d'un fichier textetelephone.txtcontenant un petit carnet dadresses.Chaque ligne est de la forme "nom prenom numerotelephone" les champs tant spars par des tabulations.Rpondre aux questions suivantes en utilisant chaque fois une ligne de commande shell: Afficher le carnet dadresse tri par ordre alphabtique de noms.sort telephone.txt Afficher le nombre de personnes dans le rpertoire.wc -l telephone.txt Afficher toutes les lignes concernant les Dupond.grep Dupond telephone.txt Afficher toutes les lignes ne concernant pasles Dupond.cat telephone.txt | grep -v "Dupond" Afficher le numro de tlphone (sans le nom) du premier Dupond apparaissant dans le rpertoire.grep Dupond telephone.txt|uniq -f 1|cut -d\; -f 3 Afficher le numro de tlphone (sans le nom) du premier Dupond dans lordre alphabtique (ordre bas sur les prnoms).sort telephone.txt|grep Dupond |uniq -f 1|cut -d\; -f 3RETOUR