Jump to content

doas (Italiano)

From ArchWiki

Stato della traduzioneQuesto 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.

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