doas (Italiano) - ArchWiki

Jump to content

# doas (Italiano)

From ArchWiki

Stato della traduzioneQuesto articolo è la versione tradotta di Doas. Data dell'ultima traduzione: 2026-08-12. 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.

### Sbarazzarsi di sudo

Una volta che si è deciso di sostituire del tutto il pacchetto sudo, installare il pacchetto doas-sudo-shimAUR, che fornisce opzioni compatibili con sudo per una transizione agevole a doas. È possibile aggiungere ai propri file di configurazione:

    alias sudoedit='doas rnano'

Nota

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

doas-sudo-shimAUR imposta `SUDO_UID`, `SUDO_GID` e `SUDO_USER` prima di invocare doas, per ragioni di compatibilità con gli strumenti che leggono queste variabili (impostate incondizionatamente dal vero sudo) in modo da indentificare l'utente originale che l'ha invocato, ad es. per localizzare la loro sessione D-Bus per le notifiche desktop. Come con le precedenti `XAUTHORITY`, `LANG` e `LC_ALL`, doas le rimuoverà a meno che non siano state espressamente consentite tramite `setenv` o `keepenv`:

    /etc/doas.conf

    permit setenv { SUDO_UID SUDO_GID SUDO_USER } :wheel

Si ricordi che queste variabili sono impostate da shim stesso, per cui ciò ha effetto solo quando si invocano comandi tramite lo shim di `sudo`. Usare `doas` direttamente non le popola, perché doas non ha equivalenti integrati come gli export `SUDO_*` automatici di sudo.

Si consulti la documentazione ENVIRONMENT di doas-sudo-shim per i dettagli.

Si tenga anche presente che shim non supporta tutte le opzioni gestite da sudo (in particolare, `-k` è approssimato) e alcune applicazioni potrebbero non funzionare.

- makepkg va configurato per l'uso diretto di doas [1]:

    PACMAN_AUTH=(doas -n)

- `-E`/`--preserve-env` non è supportato da shim, perché non un diretto equivalente in doas. Gli script e i comandi che si affidano a `sudo -E` per inoltrare l'ambiente di chiamata non si comporteranno sotto shim come ci si aspetterebbe; usare invece le opzioni `setenv` e `keepenv` in `doas.conf` per consentire in modo esplicito le variabili di cui si ha bisogno.

### 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

Categories:

- Security (Italiano)
- Commands (Italiano)
- OpenBSD (Italiano)

doas (Italiano)
Add topic