Linux – Utente amministratore


Una volta creato un utente normale, può capitare che necessiti di utilizzare dei comandi che hanno una certa influenza sul sistema, quindi è necessario anteporre sudo al comando desiderato (per eseguirlo come superuser [root]). Ma in alcune distribuzioni, come Ubuntu, durante l’installazione viene creato un utente di questo tipo, il cosiddetto “utente amministratore”, mentre in altre situazioni è necessario configurarlo.

Tutti i comandi sono da eseguirsi come root.

In primis si crea l’utente (che è un’altra storia), io userò l’utente “simone”

Poi si edita il files /etc/sudoers con il seguente comando:

visudo

Si aggiunga la seguente linea in un punto qualunque, se si vuole che venga richiesta la password all’esecuzione di un comando:

simone ALL=(ALL) ALL

Se invece non si vuole che venga richiesta la password:

simone ALL=(ALL) NOPASSWD:ALL

Se avete poca confidenza con l’editor vi, potete eseguire il tutto in questa maniera:

chmod +w /etc/sudoers
echo ‘simone ALL=(ALL) NOPASSWD:ALL’ >> /etc/sudoers
chmod -w /etc/sudoers

Rimane un problema! Se si vuole eseguire un comando come “utente amministratore” bisogna specificare la path del comando, ad esempio:

sudo /sbin/ifup eth0

Molto scomodo… editiamo /etc/profiles e cerchiamo la riga che dice:

# Set the default system $PATH:
PATH=”/usr/local/bin:/usr/sbin:…[altro]”

e dentro le virgolette di path aggiungiamo /sbin (stando attenti a comprenderlo tra “:”

# Set the default system $PATH:
PATH=”/usr/local/bin:/usr/sbin:/sbin:…[altro]”

In questo modo avremo detto di inserire /sbin nel path per tutti gli utenti del sistema.
Come mai però solo root poteva vederlo? Perchè, poche righe sotto, sono specificate alcune directory da aggiungere al path (tra cui /sbin) solo nel caso che l’utente loggato sia esclusivamente root. Dobbiamo quindi togliere questa voce da lì, visto che l’abbiamo messa comune a tutti. Ecco com’era questa parte:

# For root users, ensure that /usr/local/sbin, /usr/sbin and /sbin are in the $PATH
# Some means of connection don’t add these by default (sshd comes to mind):
if [“‘id=u'” = “0”]; then
echo $PATH | grep /usr/local/sbin 1> /dev/null 2> /dev/null
if [ ! $? = 0 ]; then
PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH
fi
fi

Ed ecco com’è dopo la modifica:

# For root users, ensure that /usr/local/sbin, /usr/sbin and /sbin are in the $PATH
# Some means of connection don’t add these by default (sshd comes to mind):
if [“‘id=u'” = “0”]; then
echo $PATH | grep /usr/local/sbin 1> /dev/null 2> /dev/null
if [ ! $? = 0 ]; then
PATH=/usr/local/sbin:/usr/sbin:$PATH
fi
fi

Ovviamente ora ache gli utenti “normali” potranno “verdere” i nuovi comandi, ma non potranno in alcun modo eseguirli:

[maria@localhost ~]$ sudo ifdown eth0

[sudo] password for maria:

maria is not in the sudoers file. This incident will be reported.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s