Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/01/2011, 13h24   #1
Invité régulier
 
nico nico
Inscription : novembre 2009
Messages : 44
Détails du profil
Informations personnelles :
Nom : nico nico

Informations forums :
Inscription : novembre 2009
Messages : 44
Points : 7
Points : 7
Par défaut Aide création d'une commande

Bonjour forumeurs,

J'ai actuellement un petit devoir à faire et j'aimerais avoir un peu d'aide.

On doit créer une commande qui vérifie les bituisd des fichiers pour voir si ils ont été modifié ou pas.

la commande s'appelle chksuid et doit avoir comme option :

-c : qui crée le fichier qui va servir de référence
-f : qui va servir a l'utilisateur pour indiquer le répertoire vers lequel le il veut que le fichier de reference soit créer.

Première question est ce que déja le code vous semble cohérent, il marche mais y'a surement moyen de mieux faire. (première fois que j'utilise getops).

Secundo, avez-vous un début d'idée sur comment comparé les deux fichiers de référencement et rajouter dans le deuxième les infos comme quoi un fichier a été modifié ? (peut-être un awk ?)

Voila le code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#! /bin/bash
 
 
 
man() {
 
        echo "+"
 
        echo "+ +" $nom [-c] [-f nomRépertoire]
 
        echo "+ +" $nom [-a]
 
        echo "+"
 
        }
 
 
 
if [ $# -eq 1 -a "$1" = -h ];then man;exit 2;fi
 
 
 
errOption=3
 
rep=./refsuid
 
 
 
while getopts "cf:v" OPTION
 
        do
 
        case $OPTION in
 
        c)
 
        if [ "$2" = -f ]
 
        then
 
        rep=$3
 
        fi
 
        find / -perm /u+s -type f >$rep 2>/dev/null
 
        pwd $rep | xargs -i echo {} >./emplacement
 
        ;;
 
        :)
 
        echo "Nom de répertoire absent"
 
        ;;
 
        v)
 
        cat ./rep | xargs ls -l
 
        ;;
 
        esac
 
        done
merci d'avance
Bonne journée.
PoP_NicoW est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 14h44   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 069
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 069
Points : 4 145
Points : 4 145
Bonjour,

l'exposé du sujet de l'exercice n'est pas clair.
entre autre :
Citation:
créer une commande qui vérifie les bituisd des fichiers pour voir si ils ont été modifié ou pas
comment puis-je connaître l'état précédent d'une chose que j'observe pour la première fois ?

avec test -u un_ficher
je peux savoir si le bit setuid est mis sur un fichier...

getopts devrait vérifier toutes les options (même -h)
la boucle while permet de répéter getopts pour les passer en revue, donc ce n'est pas la peine de chercher -f dans le cas de -c

pwd n'accepte pas d'argument
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 15h05   #3
Invité régulier
 
nico nico
Inscription : novembre 2009
Messages : 44
Détails du profil
Informations personnelles :
Nom : nico nico

Informations forums :
Inscription : novembre 2009
Messages : 44
Points : 7
Points : 7
merci pour les précisions.
En faite la commande on la lance une fois qui va créer le fichier de référencement puis on la lance une seconde fois avec une autre option pour verifier par rapport au premier fichier créé

J'espère avoir été clair

merci.
PoP_NicoW est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h43.


 
 
 
 
Partenaires

Hébergement Web