Guida a Sudo: differenze tra le versioni

nessun oggetto della modifica
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 268: Riga 268:
<pre>Host_Alias TRUSTED = server1, 192.168.1.23, 10.0.0.0/24, +grupporete</pre>
<pre>Host_Alias TRUSTED = server1, 192.168.1.23, 10.0.0.0/24, +grupporete</pre>


==== Alias di tipo Cmd_Alias ====
==== Alias di tipo Cmnd_Alias ====
Lista che contiene uno o più comandi o directory.
Lista che contiene uno o più comandi o directory.
* I comandi devono essere scritti esattamente insieme al loro path assoluto (whereis nomecomando per trovarlo)
* I comandi devono essere scritti esattamente insieme al loro path assoluto (whereis nomecomando per trovarlo)
* I comandi funzionano anche se vengono eseguiti insieme a dei parametri, per cui se:
* I comandi funzionano anche se vengono eseguiti insieme a dei parametri, per cui se:
<pre>
<pre>
Cmd_Alias LS = /bin/ls
Cmnd_Alias LS = /bin/ls
pippo ALL = LS
pippo ALL = LS
</pre>
</pre>
Riga 279: Riga 279:
<pre>$ sudo ls -l</pre>
<pre>$ sudo ls -l</pre>
Per evitare questo comportamento e consentire che il comando venga eseguito solo senza parametri, bisogna far seguire "" al comando:
Per evitare questo comportamento e consentire che il comando venga eseguito solo senza parametri, bisogna far seguire "" al comando:
<pre> Cmd_Alias LS = /bin/ls ""</pre>
<pre> Cmnd_Alias LS = /bin/ls ""</pre>
in questo modo sarà consentito solo:
in questo modo sarà consentito solo:
<pre>$ sudo ls</pre>
<pre>$ sudo ls</pre>
Riga 285: Riga 285:
<pre>$ sudo ls -l</pre>
<pre>$ sudo ls -l</pre>
Se si vogliono consentire solo determinati parametri, bisogna ricorrere ai metacaratteri. Ad esempio, per consentire i comandi "ls -l" e "ls -a" ma non "ls -d":
Se si vogliono consentire solo determinati parametri, bisogna ricorrere ai metacaratteri. Ad esempio, per consentire i comandi "ls -l" e "ls -a" ma non "ls -d":
<pre>Cmd_Alias LS = /bin/ls -[la]
<pre>Cmnd_Alias LS = /bin/ls -[la]
pippo ALL = LS</pre>
pippo ALL = LS</pre>
* È possibile inserire anche il percorso assoluto di una directory, questo indicherà che potranno essere eseguiti con sudo tutti i programmi contenuti in quella directory ma non nelle sottodirectory. Ad esempio con:
* È possibile inserire anche il percorso assoluto di una directory, questo indicherà che potranno essere eseguiti con sudo tutti i programmi contenuti in quella directory ma non nelle sottodirectory. Ad esempio con:
Riga 650: Riga 650:
Facciamo un esempio.
Facciamo un esempio.
Supponiamo che l'utente gambadilegno abbia una variabile d'ambiente così definita nel proprio .bashrc :
Supponiamo che l'utente gambadilegno abbia una variabile d'ambiente così definita nel proprio .bashrc :
== Esempi ==
=== Leggere i file di <code>/var/log/</code> ====
I file di log si sistema che si trovano nella directory <code>/var/log/</code> non sono accessibili ad un normale utente ma solo ai membri del gruppo "adm" e, ovviamente, a [[root]].<br/>
Questa configurazione consentirà di leggere, attraverso il [[pager]] "less", alcuni file di log. Si noti che in questo modo si previene la modifica dei file e, principalmente, si consente la lettura solo per un loro determinato numero.<br/>
Con il seguente esempio non viene chiesta alcuna password attraverso l'uso del tag "NOPASSWD".
<pre>
...
Cmnd_Alias LETTURALOG = /bin/less /var/log/messages, \
                        /bin/less /var/log/kern.log, \
                        /bin/less /var/log/syslog
pippo miolocalhost = NOPASSWD:LETTURALOG
...
</pre>
In questo modo l'utente "pippo" potrà eseguire, esclusivamente dall'[[host]] "miolocalhost", i comandi:
<pre>
$ sudo less /var/log/messages
$ sudo less /var/log/kern.log
$ sudo less /var/log/syslog
</pre>
per leggere i file "messages", "kern.log" o "syslog".
6 999

contributi