Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1313 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  LIRE fichier executable SANS PERMISSION read

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

LIRE fichier executable SANS PERMISSION read

n°1013530
kryzantem
Posté le 21-02-2008 à 17:16:23  profilanswer
 

Bonjour,
 
OU, grosso modo, comment se fait-il que l'on puisse executer des fichiers sans pouvoir les lire ?
Exemple, si il y a un fichier executable avec les permissions --x--x--x ou 111, comment se fait-il que l'on puisse l'executer sans pour autant avoir les droits de lecture.... ?
En effet, pour executer un fichier ou un binaire, il faut bien pouvoir le lire, non ?
 
je suis sur qu'il y a une raison evidente dont je n'ai pas conscience, si c'est evident pour vous merci d'avance de m'eclairer sur cette bizarrerie :)
 
++


Message édité par kryzantem le 21-02-2008 à 17:16:47
mood
Publicité
Posté le 21-02-2008 à 17:16:23  profilanswer
 

n°1013586
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 21-02-2008 à 20:19:23  profilanswer
 


[nico:~] chmod 111 check_snmp_fmd.pl  
[nico:~] ./check_snmp_fmd.pl  
Can't open perl script "./check_snmp_fmd.pl": Permission non accordée


:spamafote:


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1013591
czh
Posté le 21-02-2008 à 21:08:37  profilanswer
 

black_lord a écrit :


[nico:~] chmod 111 check_snmp_fmd.pl  
[nico:~] ./check_snmp_fmd.pl  
Can't open perl script "./check_snmp_fmd.pl": Permission non accordée


:spamafote:


 
Ca c'est parce que c'est du script. Le kernel détermine si ton fichier est un binaire exécutable, en le lisant (enfin il le sait quoi). Si c'est un exécutable, il va l'exécuter sinon il en déduit que c'est un fichier texte il lit la première ligne qui est "#!/usb/bin/perl" (à ce moment je ne sais pas s'il faut absolument les droits en lecture, mais de toute façon ça revient au même, voir la suite). Il connait l'interpréteur donc il exécute l'interprétant en ton nom et flush le contenu du fichier sur le stdin de l'interpréteur, et là si tu n'as pas les droits en lecture, ça ne marchera de toute façon pas.
 
Pour revenir à la question, non tu n'as pas besoin de droit en lecture pour exécuter un binaire. C'est très utile pour faire des programmes avec le bit suid, pour éviter que l'on ne "pompe" le fichier pour voir ce qu'il contient.


Message édité par czh le 21-02-2008 à 21:24:25
n°1016262
kryzantem
Posté le 29-02-2008 à 03:51:38  profilanswer
 

merci de ces explications, ce que je ne saisis pas c'est la difference de traitement entre un fichier script executable et binaire executable.. Quand on lance un fichier binaire executable il s'execute egalement avec l'uid/gid de l'utilisateur l'appelant, comme pour un fichier script. Dans les 2 cas le fichier est de toute facon lu pour etre execute... bizarre je trouve...

Message cité 1 fois
Message édité par kryzantem le 29-02-2008 à 03:53:18
n°1016264
zecrazytux
Posté le 29-02-2008 à 04:01:47  profilanswer
 

kryzantem a écrit :

merci de ces explications, ce que je ne saisis pas c'est la difference de traitement entre un fichier script executable et binaire executable.. Quand on lance un fichier binaire executable il s'execute egalement avec l'uid/gid de l'utilisateur l'appelant, comme pour un fichier script. Dans les 2 cas le fichier est de toute facon lu pour etre execute... bizarre je trouve...


 
un binaire c'est du langage machine, ce n'est pas lu par l'os, contrairement à un script interprété qui est doit être lu par l'interpréteur (celui défini dans le shebang par exemple) afin d'en faire du code machine (compris directement par le cpu)


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
n°1016712
kryzantem
Posté le 01-03-2008 à 10:08:11  profilanswer
 

