dovrei fare un programmino che esegue anche comandi che riechiedono permessi elevati su linux/mac.
c'è la poassiblità di far interagire java con la richiesta di permessi di linux/mac?
dovrei fare un programmino che esegue anche comandi che riechiedono permessi elevati su linux/mac.
c'è la poassiblità di far interagire java con la richiesta di permessi di linux/mac?
si può fare, con la prima chiamata devi fare una chmod con la seconda eseguire.
Resta il problema della privacy, visto che dal tuo programma le pass di sistema passano in chiaro (devi acquisirla per poter lanciare il chmod) e non è il top.
L'ideale sarebbe
1. eseguire il programma con i giusti permessi
2. cambiar e i permessi prima assicurandoli per le strutture che ti interessano
scusami nn ti ho seguito molto.Originariamente inviato da valia
si può fare, con la prima chiamata devi fare una chmod con la seconda eseguire.
Resta il problema della privacy, visto che dal tuo programma le pass di sistema passano in chiaro (devi acquisirla per poter lanciare il chmod) e non è il top.
L'ideale sarebbe
1. eseguire il programma con i giusti permessi
2. cambiar e i permessi prima assicurandoli per le strutture che ti interessano
provo a fare un esempio.
supponiamo che debba eseguire comando:
questo richiede permessi di root.codice:nmap -sS -O 192.168.1.1/24
quindi o lo si lancia da root o con sudo.
io nn posso eseguire un chmod per cambiare i permessi su questo comando.
come faccio a fare in modo che venga eseguito con i permessi giusti?
fai eseguire la tua app con i permessi di root
oppure prima di fare nmap devi acquisire i diritti di root ed eseguire con quelli
oppure aggiungi il tuo utente a quelli ammessi per quel comando
la terza e la prima mi sembrano le migliori
ok, solo un'ultima cosa.Originariamente inviato da valia
fai eseguire la tua app con i permessi di root
oppure prima di fare nmap devi acquisire i diritti di root ed eseguire con quelli
oppure aggiungi il tuo utente a quelli ammessi per quel comando
la terza e la prima mi sembrano le migliori
è possibile fare un controllo sui permessi con il quale viene eseguito il comando?
ad esempio se uno esegue quel comando da terminale senza i permessi vieni restituito un messaggio.
è possibile passare quel messaggio o cmq dire all'utente "Non hai i permessi necessari, esegui il programma da root"??
devi prendere 2 cose:
1. il valore di ritorno della exec e vedere se non è quello valido (se non ricordo male 0 è andato tutto ok, un qualsiasi valore differente è errore.)
2. se cmq noti che per te exec va a buon fine (cioè che la exec considera eseguito il comando anche se finito con errore), devi prendere i vari stream (stdout e stderr) e parsarli alla ricerca del messaggio di errore
perfetto grazie, vedo che riesco a fare!!Originariamente inviato da valia
devi prendere 2 cose:
1. il valore di ritorno della exec e vedere se non è quello valido (se non ricordo male 0 è andato tutto ok, un qualsiasi valore differente è errore.)
2. se cmq noti che per te exec va a buon fine (cioè che la exec considera eseguito il comando anche se finito con errore), devi prendere i vari stream (stdout e stderr) e parsarli alla ricerca del messaggio di errore