Normalmente, quando si usa un sistema linux, non si dovrebbe lavorare con l'utente root, ma bisognerebbe utilizzare un differente utente senza tutti i diritti "amministrativi".
A questo punto si verifica un problema, come si fa a eseguire programmi che solo root può eseguire? Ci viene in aiuto il programma sudo.
Per capire cos'è sudo sotto riporto la definizione di wikipedia
sudo (abbreviazione dalla lingua inglese di super user do, esegui come superutente) è un programma per i sistemi operativi Unix e Unix-like che, con dei vincoli, permette di eseguire altri programmi assumendo l'identità (e di conseguenza anche i privilegi) di altri utenti.
I vincoli sono espressi nel file di configurazione /etc/sudoers, che normalmente è modificabile solo dall'utente root: in esso sono definiti gli utenti che possono eseguire comandi tramite sudo, le identità che possono assumere ed i comandi che possono eseguire con eventuali vincoli sui parametri, con o senza richiesta di autenticazione.
per prima cosa bisogna accertarsi che il programma sia installato, per fare questo digitate il seguente comando
rpm -q sudo
il risultato dovrebbe essere il seguente
sudo-1.6.9p17-10.36.1
se il programma non è presente installatelo con YAST (nel caso di suse)
a questo punto bisogna editare il file sudoers, per editarlo si dovrebbe usare il comando
visudo
Visudo è un editor vi specifico per editare il file sudoers, e aggiungere i permessi ai differenti utenti.
Per esempio se si vuole far partire o stoppare apache senza utilizzare root, e senza richiedere la sua password, si può aggiungere questo comando
<user> ALL=NOPASSWD:/etc/init.d/apache2
dove <user> è l'utente a cui si vogliono dare i diritti di esecuzione del programma apache2.
Attenzione, per editare il file sudoers bisogna essere root.
a queso punto l'utente è in grado di lanciare apache con il seguente comando
sudo /etc/init.d/apache2 start
Ciao