View Full Version : [Linux] Sudo da codice
tomminno
06-01-2008, 14:07
Sto cercando di acquisire il seriale di un HD, ma non posso eseguire l'ioctl da utente.
E' possibile eseguire delle istruzioni con privilegi superiori?
Oppure sono obbligato a prendere il codice realizzare un programma esterno ed eseguire sudo su quel programma?
E come si fa a passare la password del sudoer da codice?
stdecden
06-01-2008, 14:46
Dovrebbe anche andare senza, pensa a synaptic
Dipende tutto dai privilegi con cui gira il tuo eseguibile, se gira con i privilegi di super utente puoi accedere alle informazioni che ti servono.
Un modo per farlo girare con i privilegi di super utente è lanciarlo con sudo, in alternativa è fare il suid dell'eseguibile creato.
tomminno
07-01-2008, 13:08
Dovrebbe anche andare senza, pensa a synaptic
Su fedora yum ha bisogno dei permessi di root, e nel mio caso non deve esserci interazione con l'utente.
Solo che mi scoccerebbe dover dare dei privilegi inutili ad un processo che ha solo la necessità di leggere il seriale dell'HD.
tomminno
07-01-2008, 13:10
Dipende tutto dai privilegi con cui gira il tuo eseguibile, se gira con i privilegi di super utente puoi accedere alle informazioni che ti servono.
Un modo per farlo girare con i privilegi di super utente è lanciarlo con sudo, in alternativa è fare il suid dell'eseguibile creato.
Il problema è che tutto deve essere automatizzato, probabilmente non ci sarà nemmeno la tastiera sul computer di destinazione.
Come faccio da codice a mandare la password dell'utente a qualcosa come questo?
system("sudo ./serial");
Dovrebbe anche andare senza, pensa a synaptic
Synaptic necessita dei permessi di root, infatti viene lanciato con gksu. L'utente che lo lancia deve essere fra i sudoers.
Il problema è che tutto deve essere automatizzato, probabilmente non ci sarà nemmeno la tastiera sul computer di destinazione.
Come faccio da codice a mandare la password dell'utente a qualcosa come questo?
system("sudo ./serial");
Appunto...il suid è la cosa migliore...
Non dovresti usare sudo all'interno del tuo eseguibile, ma dovresti lanciare il tuo eseguibile con sudo.
tomminno
07-01-2008, 13:52
Appunto...il suid è la cosa migliore...
Non dovresti usare sudo all'interno del tuo eseguibile, ma dovresti lanciare il tuo eseguibile con sudo.
Ok setto il SUID, però a questo punto c'è bisogno di qualcuno davanti al computer che immetta la password, mentre deve essere tutto automatizzato.
L'unica soluzione mi pare quella di un login privilegiato a quel punto non avrei più bisogno di sudo, che era quello che volevo evitare.
EDIT Se uso il bit SUID e concedendo l'accesso all'user non mi viene chiesta la password giusto?
Con il suid non c'è bisogno della password ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.