PDA

View Full Version : [C/Bash - Linux] Avviare un processo con permessi di root


Gica78R
26-10-2007, 17:18
Ciao!

Dovrei scrivere un programma C, oppure un mini script Bash, che, avviato da un utente normale, effettui la richiesta della password per poi proseguire avendo i permessi di amministratore. Sapete se c'è una funzione "preconfezionata" che faccia tutto ciò? Se non ho reso bene l'idea, ditemelo che cerco di spiegarmi meglio! :)


Ciau

cionci
27-10-2007, 09:09
Deve girare in un sistema dove l'utente è fra i sudoers ? In tal caso potresti mettere i comandi da eseguire con i permessi di root con sudo davanti ;)

Gica78R
27-10-2007, 11:17
Deve girare in un sistema dove l'utente è fra i sudoers?

No, il programma deve essere avviabile da chiunque e, nel momento in cui c'è da eseguire delle operazioni privilegiate, deve chiedere la password di root ed avviare i processi con uid=0. E' il procedimento che consente di ottenere l'autorizzazione che mi interessa capire. Hai presente, ad esempio, installazione di un pacchetto su Linux con Autopackage? Ad un certo punto ti viene chiesta la password di root per installare il pacchetto "system-wide"; se la password non ce l'hai allora il pacchetto viene installato solo per l'utente che sta facendo l'installazione. Ecco, vorrei sapere come si fa una cosa del genere, cioè avviare un processo con uid=0 dopo aver richiesto in input la password di amministratore. :)

thehuge
27-10-2007, 19:03
prova con

!#/bin/bash

<comandi_da_eseguire_con_privilegi_normali>

su -c "<comandi_da_eseguire_con_privilegi_di_root>"

<comandi_da_eseguire_con_privilegi_normali>

Gica78R
29-10-2007, 21:18
prova con

!#/bin/bash

<comandi_da_eseguire_con_privilegi_normali>

su -c "<comandi_da_eseguire_con_privilegi_di_root>"

<comandi_da_eseguire_con_privilegi_normali>



Così funziona, grazie! :)

Ora non ho tempo, ma vorrei capire come fare la stessa cosa con un programma C :rolleyes:

Ciao