Vous êtes sur la page 1sur 9
WWW.RESEAUMAROC.COM Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact :

WWW.RESEAUMAROC.COM

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

Corrections des exercices du TP n°3

Droits d’accès

Essayer de supprimer ou de modifier le fichier /etc/passwd. Que se passe-t-il? Expliquer la situation à l’aide de la commande ls -l.

Il est impossible de supprimer le fichier /etc/passwd. Seul le propriétaire (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 l’aide de la commande id, vérifier votre identité et le(s) groupe(s) au(x)quel(s) vous appartenez.

id uid=1000(toto) gid=1000(toto) groupes=1000(toto)

Créer un petit fichier texte nommé "Lecture" (de contenu quelconque), qui soit lisible par tout le monde, mais non modifiable (même pas par vous).

touch Lecture chmod 444 Lecture -r--r--r-- 1 toto toto 3 2004-12-09 09:55 Lecture

Créer un répertoire nommé "Secret", dont le contenu est visible uniquement par vous même. Les fichiers placés dans ce répertoire sont-ils lisibles par

WWW.RESEAUMAROC.COM Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact :

WWW.RESEAUMAROC.COM

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

d’autres membres de votre groupe?

mkdir Secret chmod 700 Secret drwx------ 2 toto toto 4096 2004-12-09 09:55 Secret

Créer un répertoire nommé "Connaisseurs" tel que les autres utilisateurs ne puissent pas lister son contenu mais puissent lire les fichiers qui y sont placés. On obtiendra:

ls Connaisseurs ls : Connaisseurs: Permission denied cat Connaisseurs/toto

<

le

contenu du fichier toto (s’il existe)

mkdir Connaisseurs chmod 711 Connaisseurs

>

Chercher dans le répertoire /usr/bin trois exemples de commandes ayant la permission SUID. De quelle genre de commande s’agit-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 cd

Ces commandes "travaillent" en tant que root mais peuvent être endossées par d'autres utilisateurs

Les utilisateurs

Votre compte d'utilisateur est-il défini dans le fichier /etc/passwd? Pourquoi?

Non, car les comptes sont définis globalement au sein d'un "domaine"

WWW.RESEAUMAROC.COM Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact :

WWW.RESEAUMAROC.COM

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

NIS.

Quel est le répertoire de connexion de l’utilisateur root?

Le répertoire de connexion de root est /root.

Quel est le shell de l’utilisateur root?

Le shell est /bin/bash.

Quelle est la particularité de l’utilisateur nobody? Et de l’utilisateur shutdown?

L'utilisateur Nobody n'a pas de home valide, son home devient /.

Quels sont les utilisateurs définis dans /etc/passwd qui font partie du même groupe que l’administrateur?

sync, postfix, sshd, partimag et distccd.

Redirections, méta-caractères

Le répertoire /usr/include contient les fichiers d’entête standards

en langage C (stdlib.h,

).

Créer un répertoire nommé inc dans votre répertoire de connexion (HOME). En utilisant une seule commande, y copier les fichiers du répertoire /usr/include dont le nom commence par std.

mkdir inc cp /usr/include/std* $HOME/inc

Afficher la liste des fichiers de /usr/include dont le nom commence par a, b ou c.

WWW.RESEAUMAROC.COM Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact :

WWW.RESEAUMAROC.COM

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

find /usr/include/ \( -name 'a*' -o -name 'b*' -o -name 'c*' \)

ou

find /usr/include/ -name [abc]*

Modifier la commande de la question précédente pour qu'au lieu d’afficher le résultat, celui-ci soit placé dans un fichier nommé "Abc.list" de votre répertoire 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 > copie wc Abc.list

450 450 14861 Abc.list

Toujours avec cat, créer un nouveau fichier nommé "Double" formé par la mise bout à bout (concaténation) des fichiers "Abc.list" et "Copie". Vérifier que le nombre de lignes a bien doublé à l’aide de la commande wc.

cat Abc.list copie >double wc double

900 900 29722 double

Créer un fichier nommé "Temp" contenant une ligne de texte.

touch Temp

Avec cat, ajouter une ligne “The end” à la fin du fichier “temp”.

cat >> temp The end

WWW.RESEAUMAROC.COM Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact :

WWW.RESEAUMAROC.COM

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

CTRL-d

En une seule ligne, faire afficher le nombre de fichiers de /usr/include dont le nom contient la lettre t.

ls /usr/include/[t]* | wc 14 14 306

find

Afficher la liste des fichiers h situés sous le répertoire /usr/include.

find /etc -name "*.conf"

Afficher la liste des fichiers plus vieux que 3 jours situés sous votre répertoire de connexion.

find $HOME -ctime +3

head, tail, tubes

Afficher les 5 premières, puis les 5 dernières lignes du fichier /etc/passwd.

head -5 /etc/passwd tail -5 /etc/passwd

Afficher la 7ième ligne de ce fichier (et elle seule), en une seule ligne de commande.

head -n7 passwd | tail -n1

tr, more, tubes

Afficher le fichier /etc/passwd en remplaçant les caractères / par des X.

WWW.RESEAUMAROC.COM Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact :

WWW.RESEAUMAROC.COM

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

cat /etc/passwd | tr / X

Obtenir le résultat précédent page par page.

cat /etc/passwd | tr / X | more

Contrôles d'accès

Un administrateur désire s’assurer chaque matin que tous les fichiers placés sous $REPERTOIRE sont lisibles par tout le monde, mais non modifiables excepté par leur propriétaire.

Quel doit être le mode de ces fichiers et répertoires?

fichiers: rwxr-xr-x répertoires: rwxr-xr-x

Écrire un script permettant d’afficher la liste des fichiers d'un répertoire et le type de chacun (utilisation de file et sort ) trié par type.

#! /bin/bash for i in `ls` do file $i >>text done more text| sort -t: +1 rm text

Flux d’E/S standards

Écrire une commande qui affiche "Bonjour" à l’écran et en même temps crée un fichier nommé "Salutation.txt" dont le contenu est le même message.

echo "Bonjour" |tee salutation.txt

WWW.RESEAUMAROC.COM Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact :

WWW.RESEAUMAROC.COM

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

Ecrire un script qui lise une ligne de caractères sur son entrée standard et l’écrive sur sa sortie, en passant tous les caractères en majuscules.

#! /bin/bash read a echo $a|tr "[a-z]" "[A-Z]"

Modifiez votre script pour qu’il affiche le nombre de caractères traités sur sa sortie d’erreur.

read a echo $a|tr "[a-z]" "[A-Z]"|tee text1

Créer 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 à l’écran le nombre de caractères traités.

cat salutation.txt|tr "[a-z]" "[A-Z]"|tee text1|wc -c

grep, cut, uniq, sort et tubes

Étudier la documentation des commandes cut et uniq.

Afficher la liste des répertoires de connexion des utilisateurs déclarés dans le fichier /etc/passwd.

cut -d: -f 6 passwd

On rappelle qu’à chaque utilisateur est associé un interpréteur de commandes (shell) lancé lors de son login. La commande correspondante est indiquée dans le 7ième champ du fichier /etc/passwd. Afficher en une ligne de commande le nombre d’interpréteurs

WWW.RESEAUMAROC.COM Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact :

WWW.RESEAUMAROC.COM

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

de commandes différents mentionnés dans /etc/passwd.

cut -d: -f 7 passwd|sort|uniq|wc -l

On dispose d'un fichier texte telephone.txt contenant un petit carnet d’adresses. Chaque ligne est de la forme "nom prenom numerotelephone" les champs étant séparés par des tabulations. Répondre aux questions suivantes en utilisant à chaque fois une ligne de commande shell:

o

Afficher le carnet d’adresse trié par ordre alphabétique de noms.

sort telephone.txt

o

Afficher le nombre de personnes dans le répertoire.

wc -l telephone.txt

o

Afficher toutes les lignes concernant les “Dupond”.

grep Dupond telephone.txt

o

Afficher toutes les lignes ne concernant pas les “Dupond”.

cat telephone.txt | grep -v "Dupond"

o

Afficher le numéro de téléphone (sans le nom) du premier “Dupond” apparaissant dans le répertoire.

grep Dupond telephone.txt|uniq -f 1|cut -d\; -f 3

o

Afficher le numéro de téléphone (sans le nom) du premier “Dupond” dans l’ordre alphabétique (ordre basé sur les prénoms).

WWW.RESEAUMAROC.COM Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact :

WWW.RESEAUMAROC.COM

Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux. Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964