Doas é um programa de escalonamento de privilégios semelhante ao sudo. Ele foi projetado para ser o mais leve e simples possível. É o programa de escalonamento de privilégios padrão do OpenBSD, mas também está disponível para outros sistemas operacionais do tipo UNIX através do programa OpenDoas.
O problema com sudo
Ao longo dos anos, o sudo se tornou o programa de escalonamento de privilégios de fato no mundo UNIX. No entanto, isso significa que o sudo precisa atender a todos os casos de uso de todas as pessoas que estão usando uma máquina semelhante ao UNIX. Essa abordagem no desenvolvimento de programas tornou o sudo um programa pesado, difícil de entender e difícil de usar.
Por exemplo, para modificar o comportamento do sudo, você precisa executar um comando chamado visudo
. Este é um programa de carregamento especial que abre o arquivo “/etc/sudoers” em um “modo de segurança”.
O Visudo faz algumas coisas: ele verifica rotineiramente se há erros de sintaxe no arquivo “/etc/sudoers” e bloqueia o arquivo “/etc/sudoers” para que ninguém além do usuário atual possa editar o arquivo. Estes podem parecer úteis na superfície, mas o visudo é um sintoma da crescente complexidade do sudo.

Isso significa que a sintaxe do arquivo sudoers se tornou complicada o suficiente para que seja necessário verificar possíveis erros de sintaxe. Isso também significa que o sudo precisa atender a ambientes de usuário único e multiusuário, exigindo, portanto, a necessidade de bloquear o arquivo sudoers para o usuário atual.
Sudo é um programa maravilhoso. Sua sintaxe de configuração complexa pode criar sistemas de permissão elaborados que podem ser potencialmente úteis para um administrador de sistema experiente.
Para a maioria dos usuários, no entanto, usamos apenas o sudo para executar um shell de root para instalar programas e mexer em nossos sistemas. A complexidade do Sudo, portanto, parece ser mais um obstáculo do que um recurso nesses casos.
Por que usar doas?
A intenção do Doas é resolver a complexidade do sudo. Ele foi desenvolvido para OpenBSD e foi rapidamente portado para praticamente qualquer sistema Linux. Ele pretende ser rápido e fácil de usar, mas também simples de manter e seguro.
A sintaxe do doas também é diferente do sudo. Configurá-lo é semelhante a escrever em inglês simples. No sudo, por exemplo, a sintaxe para permitir que qualquer usuário do grupo wheel execute como root sem nenhuma senha é:
%wheel ALL=(ALL) NOPASSWD: ALL
No doas, entretanto, a sintaxe é muito mais fácil de entender:
permit nopass :wheel as root

Além disso, o doas não precisa de nenhum programa de carregamento especial como o visudo para modificar sua configuração. O usuário só precisa editar o arquivo de configuração com qualquer editor de texto e, desde que o usuário tenha privilégios suficientes, ele poderá fazer alterações na configuração.
Isso torna o doas mais fácil de entender e fazer sentido. Sua abordagem simplista e simples para criar usuários e grupos privilegiados torna o processo transparente e livre de erros para o usuário.
Como configurar doas com sudo
Se você estiver usando um sistema Linux, há uma boa chance de você já estar usando o sudo como seu programa de escalonamento de privilégios, e isso torna a instalação do doas relativamente simples.
No Debian e no Ubuntu, você pode instalar o doas usando o apt:
sudo apt install doas
No Arch Linux, você pode usar o pacman:
sudo pacman -Syu opendoas
Com o Fedora, você pode usar dnf:
sudo dnf install opendoas
Para Void Linux, você pode usar xbps:
sudo xbps-install opendoas
No meu caso, estou instalando doas no Void Linux, então estou usando XBPS.

O arquivo de configuração do doas
Com o doas instalado, agora você pode editar o arquivo “/etc/doas.conf” alternando para o usuário root usando su.
su --command="nano /etc/doas.conf"
O Su pedirá sua senha de root e, depois disso, abrirá ou criará o arquivo de configuração usando o nano.

Uma vez feito, você pode notar que “doas.conf” está vazio. Isso é completamente diferente em comparação com o visudo. Mas, como discutimos anteriormente, configurar o doas é relativamente trivial.
A sintaxe de configuração
A sintaxe para doas.conf é a seguinte:
permit|deny [options] identity [as target] [cmd command [args ...]]
- Permitir e Negar definirá se o doas permitirá a regra.
- Opções são configurações adicionais para doas. As opções mais úteis para o usuário comum são persistir e nopass.
- Identidade é o usuário ou grupo que está executando doas.
- Como alvo é o usuário que a “Identidade” pode ou não executar.
- cmd é o comando que a “Identidade” pode ou não executar “como destino”. O padrão é todos os programas, mas você pode especificar um programa específico neste campo.
- argumentos são os argumentos específicos para o comando que você indicou.
Por exemplo, escrever o seguinte permitirá que qualquer usuário no grupo wheel execute comandos como root. O shell raiz também persistirá até que a janela seja fechada.
permit persist :wheel as root
Você também pode criar uma regra que segmente apenas um usuário específico para um comando específico. Por exemplo, você pode usar a seguinte regra para permitir que o usuário “bob” execute o programa “apt” como root sem pedir nenhuma senha.
permit nopass bob as root cmd apt
No meu caso, quero que o grupo “wheel” rode como root sem nenhuma senha. Também não quero que o usuário aga, que faz parte do grupo wheel, execute nenhum comando como root. Então estarei escrevendo o seguinte no meu “/etc/doas.conf”:
permit nopass :wheel as root deny aga as root

Pós-configuração
Depois disso, você deve executar alguns comandos para garantir que o doas esteja funcionando conforme o esperado. Primeiro, você precisará definir corretamente o proprietário do doas.conf como root:
sudo chown -c root:root /etc/doas.conf
Você também precisará definir as permissões de arquivo do arquivo de configuração para 0644 para garantir que o arquivo seja acessível apenas ao usuário root.
sudo chmod -c 0644 /etc/doas.conf
Por fim, você precisará verificar o próprio doas quanto a erros de sintaxe na configuração. Para fazer isso, execute o seguinte comando:
sudo doas -C /etc/doas.conf && echo "OK" || echo "ERROR"

Parabéns! Você instalou e configurou com sucesso o doas para o seu sistema. Agora você pode começar a usar o doas como substituto do sudo ou ajustar seu arquivo doas.conf ao seu gosto. Para obter mais informações sobre a administração do sistema no Linux, você pode ler este artigo.
perguntas frequentes
1. Minha configuração parece não funcionar. Eu adicionei uma regra para um usuário específico e uma regra geral, mas a regra para o usuário não parece funcionar.
O arquivo de configuração doas funciona desde a regra mais geral até a mais específica. Para que sua configuração funcione, você precisa primeiro especificar a regra que se aplica a todos os usuários. Em seguida, você pode especificar a regra direcionada a um único usuário abaixo dela.
2. É possível manter sudo e doas no mesmo sistema?
Sim! Doas e sudo são dois programas diferentes. Eles não entram em conflito entre si, e não há problema em deixar sudo no sistema e usar doas.
3. É possível obter um shell de root usando doas?
Sim, desde que você tenha configurado corretamente seu arquivo de configuração. Você pode iniciar um shell raiz executando doas -s
.