Executando comandos como superusuário com sudo
- O QUE É?
Saiba sobre os conceitos básicos do
sudoe como usá-lo como um usuário comum.- POR QUÊ?
Alguns comandos exigem privilégios de administrador. Para executar um comando com direitos de administrador, é possível usar o comando
sudo.- DEDICAÇÃO
A leitura deste artigo leva no máximo 20 minutos. Se você tiver uma pergunta específica, poderá ir diretamente para o respectivo capítulo.
- META
Entender os conceitos básicos do
sudoe executar comandos com osudoem determinados casos de uso.- REQUISITOS
Privilégios de
rootousudo. Eles estarão disponíveis apenas se você for o administrador do sistema. Para obter mais informações, consulte a Seção 1, “Conceitos básicos dosudo”.O pacote sudo precisa ser instalado. Por padrão, esse pacote está disponível no SUSE Linux Enterprise Server for SAP Applications.
1 Conceitos básicos do sudo #
Saiba sobre os conceitos básicos do sudo e como ele funciona nos sistemas SUSE Linux Enterprise Server for SAP Applications.
O sudo é um comando do Linux usado para executar programas temporariamente como outro usuário. Ele é a abreviação de substitute user and do e empresta os privilégios de outro usuário, por exemplo, o usuário root. Dessa forma, o sudo ajuda você a realizar tarefas de administração do sistema sem efetuar login como root.
1.1 sudo nos sistemas Linux em geral #
Como usuário comum do Linux, você tem permissões reduzidas que são suficientes para a maioria das tarefas. O usuário root é o superusuário do Linux e equivalente ao administrador.
O sudo permite que usuários especificados (não root) ou um grupo de usuários executem tarefas privilegiadas, como chamar funções do sistema como root ou outro usuário. Por meio de um arquivo de configuração, o administrador do sistema pode controlar quais usuários têm permissão para executar comandos do sudo e para quais tarefas.
1.2 sudo nos sistemas SUSE Linux Enterprise Server for SAP Applications #
Por motivos de segurança, todos os sistemas SUSE Linux Enterprise Server for SAP Applications separam o usuário comum do usuário root. Como usuário comum, você não pode gravar em diretórios do sistema nem instalar programas. Qualquer usuário com acesso à senha de root pode obter esses privilégios e violar o sistema de maneira acidental ou maliciosa.
Por exemplo, você efetuou login como usuário comum e acidentalmente acessa um site malicioso. Um invasor não pode instalar malware em seu sistema sem que você saiba, já que o seu login é de um usuário comum, ou seja, você não tem nenhuma permissão administrativa.
Conforme explicado acima, não é recomendável efetuar login como usuário root permanentemente por motivos de segurança. Uma abordagem mais segura é manter o login com o usuário comum e executar um comando restrito precedido de sudo.
sudo requer direitos de administrador
Em uma máquina de usuário único, em que você definiu a própria senha de root, você tem os direitos necessários para administrar o sistema usando o comando sudo e definir as configurações do sudo por sua conta.
Para obter mais informações sobre como configurar o sudo, consulte https://documentation.suse.com/smart/systems-management/html/sudo-configure-superuser-privileges/index.html.
Em um ambiente multiusuário, como em empresas, os privilégios do sudo são gerenciados por um administrador de sistema e as permissões do usuário root podem ser restritas. Talvez você não tenha permissão para mudar determinados diretórios ou arquivos do sistema, mesmo quando executar o comando com sudo.
1.3 Como o sudo funciona #
Ao executar um comando precedido com sudo, o sistema solicita a senha da conta de root. Após a autenticação bem-sucedida, o comando será executado com privilégios de superusuário.
Dependendo da configuração do sudo, os privilégios elevados persistem por um determinado período de tempo e enquanto você trabalha na mesma sessão de terminal. Portanto, você não precisa inserir uma senha novamente ao executar outro comando sudo.
Para executar um comando com sudo, esta sintaxe é usada:
>sudo [command]
2 Executando um comando precedido com sudo #
Como usuário comum, você pode executar qualquer comando como root inserindo sudo antes do comando. Isso solicitará que você forneça a senha de root. Se a autenticação for bem-sucedida, o comando será executado como root.
Ao executar um comando precedido com sudo, o sistema solicita a senha da conta de root. Após a autenticação bem-sucedida, o comando será executado com privilégios de superusuário.
Dependendo da configuração do sudo, os privilégios elevados persistem por um determinado período de tempo e enquanto você trabalha na mesma sessão de terminal. Portanto, você não precisa inserir uma senha novamente ao executar outro comando sudo.
sudo #
O procedimento a seguir descreve como usar o comando sudo para copiar um arquivo em um diretório em que apenas o usuário root tem direitos de edição.
Abra um terminal e crie um arquivo de teste com:
>touch test.txtTente copiar o arquivo para o diretório
/usr/local/bin/com:>cp test.txt /usr/local/binO terminal retorna, por exemplo:
cp: cannot create regular file '/usr/local/bin/test.txt': Permission denied
Essa mensagem também é exibida se os privilégios necessários não foram concedidos ao
sudo.Agora insira o mesmo comando precedido com
sudo:>sudocp test.txt /usr/local/binSerá solicitado que você insira a senha de
root. Observe que a senha não aparece ao ser digitada, nem como texto sem criptografia nem como caracteres de mascaramento.[sudo] password for root:
Após a autenticação bem-sucedida, o arquivo de teste será copiado para
/usr/local/bin.
Você executou seu primeiro comando sudo.
3 Comandos comuns do sudo #
Ao adicionar o sudo antes de qualquer comando, você pode executar comandos com permissões elevadas. Você também pode executar comandos como outro usuário e utilizar as variáveis de ambiente dele.
Esta seção apresenta exemplos de comandos comuns que geralmente exigem privilégios administrativos.
- Repetir o último comando com
sudo Para repetir o último comando como administrador, execute
sudo !!e insira a senha. Por exemplo, um usuário sem privilégios administrativos não pode criar um diretório em/etc/. Para criá-lo, executesudo !!.>mkdir /etc/test/mkdir: cannot create directory ‘/etc/test/’: Permission denied>sudo!!sudo mkdir /etc/test/ [sudo] password for root:>ls -alrt /etc | grep testdrwxr-xr-x 1 root root 0 Apr 20 12:48 test- Gerenciar pacotes usando
sudoezypper Para executar comandos de gerenciamento de pacotes como administrador, adicione
sudoantes do comando:>sudozypper [--GLOBAL-OPTIONS] <COMMAND> [--COMMAND-OPTIONS] [ARGUMENTS]Por exemplo, para instalar a plataforma de containerização Docker CE do seu repositório de pacotes oficial, execute os seguintes comandos com
sudo:>sudozypper addrepo https://download.docker.com/linux/suse/docker-ce>sudozypper refresh>sudozypper search docker-ce>sudozypper install docker-ceVocê não precisa adicionar
sudoantes de comandoszypperque não modificam o sistema ou fornecem acesso privilegiado às informações. Por exemplo, você pode listar os repositórios para os pacotes de software instalados no sistema sem usarsudo:>zypper lr- Gerenciar serviços do sistema usando
sudoesystemctl Em sistemas que usam
systemdpara gerenciamento de serviços, você pode usar o comandosystemctlcomsudo. Por exemplo, para reiniciar o serviço NetworkManager, execute:>sudosystemctl restart NetworkManagerVocê não precisa adicionar
sudoantes de comandossystemctlque não modificam o sistema ou fornecem acesso privilegiado às informações. Por exemplo, você pode exibir o status do Network Manager sem usarsudo:>systemctl status NetworkManager● NetworkManager.service - Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: disabled) Drop-In: /usr/lib/systemd/system/NetworkManager.service.d └─NetworkManager-ovs.conf Active: active (running) since DAY YYYY-MM-DD HH:MM:SS TIMEZONE; 1h 21min ago Docs: man:NetworkManager(8) [...]- Modificar uma conta de usuário usando
sudoeusermod Para executar o comando
usermodpara modificar contas de usuário, faça o seguinte:>sudousermod [OPTION] USERNAMEPor exemplo, para definir o número de dias como
30para desabilitar permanentemente a conta do usuáriotuxapós o vencimento da senha, execute:>sudousermod --inactive 30 tux- Modificar a propriedade de arquivos e diretórios usando
sudoechown Para mudar as propriedades de arquivo e diretório do proprietário atual para um novo proprietário, use:
>sudochown [OPTION] [OWNER:[GROUP]] FILEPor exemplo, para conceder a propriedade de arquivos e subdiretórios a
tuxno diretório/home/test/tux-files, execute:>sudochown tux /home/test/tux-files/ --recursiveVocê pode testar a mudança de propriedade executando o seguinte comando:
>ls -alrt /home/test/tux-files/ --recursive- Executar um comando como outro usuário com
sudo -s Em vez de usar o comando
supara alternar para um usuário diferente e depois executar os comandos, você pode usar o comandosudo -s. Um shell executado pelo comandosudo -sherda o ambiente do usuário atual. O comandosudo -stambém oferece algumas medidas de controle de privilégios.Para executar um comando como um usuário diferente, use:
>sudo-s -u USERNAME COMMANDPor padrão, o comando é executado do diretório do usuário anterior porque o usuário de destino herda o ambiente do usuário anterior.
Por exemplo, para listar repetidamente os arquivos e subdiretórios do diretório
/home/test/tux-files/como o usuário de destinotux, execute:>sudo-s -u tux ls -alrt /home/test/tux-files/ --recursiveQuando você usa a abordagem
sudo -spara executar um comando como um usuário diferente, o comando é registrado em seu histórico.- Executar um comando como outro usuário com um ambiente limpo usando
sudo -i Ao usar o comando
sudo -s, o usuário de destino herda o ambiente do usuário anterior. Para evitar isso, use o comandosudo -i, em que o usuário de destino obtém um ambiente limpo e é iniciado em seu próprio diretório$HOME.Para executar um comando como um usuário diferente com um ambiente limpo, use:
>sudo-i -u USERNAME COMMANDO comando
sudo -iexecuta o shell como um shell de login interativo do usuário de destino. Como resultado, há scripts de inicialização do shell, como os arquivos.profilee.bash_profile.Por exemplo, para listar os arquivos e subdiretórios do diretório
/home/test/tux-files/comotux, execute o seguinte comando:>sudo-i -u tux ls -alrt /home/test/tux-files/Quando você usa a abordagem
sudo -ipara executar um comando como um usuário diferente, o comando é registrado em seu histórico.
4 Diferença entre sudo e su #
Saiba a diferença entre os comandos sudo e su e quando usá-los.
Em sistemas Linux, você pode iniciar um comando com sudo ou su. Ambos permitem executar comandos como root.
4.1 Características do comando sudo #
O
sudopermite executar um comando comoroot. Dependendo da configuração, não é necessário inserir a senha deroot, mas apenas a senha do usuário. Dessa forma, nenhuma informação sigilosa precisa ser compartilhada com todos os outros usuários (comuns).Com o arquivo de configuração do
sudo, o administrador do sistema pode controlar quais usuários têm permissão para usar osudoe restringir o uso a determinadas tarefas.O
sudoarmazena a senha em cache por um determinado período. Após esse período, será solicitada a senha novamente quando você executar outro comandosudo.Todos os comandos executados com
sudosão registrados individualmente. O arquivo de registro monitora a data e o horário, o usuário que executou o comando e o próprio comando.
4.2 Características do comando su #
O
supermite executar um comando comoroot, mas exige que você saiba a senha deroot.Ele não pode ser configurado para restringir o acesso a determinados usuários e tarefas e elevar os privilégios de qualquer pessoa que saiba a senha de
root.Os privilégios são elevados para toda a sessão de terminal. Enquanto você permanecer na sessão, a senha não será solicitada novamente.
Os comandos executados com
sunão são registrados individualmente, pois todas as ações apenas podem ser registradas com a conta do usuário.
5 Informações legais #
Copyright© 2006 – 2025 SUSE LLC e colaboradores. Todos os direitos reservados.
Permissão concedida para copiar, distribuir e/ou modificar este documento sob os termos da Licença GNU de Documentação Livre, Versão 1.2 ou (por sua opção) versão 1.3; com a Seção Invariante sendo estas informações de copyright e a licença. Uma cópia da versão 1.2 da licença está incluída na seção intitulada “GNU Free Documentation License” (Licença GNU de Documentação Livre).
Para saber as marcas registradas da SUSE, visite https://www.suse.com/company/legal/. Todas as marcas comerciais de terceiros pertencem a seus respectivos proprietários. Os símbolos de marca registrada (®, ™ etc.) indicam marcas registradas da SUSE e de suas afiliadas. Os asteriscos (*) indicam marcas registradas de terceiros.
Todas as informações deste manual foram compiladas com a maior atenção possível aos detalhes. Entretanto, isso não garante uma precisão absoluta. A SUSE LLC, suas afiliadas, os autores ou tradutores não serão responsáveis por possíveis erros nem pelas consequências resultantes de tais erros.