s'il vous plait je veut savoir comment on peut bloqué une option d'une commande
par exemple comment bloqué l'option -l pour la commande ls
merci d'avance .
s'il vous plait je veut savoir comment on peut bloqué une option d'une commande
par exemple comment bloqué l'option -l pour la commande ls
merci d'avance .
De manière simple, tu ne peux pas.
De manière compliquée, tu peux :
- réécrire la commande ls
- patcher la commande ls de manière à ce qu'elle ne réagisse plus à cette option
La 2eme option est carrément sale
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
CafuroCafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbeUn logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
tu peux aussi renomer ls en ls.original
et utiliser un alias de ls qui contient par exemple "ls.original -rt"
dans le .profile de l'utilisateur ou son .bashrc
et ainsi cet utilisateur est limiter à ces options mais c'est pas infaillible surtout si l'utilisateur n'est pas chrooté, il lui suffit de faire un ls dans /bin pour trouver l'astuce...
D'autant plus que ça ne va pas forcément résoudre le problème
Pourquoi vouloir bloquer une option à une commande ?
Dans ton exemple, il est ultra simple de contourner ce genre de blocage ! Par exemple, en utilisant un petit script perl. Ou encore, en téléchargeant les sources de ls et en les compilant
Ci-dessous, j'ai modifié les droits de la commande "ls" pour qu'elle ne soit plus exécutable par les utilisateurs (c'est un peu plus violent que ton blocage, mais c'est pour l'exemple).
J'ai ensuite codé un petit script perl "ls.pl" que je lance et qui m'affiche bien le contenu du répertoire...
Bon, c'est minimaliste (je n'ai pas fait de conversion des uid/gid vers le vrai nom), mais c'était pour l'exemple...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 $ ls -bash: /bin/ls: Permission denied $ cat ls.pl #!/usr/bin/perl $rep=$#ARGV?".":$ARGV[0]; opendir my $fh_rep, $rep or die "impossible d'ouvrir le répertoire $rep: $!\n"; my @fic_rep = grep { !/^\.\.?$/ } readdir $fh_rep; foreach $fic (@fic_rep) { ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat($fic); printf "%04o\t%s:%s\t%s\t%s\n", $mode & 07777, $uid, $gid, scalar localtime $mtime, $fic; } $ perl ~/test/ls.pl 0644 1003:100 Thu Apr 7 14:46:23 2011 A-large.in 0644 1003:100 Thu Apr 7 16:39:05 2011 A-prog.pl 0644 1003:100 Thu Apr 7 16:39:11 2011 A-large.pl.out 0644 1003:100 Thu Apr 7 14:33:26 2011 A-small.in 0644 1003:100 Thu Apr 7 14:45:35 2011 A-small.py.out 0644 1003:100 Thu Apr 7 16:57:58 2011 B-sample.in 0644 1003:100 Thu Apr 7 14:45:21 2011 A-small.pl.out 0644 1003:100 Thu Apr 7 18:02:53 2011 B-small.out 0644 1003:100 Thu Apr 7 18:08:53 2011 input.txt 0644 1003:100 Thu Apr 7 18:04:39 2011 B.cpp 0644 1003:100 Thu Apr 7 18:02:36 2011 B-small.in 0644 1003:100 Thu Apr 7 14:37:36 2011 A-sample.in 0644 1003:100 Thu Apr 7 14:43:00 2011 A-prog.py 0644 1003:100 Thu Apr 7 14:47:40 2011 A-large.py.out 0644 1003:100 Thu Apr 7 18:02:15 2011 B-prog.pl 0644 1003:100 Thu Apr 7 18:09:01 2011 output.txt
Seconde exemple en compilant ls :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 $ wget http://ftp.gnu.org/pub/gnu/coreutils/coreutils-8.9.tar.gz $ tar xvzf coreutils-8.9.tar.gz $ cd coreutils-8.9 $ ./configure $ make $ cd .. $ cp coreutils-8.9/src/ls . $ ls -bash: /bin/ls: Permission denied $ ./ls -l total 428 -rw-r--r-- 1 senga users 1353 Apr 7 14:46 A-large.in -rw-r--r-- 1 senga users 2018 Apr 7 16:39 A-large.pl.out -rw-r--r-- 1 senga users 2018 Apr 7 14:47 A-large.py.out -rw-r--r-- 1 senga users 461 Apr 7 16:39 A-prog.pl -rw-r--r-- 1 senga users 416 Apr 7 14:43 A-prog.py -rw-r--r-- 1 senga users 30 Apr 7 14:37 A-sample.in -rw-r--r-- 1 senga users 805 Apr 7 14:33 A-small.in -rw-r--r-- 1 senga users 1539 Apr 7 14:45 A-small.pl.out -rw-r--r-- 1 senga users 1539 Apr 7 14:45 A-small.py.out ...
merci a vous pour votre temps
c'est résolut![]()
Ça serait bien de dire comment c'est résolu
Et je me permets d'insister : mon message précédent est parfaitement légitime malgré le petit vote négatif qui est, comme bien souvent, super utile.
Que tu modifies le ls de base de ta distribution, que tu fasses un alias, etc... tu ne pourras jamais empêcher quelqu'un qui veut accéder à ces infos d'y accéder, donc je pense qu'il faut revoir le problème... à savoir, pourquoi chercher à bloquer
Code : Sélectionner tout - Visualiser dans une fenêtre à part ls -l
Salut tout le monde,
Je remonte le sujet parce que je viens de tomber sur lshell, qui apparemment se prête bien à la demande initiale et plus si affinité...
![]()
Intéressant comme projet, mais bon, si tu es obligé de bloquer perl, gcc, etc... ça peut devenir compliqué :p
Je ne vois pas comment empêcher quelqu'un qui le veut d'avoir accès à une commande aussi basique que ls sur un système standard.
Même si tout est bloqué, qu'est ce qui l'empêche de compiler ls sur un autre système et de le récupérer ?
'fin bref, my 2 cents![]()
Partager