[c] linux ioperm non-root user
#1 Guest__*
Inviato 08 febbraio 2012 - 12:44
#3 Guest__*
Inviato 08 febbraio 2012 - 12:47
...li non risponde nessuno...never http://www.hwupgrade...tyle_emoticons/default/forever_alone.png ...
#4
Inviato 08 febbraio 2012 - 14:15
ioperm() is a privileged function: non-root users cannot use it. If they were able to use it, they could rewrite the entire disk (or any portion of it) without permission, by interfacing with the low-level IDE hardware directly. This is obviously a Bad Thing.
sudo?
FIRMA FOTTUTAMENTE EDITATA. IL FOTTUTO STAFF.
Mai più giorni felici
#5
Inviato 08 febbraio 2012 - 14:16
FIRMA FOTTUTAMENTE EDITATA. IL FOTTUTO STAFF.
Mai più giorni felici
#6 Guest__*
Inviato 08 febbraio 2012 - 15:08
cioè, puoi anche dare un chmod a ioperm, ma è il caso?
...ioperm è un comando c non linux...
#7
Inviato 08 febbraio 2012 - 15:15
...ioperm è un comando c non linux...[/quote]
chmod 4755 tuo_programma ?
FIRMA FOTTUTAMENTE EDITATA. IL FOTTUTO STAFF.
Mai più giorni felici
#8
Inviato 08 febbraio 2012 - 15:16
FIRMA FOTTUTAMENTE EDITATA. IL FOTTUTO STAFF.
Mai più giorni felici
#9 Guest__*
Inviato 08 febbraio 2012 - 16:11
#10
Inviato 08 febbraio 2012 - 16:18
Quelle dovrebbero essere usate solo in ambiti ristretti quali script di installazione, programmi di diagnostica, drivers...
Non certo per un normale programma che dovrebbe girare in user-space...
#11 Guest__*
Inviato 08 febbraio 2012 - 16:26
perche' vuoi usare una istruzione privilegiata per scrivere?
Quelle dovrebbero essere usate solo in ambiti ristretti quali script di installazione, programmi di diagnostica, drivers...
Non certo per un normale programma che dovrebbe girare in user-space...
...è un driver per pilotare una scheda IO esterna http://www.hwupgrade...tyle_emoticons/default/poker.png
#12 Guest__*
Inviato 08 febbraio 2012 - 16:31
#13
Inviato 08 febbraio 2012 - 17:31
ah ok
@[/url]":246zb58u] perche' vuoi usare una istruzione privilegiata per scrivere?
Quelle dovrebbero essere usate solo in ambiti ristretti quali script di installazione, programmi di diagnostica, drivers...
Non certo per un normale programma che dovrebbe girare in user-space...
...è un driver per pilotare una scheda IO esterna http://www.hwupgrade...tyle_emoticons/default/poker.png
#14
Inviato 08 febbraio 2012 - 22:19
...normalmente pilotiamo l'automazione tramite 232 o 485...in questo caso verrà usata una scheda IO direttamente connessa alla motherboard...ora devo decidere se lo strato rimane prerogativa di root e viene richiamato come servizio sfruttando un socket o se richiamare uno script abilitato al pilotaggio...
Dovresti scrivere un vero e proprio device driver da caricare come modulo del kernel ed usare ioctl(), lo sai?
Quello che ti conviene fare a sto punto è un demone che droppa le permission con setuid() dopo aver usato ioperm() sulle porte che ti interessano e parlarci via socket (attento solo a fare il tutto dopo la fork()...). Se sei in un rapporto un server un client non dovrebbe essere troppo difficile...
#15 Guest__*
Inviato 09 febbraio 2012 - 08:37
@[/url]":18ujla04] ...normalmente pilotiamo l'automazione tramite 232 o 485...in questo caso verrà usata una scheda IO direttamente connessa alla motherboard...ora devo decidere se lo strato rimane prerogativa di root e viene richiamato come servizio sfruttando un socket o se richiamare uno script abilitato al pilotaggio...
Dovresti scrivere un vero e proprio device driver da caricare come modulo del kernel ed usare ioctl(), lo sai?
Quello che ti conviene fare a sto punto è un demone che droppa le permission con setuid() dopo aver usato ioperm() sulle porte che ti interessano e parlarci via socket (attento solo a fare il tutto dopo la fork()...). Se sei in un rapporto un server un client non dovrebbe essere troppo difficile...
...purtroppo il tempo non è tantissimo...se la scheda IO verrà usata per cose piu' evolute scriverò una libreria apposita...