logo

Linux sudo

Introdução

O comando sudo do Linux significa Superusuário faz . Geralmente, é aplicado como prefixo de alguns comandos que o superusuário pode executar.

Se prefixarmos o comando junto com outros comandos, ele executará esse comando com altos privilégios. Em outras palavras, permitirá que o usuário, com a autorização adequada, receba um comando como outros usuários como o superusuário.

É igual à opção 'executar como administrador' no Windows. A opção sudo nos permite ter mais de um administrador. Os usuários que podem aplicar o comando sudo precisam ter a entrada dentro do arquivo sudoers posicionada em '/etc/sudoers/' .

Nota: Para visualizar ou editar o arquivo temos que aplicar o comando sudo. Para editar o arquivo, sugere-se aplicar o comando ‘visudo’.

O comando sudo, por padrão, precisa que os usuários se verifiquem junto com uma senha que é a senha do usuário, e não a senha root em si.

Sintaxe do comando sudo

A sintaxe do comando sudo é mencionada abaixo:

 sudo OPTION... COMMAND 

Opção no comando sudo

Algumas das opções importantes no comando sudo são explicadas abaixo:

1. -Em: Ele significa versão . Esta opção habilita o comando sudo para imprimir o número da versão e sair. A opção -V imprimiria os padrões da lista sudo que a pausa foi observada se o usuário solicitante já for o root.

Linux sudo

2. -eu: Ele significa lista . Esta opção ajudará a imprimir os vários comandos permitidos ao usuário no host atual.

Mostra que o usuário atual pode aplicar todos os comandos como sudo.

ano em trimestres
Linux sudo

3. -h ou -ajuda: O h significa ajuda nesta opção. Esta opção habilita o comando sudo para imprimir uma mensagem de uso e saída.

Linux sudo

4. -em: Ele significa validar . Se o comando sudo atualizar o carimbo de data/hora do usuário, a validação solicitará a senha do usuário, se necessário. Ele estende o tempo limite do comando sudo pelos outros 5 minutos, mas não executa um comando. Não fornece nenhum resultado.

5. -k: Ele significa matar . Esta opção invalida o carimbo de data/hora do usuário para sudo. Portanto, na próxima vez que o comando sudo for executado, uma senha será necessária. A opção -k não necessita de senha e foi incluída para permitir aos usuários revogar as permissões do comando sudo através do .sair arquivo.

6.-b: Ele significa fundo . Esta opção informa ao comando sudo para executar os comandos fornecidos em segundo plano.

Nota: Se aplicarmos esta opção, não poderemos aplicar o controle de trabalho do shell para manipular o processo.

Linux sudo

7. -K: Esta opção é igual à opção -k. No entanto, significa claro matar . Esta opção é aplicada para remover totalmente o carimbo de data/hora do usuário. Da mesma forma, não precisa de nenhuma senha.

8.-p: Ele significa incitar . Esta opção nos permite substituir o prompt de senha (padrão) e aplicar um personalizado. São permitidas algumas fugas percentuais, que são as seguintes:

  • %u é desenvolvido para o nome de login do usuário invocador.
  • %U é desenvolvido para o nome de login do usuário
  • %h é desenvolvido para o nome do host (local) sem nenhum nome de domínio.
  • %H é desenvolvido para o nome do host (local) com o nome do domínio (somente quando o nome do host da máquina estiver completamente qualificado)
  • %% (dois caracteres consecutivos) pode ser dividido em um caractere % individual.
Linux sudo

9. -n: Esta opção executará o comando sem solicitar a senha. É muito útil se desejarmos executar alguns comandos como tarefas em segundo plano (ou dentro do shell script), onde não desejamos que o comando sudo pergunte sobre a senha. Esta opção é a abreviação de não interativo.

objeto de array em java

10. -em: Ele significa do utilizador . Esta opção permite que o comando sudo execute os comandos descritos, exceto o root como usuário. Para especificar um UID em vez do nome de usuário, podemos usar o #uid .

11. -H: Ele significa LAR . Esta opção pode definir um Variável de ambiente HOME para nosso diretório inicial do usuário root conforme descrito no arquivo passwd. O comando sudo por padrão não altera o HOME.

12.-s: Representa o concha . Esta opção executa o shell descrito através de um Variável de ambiente SHELL quando está definido ou este shell conforme descrito dentro do senha arquivo.

13. -S: Ele significa stdin . Esta opção habilita o comando sudo para ler a senha por meio da entrada padrão em vez do dispositivo terminal.

