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 o- sudoem determinados casos de uso.
- REQUISITOS
- Privilégios de - rootou- sudo. 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 do- sudo”.
- O pacote sudo precisa ser instalado. Por padrão, esse pacote está disponível no SLE Micro. 
 
1 Conceitos básicos do sudo #
      Saiba sobre os conceitos básicos do sudo e como ele funciona nos sistemas SLE Micro.
      
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 em sistemas SLE Micro #
    Por motivos de segurança, todos os sistemas SLE Micro 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 são mantidos por um determinado período 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]
    O exemplo a seguir explica como o comando sudo é usado para abrir o Centro de Controle do YaST diretamente no terminal. Para abrir o YaST, são necessários direitos de administrador e, portanto, ele só funciona com o comando sudo.
  
sudo #>yastAbsolute path to 'yast' is '/usr/sbin/yast', so running it may require superuser privileges (eg. root).1>sudoyast[sudo] password for root:2
| 
            Quando apenas o comando  | |
| 
            Ao iniciar o comando  Após a autenticação bem-sucedida, o é aberto. | 
            Os privilégios elevados são mantidos por um determinado período, portanto, você não precisa inserir uma senha novamente para o próximo comando sudo.
           
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.txt
- Tente copiar o arquivo para o diretório - /usr/local/bin/com:- >- cp test.txt /usr/local/bin- O 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:- >- sudo- cp test.txt /usr/local/bin
- Será solicitado para você inserir 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, execute- sudo !!.- >- 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:- >- sudo- zypper [--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:- >- sudo- zypper addrepo https://download.docker.com/linux/suse/docker-ce- >- sudo- zypper refresh- >- sudo- zypper search docker-ce- >- sudo- zypper install docker-ce- Você não precisa adicionar - sudoantes de comandos- zypperque 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 usar- sudo:- >- zypper lr
- Gerenciar serviços do sistema usando sudoesystemctl
- Em sistemas que usam - systemdpara gerenciamento de serviços, você pode usar o comando- systemctlcom- sudo. Por exemplo, para reiniciar o serviço do Servidor Web Apache, execute:- >- sudo- systemctl restart apache2- Você não precisa adicionar - sudoantes de comandos- systemctlque não modificam o sistema ou fornecem acesso privilegiado às informações. Por exemplo, você pode exibir o status do Network Manager sem usar- sudo:- >- 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:- >- sudo- usermod [OPTION] USERNAME- Por exemplo, para definir o número de dias como - 30para desabilitar permanentemente a conta do usuário- tuxapós o vencimento da senha, execute:- >- sudo- usermod --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: - >- sudo- chown [OPTION] [OWNER:[GROUP]] FILE- Por exemplo, para conceder a propriedade de arquivos e subdiretórios a - tuxno diretório- /home/test/tux-files, execute:- >- sudo- chown tux /home/test/tux-files/ --recursive- Você 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 comando- sudo -s. Um shell executado pelo comando- sudo -sherda o ambiente do usuário atual. O comando- sudo -stambém oferece algumas medidas de controle de privilégios.- Para executar um comando como um usuário diferente, use: - >- sudo- -s -u USERNAME COMMAND- Por 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 destino- tux, execute:- >- sudo- -s -u tux ls -alrt /home/test/tux-files/ --recursive- Quando 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 comando- sudo -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 COMMAND- O 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/como- tux, 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 como- root. Dependendo da configuração, não é necessário inserir a senha de- root, 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 o- sudoe 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 comando- sudo.
- 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 como- root, mas exige que você saiba a senha de- root.
- 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 ver 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.