doas (Italiano)

Stato della traduzione
Questo articolo è la versione tradotta di
Doas
. Data dell'ultima traduzione: 2026-02-28. Se ci sono
cambiamenti
nella versione inglese, è possibile dare una mano a sincronizzarne la traduzione.
Articoli correlati
List of applications/Security#Privilege elevation
run0
sudo
Users and groups
OpenDoas
è una versione portabile del
comando doas di OpenBSD
, nota per avere dimensioni sostanzialmente ridotte rispetto a
sudo
. Come
sudo
,
doas
viene utilizzato per assumere l'identità di un altro utente sul sistema.
Installazione
Installare
il pacchetto
opendoas
.
Uso
Per iniziare a usare
doas
come utente non privilegiato, è necessario configurarlo correttamente. Si veda
#Configurazione
.
Per utilizzare
doas
, è sufficiente anteporre il comando
doas
e uno spazio al comando e ai suoi argomenti:
$ doas
cmd
Ad esempio, per usare
pacman
:
$ doas pacman -Syu
Per accedere a una shell interattiva come altro utente (omettendo
-u
utente
si userà root per impostazione predefinita):
$ doas -su
utente
L'accesso come altro utente è necessario per alcuni comandi, si veda
Sudo#Login shell
.
Per ulteriori informazioni, consultare
doas(1)
.
Configurazione
Dopo l'installazione di OpenDoas, esso risulterà collegato a
PAM
, ma non sono inclusi file di configurazione predefiniti o esempi.
Per consentire ai membri del gruppo
wheel
di eseguire comandi come altri utenti, creare un file di configurazione con il seguente contenuto:
/etc/doas.conf
permit setenv {PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin} :wheel
Nota
Il file di configurazione deve terminare con una riga vuota.
L'opzione
setenv
serve a mitigare un
problema
derivante dall'origine BSD di OpenDoas, dove i pacchetti di sistema aggiuntivi sono memorizzati in
/usr/local/bin
. In Linux,
/usr/local/bin
è generalmente usato per sovrascrivere gli eseguibili, quindi precede
/usr/bin
che contiene gli eseguibili dei pacchetti.
Il proprietario e il gruppo per
/etc/doas.conf
devono essere entrambi
root
e i permessi del file devono essere impostati a
0400
:
# chown -c root:root /etc/doas.conf
# chmod -c 0400 /etc/doas.conf
Per verificare la presenza di errori di sintassi in
/etc/doas.conf
, eseguire:
# if doas -C /etc/doas.conf; then echo "config ok"; else echo "config error"; fi
Attenzione
È fondamentale che
/etc/doas.conf
sia privo di errori di sintassi!
Per consentire ai membri del gruppo
plugdev
di eseguire
smartctl
senza password come
utente root
:
/etc/doas.conf
permit nopass :plugdev as root cmd /usr/bin/smartctl
La forma sintattica generale di
/etc/doas.conf
è:
permit|deny [opzioni] identità [as target] [cmd comando [argomenti ...]]
L'ultima regola corrispondente determina l'azione intrapresa, pertanto le regole devono essere ordinate di conseguenza.
Per maggiori dettagli, leggere
doas.conf(5)
.
Trucchi e consigli
Funzionalità persist di doas
doas
fornisce una funzione di persistenza: dopo che l'utente si è autenticato con successo, non gli verrà richiesto nuovamente la password per 5 minuti. È disattivata per impostazione predefinita; la si può abilitare con l'opzione
persist
:
/etc/doas.conf
permit
persist
setenv {PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin} :wheel
L'esecuzione di
doas -L
cancella un'autenticazione persistente prima del suo timeout automatico.
Nota
La funzione persist è disabilitata per impostazione predefinita perché potenzialmente pericolosa. Nel
doas
originale, viene utilizzata un'API del kernel per impostare e azzerare i timeout. Questa API è specifica di OpenBSD e non è disponibile in altri sistemi operativi. Come soluzione alternativa, la funzione persist è implementata utilizzando file di timestamp simili a
sudo
.
Transizione agevole da sudo a doas
Per una transizione agevole da
sudo
a
doas
e per mantenere la compatibilità con il passato, è possibile aggiungere al proprio ambiente:
alias sudoedit='doas rnano'
e posizionare un wrapper per
doas
dove si troverebbe normalmente
sudo
(tuttavia non fornisce il comando
sudoedit
):
/usr/local/bin/sudo
#!/bin/bash
exec doas "${@/--preserve-env*/}"
Nota
Alcuni pacchetti come
devtools
hanno una dipendenza stretta da
sudo
.
Per impostazione predefinita
sudo
preserva alcune variabili d'ambiente mentre
doas
no, in particolare XAUTHORITY, LANG e LC_ALL. Ciò significa che non sarà possibile avviare applicazioni grafiche sotto X né accedere alla localizzazione dell'utente senza ulteriore configurazione. Ad esempio, per consentire ai membri del gruppo
wheel
di eseguire applicazioni grafiche e accedere alla localizzazione dell'utente usando l'opzione setenv:
/etc/doas.conf
permit setenv { XAUTHORITY LANG LC_ALL } :wheel
Completamento tab su Bash
Per impostazione predefinita, Bash eseguirà il completamento automatico con tab solo per file e directory all'interno della cartella corrente o referenziata. Per istruire Bash a completare gli argomenti come se fossero comandi separati (sfruttando anche le impostazioni di completamento di altri comandi), si può aggiungere quanto segue al file
.bashrc
dell'utente o a quello globale
/etc/bash.bashrc
:
~/.bashrc
complete -cf doas
Se
bash-completion
è installato, è possibile utilizzare invece il seguente comando per consentire il completamento aggiuntivo del comando di destinazione:
~/.bashrc
complete -F _command doas