14.-: Esta opção ilustra que o comando sudo deve parar de processar os argumentos da linha de comando. É mais útil em conjunto com um sinalizador -s.

15. -a: Ele significa Tipo de Autenticação . Esta opção permite que o comando sudo use o tipo de autenticação descrito se estiver validando um usuário, conforme permitido pelo /etc/login/.config .

renomear diretório linux

O administrador do sistema pode descrever a lista de métodos de autenticação específica do sudo incluindo o 'auto-sudo' entrada dentro do /etc/login/.config .

Linux sudo

Variáveis ​​de ambiente no comando sudo

A seguir estão algumas das variáveis ​​de ambiente aplicadas pelo comando sudo:

Sim não. Marcação Descrição
1. EDITOR É um editor padrão que pode ser usado dentro do modo -e (sudoedit) quando o VISUAL não está corrigido.
2. LAR Ele será definido como o homedir do usuário (destino) no modo -H ou -s (ou quando o comando sudo foi formado com a opção, ou seja, -enable-shell-sets-home).
3. CAMINHO Ele é definido com o valor sensato quando a opção, ou seja, secure_path sudoers é corrigida.
4. CONCHA Pode ser usado para determinar o shell a ser executado com a opção -s.
5. SUDO_COMMAND Ele define um comando executado pelo comando sudo.
6. SUDO_PROMPT Pode ser usado como um prompt de senha (padrão).
7. SUDO_USER Define o login do usuário que solicita o comando sudo.
8. SUDO_UID Ele define o uid do usuário que solicita o comando sudo.
9. SUDO_GID Ele define o gid do usuário que solicita o comando sudo.
10. SUL_PS1 PS1 seria fixado em seu valor se definido.
onze. DO UTILIZADOR Ele é definido para o usuário (root, a menos que a opção, ou seja, -u, seja descrita).
12. VISUAL É um editor padrão e usa dentro do modo -e (sudoedit).

História do comando sudo

Cliff Spencer e Robert Coggeshall escreveram o subsistema real em 1980 na SUNY/Buffalo no Departamento de Ciência da Computação. Robert Coggeshall levou sudo para a Universidade do Colorado em Boulder com ele. Substancialmente, os recursos e o código foram alterados pelos membros de TI da Faculdade de Engenharia e do Departamento de Ciência da Computação da Universidade do Colorado em Boulder e ciência aplicada com Todd C. Miller entre 1986-1993.

Publicamente, a versão mais recente é gerenciada desde 1994 por Todd .C Miller (desenvolvedor do OpenBSD) e é compartilhada desde 1999 sob a licença estilo ISC.

Thomas Claburn caracterizou essas incertezas como exageradas em novembro de 2009 em resposta ao fato de a Microsoft ter o privilégio sudo. Estritamente, as reivindicações foram enquadradas em uma GUI específica, em vez da abordagem sudo.

Design do comando sudo

Os usuários podem fornecer sua senha ao sudo quando necessário, em vez de um superusuário, ao contrário do comando su. Permite que usuários acessíveis exerçam privilégios qualificados sem comprometer o sigilo da senha da outra conta.

  • Quando o arquivo de configuração permite o acesso do usuário, após a autenticação o sistema solicita o comando reivindicado.
  • O comando sudo reteve os direitos de invocação do usuário por um período de carência (normalmente 5 minutos) por pseudoterminal e permite que o usuário execute vários comandos sucessivos como o usuário reivindicado sem ter que fornecer qualquer senha novamente.
  • O comando sudo pode ser configurado para registrar cada comando executado como um recurso de auditoria e segurança.
  • No momento, um usuário dispara por invocar o comando sudo sem estar listado dentro do arquivo de configuração, uma ilustração de exceção é apresentada a esse usuário informando que o tiro foi gravado.
  • Uma entrada seria salva dentro do sistema e o usuário root seria informado por correio.

Configuração do comando sudo

O /etc/sudoers O arquivo inclui os grupos de usuários ou a lista de usuários com permissão para executar um conjunto de comandos enquanto contém os direitos de um usuário root ou outro usuário listado. O programa pode estar configurado para precisar de uma senha.

Impacto do comando sudo

Em algumas distribuições de sistema, o comando sudo substituiu o uso (padrão) de um login diferente do superusuário para várias operações administrativas, principalmente em alguns macOS da Apple, bem como em distribuições Linux.

Ele evita algumas explorações e também permite um registro mais protegido dos comandos administrativos.

RBAC

O comando sudo pode ser usado para transitar entre vários tipos de funções dentro do controle de acesso baseado em funções em colaboração com o SELinux.

