Problème d'accès à la fonction : " setuid ", sous Kubuntu.
Bonjour.
Je cherche à être super utilisateur dans un programme en C++, je dois accéder aux port parallèles du PC.
J'ai donc mis ; setuid (0) dans le main, pour pouvoir obtenir une autorisation : ioperm(0x300,3,1).
Cependant cela ne passe pas.
Apparemment c'est un problème de montage de disque, la partie du disque ou est placé mon compilateur QT, et g++ interdit les exécution setuid .
Je suis sous Kubuntu.
Comment faire pour pouvoir compiler directement avec QT et g++, en exécutant des fonctions : " setuid " ?
Voici le main :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
setuid (0);
ioperm(0x300,3,1);
/* Obtention de l'accès aux ports */
if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);}
/* Initialisation de tous les signaux de données (D0-D7) à l'état bas (0) */
outb(0, BASEPORT);
/* Dormons pendant un moment (100 ms) */
usleep(100000);
/* Lecture sur le port d'état (BASE+1) et affichage du résultat */
cout << inb(BASEPORT + 1);
cout << endl;
/* Nous n'avons plus besoin de l'accès aux ports */
if (ioperm(BASEPORT, 3, 0)) {perror("ioperm"); exit(1);} |
Merci.