Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
NostalGeek
19 mai 2008

Exécution impossible d'un programme compilé en root ou chmod 777

Bonjour à tous,

Voici beaucoup de temps que je n'ai pas posté, et pour changer je vais faire un petit billet informatique. J'ai voulu tester si j'étais capable de compiler du un petit programme de test en langage C sur ma nouvelle machine afin de voir si tout fonctionnait.

On commence par écrire un programme bidon :

teddy@Dreamland:/mnt/datas_ext3/projets/tree_generator$ cat test.c
# include

int main (int argc, char **argv)
{                
printf("bonjour \n") ;
return 0 ;        
}

on le compile joyeusement sans problèmes :


Et au lancement du programme, erreur de permissions, ceci même en compilant et exécutant en root, alors que celui-ci est censé passer outre les permissions.

teddy@Dreamland:/mnt/datas_ext3/projets/tree_generator$ gcc -Wall test.c -o test.c teddy@Dreamland:/mnt/datas_ext3/projets/tree_generator$ ls -l
total 8 -rwxr-xr-x 1 teddy teddy 6441 2008-05-19 14:22 test.c teddy@Dreamland:/mnt/datas_ext3/projets/tree_generator$ ./test.c
bash: ./test.c: Permission non accordée teddy@Dreamland:/mnt/datas_ext3/projets/tree_generator$

Alors d'ou ça peut venir ? Eh bien d'un truc qui n'a rien à voir, je travaillais sur une partition dédiée dont les options de montages indiquait noexec, donc interdiction d'executer quoi que ce soit. Une fois le fichier copié/collé sur mon home, ça fonctionne.

Rien de tel qu'un bon cas pratique pour comprendre à quoi sert cette option ^^

Publicité
Publicité
Commentaires
T
En fait j'utilise gcc directement car c'est le compilateur qui est disponible pour le plus de système différentes. Et puis franchement, quand on est assez cinglé pour vouloir faire du C, autant se faire du mal jusqu'au bout ;-)<br /> <br /> Si ça se trouve en plus le 1% qui y comprend quelque chose ne vient pas sur mon blog :-/<br /> <br /> C'est la vocation des grands artistes de publier des choses incompréhensibles ;-)
S
C'est surement un blasphème, mais... compiler sous Codeblocks ou un truc du genre, ça serait pas aussi bien ? C'est déjà bien assez lourd de pas faire d'erreurs dans le C, alors si en plus il faut se taper un compilateur foireux... Enfin moi je dis ça, en même temps j'y connais rien, donc bon. De toute façon t'as résolu ton problème, non ? C'était le noexec qui te faisait une blague ?<br /> <br /> A la réflexion, le billet est très drôle. Je pense pas qu'1% des gens y comprennent quoique ce soit.
NostalGeek
Publicité
Publicité