Programas e ferramentas semelhantes

O visudo é um utilitário de linha de comando que permite editar o arquivo de configuração do sudo de forma à prova de falhas. Ele executa verificações de sintaxe e integridade e também evita mais de uma edição simultânea junto com bloqueios.

pesquisa binária em java

O programa runas facilita o mesmo desempenho no Microsoft Windows; no entanto, ele não pode passar longas linhas de comando atuais para um filho, variáveis ​​de ambiente ou diretórios.

Não suporta elevação geral, mas ajuda a executar o filho como qualquer outro usuário. Para Windows, um verdadeiro sudo e su que pode transferir cada um desses detalhes de estado e iniciar o filho como outro usuário ou elevado é adicionado com Concha Hamilton C .

A GUI está disponível para sudo ( gksudo notavelmente), mas está obsoleto no Debian e também não está mais no Ubuntu. Vários outros tipos de interfaces de usuário não são projetados diretamente no sudo, mas facilitam a mesma elevação de privilégios (temporária) para objetivos administrativos como Serviços de autorização do Mac OS X, controle de conta de usuário dentro do Microsoft Windows , e pkexec dentro dos sistemas operacionais do tipo Unix .

Desde a versão 5.8 do OpenBSD (outubro de 2015), doas está disponível. Foi especificado para substituir o comando sudo dentro do sistema base do OpenBSD.

dele vs. sudo

Se estamos acostumados com uma configuração mais clássica do Linux, estamos acostumados a aplicar o comando su para obter privilégios de root. Também podemos emitir o comando su para efetuar login efetivamente como root (a casa do root se torna nossa casa).

Usando esses tipos de distribuições, também podemos fazer login como usuário de rota. Porém, não é uma boa ideia fazer login como usuário root. Se estivermos aplicando uma distribuição que depende do comando su e permite o login do usuário root, faça login como nosso usuário padrão e o comando su para o usuário root.

Provavelmente, notaremos que não podemos fazer login como usuário root usando distribuições baseadas em sudo. Na verdade, em algumas distribuições como o Ubuntu, a conta do usuário root foi desabilitada.

aplicativos de computação em nuvem

Não podemos fazer login como usuário root e usar o comando su para nos tornarmos um usuário root. O que poderíamos fazer é emitir esses comandos usando o comando sudo para obter privilégios administrativos.

Uso do comando sudo

Existem duas maneiras diferentes de executar aplicativos administrativos com Linux. Podemos alterar o superusuário ou usuário root usando o comando su ou podemos aproveitar os benefícios do comando sudo.

Quando utilizamos nosso tempo no terminal, sudo é um dos comandos importantes que usaremos com bastante frequência. Usar o comando sudo em vez de fazer login, pois o usuário root está mais protegido porque podemos conceder apenas alguns privilégios administrativos a um único usuário sem o seu conhecimento da senha root.

A forma como o implementamos depende de qual distro usamos. Algumas distribuições permitem ao usuário root (como OpenSUSE, Chapéu Vermelho , ou Fedora ), enquanto alguns não (como Debian e Ubuntu ).

Usar o comando sudo é simples em sua forma básica. Por exemplo, temos que executar o dpkg para instalar um software. Se apenas executarmos o dpkg -isoftware.deb comando como o usuário padrão, receberemos uma mensagem de erro informando que o usuário não tem permissões para executar o comando.

É por isso que, por padrão, os usuários padrão não podem instalar vários aplicativos em uma máquina Linux. Se quisermos instalar qualquer aplicativo na máquina Linux, precisamos ter privilégios de superusuário.

Em vez disso, executaremos o sudo dpkg -i software.deb comando para que possamos executar a instalação com sucesso.

Instalando o comando sudo

O pacote do comando sudo está pré-instalado na maioria das distribuições Linux. Para confirmar se o pacote está instalado em nosso sistema, devem ser seguidos os passos abaixo:

  • Em primeiro lugar, abra nosso terminal.
  • Digite sudo e clique no botão Enter.
  • Se tivermos o pacote sudo instalado em nosso sistema, ele mostrará uma pequena mensagem.
  • Caso contrário, notificaremos por mensagem, ou seja, comando sudo não encontrado.
  • Se o pacote não estiver instalado, podemos instalá-lo facilmente aplicando o gerenciador de pacotes de distribuição excessiva.

Instale o Sudo no Fedora e CentOS

 $ yum install sudo 

Instale o Sudo no Debian e Ubuntu

 $ apt install sudo 

Linux sudo

Comando para atualizar o sudo

Linux sudo