O comando sudo permite executar programas como outro usuário, por padrão, o usuário root. Se você passa muito tempo na linha de comando, o sudo é um dos comandos que você usará com bastante frequência.
Usar o sudo em vez de fazer login como root é mais seguro, porque você pode conceder privilégios administrativos limitados a usuários individuais sem que eles saibam a senha root.
Neste tutorial, explicaremos como usar o comando sudo.
Instalando o Sudo (comando sudo não encontrado)
O pacote sudo é pré-instalado na maioria das distribuições Linux.
Para verificar se o pacote sudo está instalado no seu sistema, abra o console, digite sudo
e pressione Enter
. Se você tiver o sudo instalado, o sistema exibirá uma breve mensagem de ajuda, caso contrário, você verá algo parecido sudo command not found
.
Se o sudo não estiver instalado, você poderá instalá-lo facilmente usando o gerenciador de pacotes da sua distribuição.
Instale o Sudo no Ubuntu e Debian
apt install sudo
Instale o Sudo no CentOS e Fedora
yum install sudo
Adicionando usuário a sudoers
Por padrão, na maioria das distribuições Linux, conceder acesso ao sudo é tão simples quanto adicionar o usuário ao grupo sudo definido no arquivo sudoers
Os membros deste grupo poderão executar qualquer comando como root. O nome do grupo pode diferir de distribuição para distribuição.
Nas distribuições baseadas no RedHat, como CentOS e Fedora, o nome do grupo sudo é wheel
. Para adicionar o usuário ao grupo, execute:
usermod -aG wheel username
No Debian, Ubuntu e seus derivados, os membros do grupo sudo
recebem acesso sudo:
usermod -aG sudo username
A conta de usuário root no Ubuntu é desativada por padrão por razões de segurança e os usuários são incentivados a executar tarefas administrativas do sistema usando o sudo.
O usuário inicial criado pelo instalador do Ubuntu já é um membro do grupo sudo, portanto, se você estiver executando o Ubuntu, é provável que o usuário com o qual você fez login já tenha privilégios de sudo.
Se você deseja permitir que um usuário específico execute apenas determinados programas como sudo, em vez de adicionar o usuário ao grupo sudo, adicione os usuários ao sudoers
arquivo.
Por exemplo, para permitir que o usuário root
execute apenas o comando mkdir
como sudo, digite:
sudo visudo
e acrescente a seguinte linha:
root ALL=/bin/mkdir
Na maioria dos sistemas, o visudo
comando abre o /etc/sudoers
arquivo com o editor de texto vim. Se você não tem experiência com o vim, consulte nosso artigo sobre como salvar um arquivo e sair do editor do vim .
Você também pode permitir que os usuários executem comandos sudo sem inserir a senha :
root ALL=(ALL) NOPASSWD: ALL
Como usar o Sudo
A sintaxe para o sudo
comando é a seguinte:
sudo OPTION.. COMMAND
O comando sudo tem muitas opções que controlam seu comportamento, mas geralmente sudo é usado em sua forma mais básica, sem nenhuma opção.
Para usar o sudo, basta prefixar o comando com sudo
:
sudo command
Onde command
está o comando para o qual você deseja usar o sudo.
O Sudo lerá o /etc/sudoers
arquivo e verificará se o usuário que está chamando é concedido com o sudo assessment. Na primeira vez em que você usar o sudo em uma sessão, você será solicitado a inserir a senha do usuário e o comando será executado como root.
Por exemplo, para listar todos os arquivos no /root
diretório que você usaria:
sudo ls /root
[sudo] password for root: . .. .bashrc .cache .config .local .profile
Tempo limite da senha
Por padrão, o sudo solicitará que você digite sua senha novamente após cinco minutos de inatividade do sudo. Você pode alterar o tempo limite padrão editando o arquivo sudoers
. Abra o arquivo com visudo
:
sudo visudo
Defina o tempo limite padrão adicionando a linha abaixo, onde 10
é o tempo limite especificado em minutos:
Defaults timestamp_timeout=10
Se você deseja alterar o carimbo de data e hora apenas para um usuário específico, adicione a seguinte linha, em que user_name é o usuário em questão.
Defaults:user_name timestamp_timeout=10
Executar um comando como um usuário que não seja root
Há uma percepção errada que sudo
é usada apenas para fornecer permissões de root a um usuário comum. Na verdade, você pode usar sudo
para executar um comando como qualquer usuário.
A -u
opção permite executar um comando como um usuário especificado.
No exemplo a seguir, estamos usando sudo
para executar o comando whoami
como um usuário “richard”:
sudo -u richard whoami
O whoami
comando imprimirá o nome do usuário que está executando o comando:
richard
Como redirecionar com o Sudo
Se você tentar redirecionar a saída de um comando para um arquivo em que seu usuário não tem permissões de gravação, você receberá o erro “Permissão negada”.
sudo echo "test" > /root/file.txt
bash: /root/file.txt: Permission denied
Isso acontece porque o redirecionamento “ >
” da saída é realizado no usuário em que você está conectado, e não no usuário especificado pelo sudo. O redirecionamento acontece antes que o comando sudo
seja chamado.
Uma solução é chamar um novo shell como root usando sudo sh -c
:
sudo sh -c 'echo "test" > /root/file.txt'
Outra opção é canalizar a saída como usuário comum para o comando tee
, como mostrado abaixo:
echo "test" | sudo tee /root/file.txt
Conclusão
Você aprendeu como usar o comando sudo
e como criar novos usuários com privilégios de sudo.
Confira também nosso artigo sobre como criar um usuário Sudo no Debian.
Se você tiver alguma dúvida, fique à vontade para deixar um comentário.