sfondo
L'alternativa di OpenBSD sudo
è doas
, sebbene non funzioni allo stesso modo di sudo e richieda una configurazione. È l'acronimo di "subexecutor application openbsd dedicato". OpenBSD 5.8, rilasciato nel 2015, è stato il primo ad includere doas
. È stato creato da Ted Unangst dopo essere stato insoddisfatto della complessità di sudo e avere problemi con la configurazione di sudo predefinita.
Il doas
comando è semplice in base alla progettazione e non contiene funzionalità avanzate richieste per elaborate infrastrutture di amministratore di sistema. Per la maggior parte delle persone, è più che sufficiente. Se necessario sudo
, installarlo con pkg_add sudo
come root.
Installazione
OpenBSD versione 5.8 e successive ha doas
preinstallato.
Configurazione
Per consentire agli utenti del gruppo ruote di accedere a doas
, aggiungere quanto segue a /etc/doas.conf
. Avrai bisogno dell'accesso root per modificare questo file.
permit :wheel
Ciò consentirà a tutti gli utenti del gruppo di ruote di eseguire comandi come qualsiasi altro utente.
Se desideri che gli utenti siano in grado di inserire la password una volta, quindi non devi immetterla per un po ', utilizza l' persist
opzione. Ecco un esempio che fornisce autorizzazioni solo al gruppo ruote:
permit persist :wheel
Puoi invece usare l' nopass
opzione se desideri che non debbano mai inserire la loro password:
permit nopass :wheel
Se desideri che l'utente "mynewuser" disponga dei diritti di amministratore, puoi aggiungerli al gruppo di ruote eseguendolo usermod -G wheel mynewuser
come root o aggiungere una riga alla tua in /etc/doas.conf
modo che assomigli al seguente:
permit nopass :wheel
permit nopass mynewuser
Questo esempio presuppone che non sia necessario che gli utenti inseriscano una password durante l'utilizzo doas
. Se si desidera impostarlo in modo tale che mynewuser sia autorizzato a eseguire i comandi solo come utente www, la configurazione sarà la seguente:
permit nopass :wheel
permit nopass mynewuser as www
Se desideri che mynewuser sia in grado di utilizzare solo il comando "vim" con doas, utilizza la seguente configurazione:
permit nopass :wheel
permit nopass mynewuser as www cmd vim
Esistono altre opzioni di configurazione, ma quelle qui descritte sono le più comuni. Se vuoi leggere di più, puoi usare il comando man doas.conf
per leggere la manpage doas.conf (5).
Test dei file di configurazione
Per testare un file di configurazione, utilizzare il doas -C /etc/doas.conf
comando Se in seguito viene fornito un comando, ad esempio doas -C /etc/doas.conf vim
, verrà indicato se si dispone dell'autorizzazione per eseguire un comando o meno senza provare a eseguire il comando.
uso
Un utente può eseguire il comando echo "test"
come root usando il comando: doas echo "test"
Un utente che dispone delle autorizzazioni per utilizzare doas per elevarsi all'utente "www" può eseguire il comando vim /var/www/http/index.html
come l'utente "www" utilizzando il comando: doas -u www vim index.html
Ciò è utile per qualcuno che gestisce il server web ma non dispone di autorizzazioni complete per superutente.
Migliori pratiche
Si consiglia vivamente di utilizzare l'autorizzazione anziché negare, ove possibile. Se si nega a un utente l'utilizzo di un comando specifico, potrebbe essere in grado di cavarsela utilizzando un percorso alternativo o il nome di quel comando se esiste. Possono anche copiare il file eseguibile del comando nella loro home directory e quindi eseguirlo, sconfiggendo così il sistema di autorizzazioni.
In generale, è una buona idea usare doas piuttosto che usare su perché nessuno deve condividere la password di root. Non c'è alcuna possibilità che qualcuno lo modifichi, lo dimentichi e chiuda tutti fuori dal sistema se tutti usano la propria password per l'accesso root. I registri sono conservati /var/log/secure
.
Suggerimenti e trucchi
Puoi mantenere tutte le variabili di ambiente con keepenv, il che è utile se il tuo editor è impostato su qualcosa e non vuoi che cambi quando diventi un altro utente. Ecco un esempio con mynewuser:
permit nopass keepenv mynewuser
A volte, ci sono situazioni in cui la sovrascrittura di ogni variabile di ambiente può rompere le cose, ma con setenv, è possibile selezionare quelle da trasferire. Ecco un esempio che manterrà il tuo editor impostato su qualsiasi cosa tu voglia usare con git e altre cose.
permit nopass setenv { VISUAL EDITOR } mynewuser
Puoi anche usare setenv per rimuovere le variabili di ambiente (mettendo un trattino prima di ciascuna che desideri rimuovere) o impostarle su cose specifiche con un segno di uguale. Ad esempio, se si desidera rimuovere la variabile di ambiente VISUAL e impostare EDITOR su vim, utilizzare questa riga di configurazione:
permit nopass setenv { -VISUAL EDITOR=vim } mynewuser
Se doas
ha memorizzato la password, puoi farlo doas -L
per dimenticarla.