ben oui mais le code machine faut bien que le cpu le lise.... il faut bien que l'OS fasse le lien entre le materiel et logiciel.... sinon a quoi servirait-il ?

n°1016718
e_esprit
Posté le 01-03-2008 à 10:32:09  profilanswer
 

kryzantem a écrit :

ben oui mais le code machine faut bien que le cpu le lise.... il faut bien que l'OS fasse le lien entre le materiel et logiciel.... sinon a quoi servirait-il ?


Oui mais comme tu le dis, c'est l'OS qui l'execute, et c'est lui aussi qui gère les permissions, donc si t'as le droit en execution, il a droit de le lire pour toi :D


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°1016720
e_esprit
Posté le 01-03-2008 à 10:33:00  profilanswer
 

zecrazytux a écrit :


 
un binaire c'est du langage machine, ce n'est pas lu par l'os, contrairement à un script interprété qui est doit être lu par l'interpréteur (celui défini dans le shebang par exemple) afin d'en faire du code machine (compris directement par le cpu)


 [:mullet]


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°1016788
zecrazytux
Posté le 01-03-2008 à 11:38:19  profilanswer
 


 
t'as vu à quelle heure j'ai écris ça ?  :lol:


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
n°1017336
kryzantem
Posté le 03-03-2008 à 02:49:16  profilanswer
 

e_esprit a écrit :


Oui mais comme tu le dis, c'est l'OS qui l'execute, et c'est lui aussi qui gère les permissions, donc si t'as le droit en execution, il a droit de le lire pour toi :D


 
oui mais alors pourquoi ne peut-il pas faire la meme chose pour un fichier script executable : le lire pour moi pour lexecuter sans pour autant que j'ai le droit de le lire...  :pt1cable:

Message cité 1 fois
Message édité par kryzantem le 03-03-2008 à 02:49:40
mood
Publicité
Posté le 03-03-2008 à 02:49:16  profilanswer
 

n°1017353
DarkPengui​n
aka plut0nium.
Posté le 03-03-2008 à 08:59:42  profilanswer
 

kryzantem a écrit :

oui mais alors pourquoi ne peut-il pas faire la meme chose pour un fichier script executable : le lire pour moi pour lexecuter sans pour autant que j'ai le droit de le lire...  :pt1cable:

 

à mon avis, parce qu'executer un script revient à exécuter l'interpréteur (jusque là pas de problèmes), puis lire le contenu du fichier script pour ensuite l'envoyer sur l'entrée standard de l'interpréteur...

Message cité 1 fois
Message édité par DarkPenguin le 03-03-2008 à 09:01:09

---------------
Without evil there can be no good so it must be good to be evil sometimes...
n°1017356
e_esprit
Posté le 03-03-2008 à 09:06:46  profilanswer
 

Voila, c'est pas un vrai executable, c'est une facilité :D


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°1017810
kryzantem
Posté le 04-03-2008 à 06:08:27  profilanswer
 

DarkPenguin a écrit :


 
à mon avis, parce qu'executer un script revient à exécuter l'interpréteur (jusque là pas de problèmes), puis lire le contenu du fichier script pour ensuite l'envoyer sur l'entrée standard de l'interpréteur...


 
ca parait etre l'hypothese la plus probable :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  LIRE fichier executable SANS PERMISSION read

 

Sujets relatifs
Serveur de fichier, quel OS ?creer reseau sous linux pour partage de fichier entre vista et linux !
Afficher une ligne d'un fichier à partir d'un numéro de ligneLogiciel d'édition de fichier .ts
recherche contenu fichierzabbix_server
Attribuer des comptes et droits sur les fichier pour un nouveau prog[Résolu] [Openldap - acl ] Donner le droit de lire le schema ?
Vue graphique d'un fichier audio 
Plus de sujets relatifs à : LIRE fichier executable SANS PERMISSION read


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR