Header Ads

Como controlar o acesso ao sudo no Linux

O comando sudo permite executar comandos no Linux como se você fosse outra pessoa, como root.O sudo também permite controlar quem pode acessar os recursos do root, com granularidade.Dê aos usuários acesso total ou deixe-os usar um pequeno subconjunto de comandos.Nós mostramos a você como.

sudo e permissões de raiz

Nós &’ todos ouvimos (a simplificação excessiva) de que tudo no Linux é um arquivo. Na verdade, praticamente tudo no sistema operacional, desde processos, arquivos, diretórios, soquetes e tubulações, conversa com o kernel por meio de um descritor de arquivo. Portanto, embora tudo não seja um arquivo, a maioria dos objetos do sistema operacional é manipulada como se fosse. Sempre que possível, o design de sistemas operacionais Linux e Unix segue esse princípio.

O conceito de “ tudo é um arquivo ”é abrangente no Linux.É fácil ver, então, como as permissões de arquivo no Linux se tornaram um dos pilares dos privilégios e direitos dos usuários. Se você possui um arquivo ou diretório (um tipo especial de arquivo), pode fazer o que quiser com ele, incluindo editar, renomear, mover e excluí-lo. Você também pode definir as permissões no arquivo para que outros usuários ou grupos de usuários possam ler, modificar ou executar o arquivo. Todo mundo é governado por essas permissões.

Todo mundo que é, além do superusuário, conhecido como raiz.A conta raiz é uma conta especialmente privilegiada.Não está vinculado pelas permissões em nenhum dos objetos no sistema operacional.O usuário root pode fazer qualquer coisa e, praticamente, a qualquer momento.

É claro que qualquer pessoa com acesso à senha do root pode fazer o mesmo. Eles poderiam causar estragos maliciosamente ou acidentalmente. De fato, o usuário root pode causar estragos cometendo um erro também. Ninguém é infalível.É um material perigoso.

É por isso que agora é considerado uma boa prática não fazer login como root. Entre com uma conta de usuário comum e use sudo para elevar seus privilégios pela curta duração que você precisar deles. Muitas vezes, isso é apenas para emitir um único comando.

RELACIONADO: O que "tudo é um arquivo" significa no Linux?

A lista de sudoers

sudo erajá instalado nos computadores Ubuntu 18.04.3, Manjaro 18.1.0 e Fedora 31 usados ​​para pesquisar este artigo. Isto não é uma surpresa.O sudo existe desde o início dos anos 80 e se tornou o meio padrão de operação de superusuário para quase todas as distribuições.

Quando você instala uma distribuição moderna, o usuário que você cria durante a instalação é adicionado a uma lista de usuárioschamados sudoers. Estes são os usuários que podem usar o comando sudo. Como você tem poderes de sudo, pode usá-los para adicionar outros usuários à lista de sudoers.

É claro que é imprudente atribuir o status completo de superusuário, quer queira quer não, ou para quem tiver apenas umnecessidade parcial ou específica.A lista sudoers permite especificar com quais comandos os vários usuários podem usar o sudo. Dessa forma, você não lhes fornece as chaves do reino, mas elas ainda podem realizar o que precisam fazer.

Executando um comando como outro usuário

Originalmente,foi chamado de "superusuário do", porque você poderia fazer as coisas como superusuário. Seu escopo foi ampliado agora e você pode usar o sudo para executar um comando como se você fosse qualquer usuário. Foi renomeado para refletir essa nova funcionalidade. Agora é chamado de "usuário substituto do".

Para usar o sudo para executar um comando como outro usuário, precisamos usar a opção -u (usuário). Aqui, executaremos o comando whoami como o usuário mary. Se você usar o comando sudo sem a opção -u, executará o comando como root.

E, claro, porque você está usando o sudo, será solicitado que vocêsua senha.

 sudo -u mary whoami 

A resposta de whoami nos diz que a conta de usuário que executa o comando é mary.

Você pode usar o comando sudo para efetuar login como outro usuário sem saber sua senha. Você será solicitado a fornecer sua própria senha. Precisamos usar a opção -i (login).

 sudo -i -u mary 

 pwd 

 whoami

 ls -hl 

 saia 

Você está logado como mary.O “ . bashrc ”, “ . bash_aliases ”, e “ . profile ”os arquivos da conta de usuário mary são processados ​​exatamente como se o proprietário da conta de usuário mary tivesse se logado.

  • O prompt de comando muda para refletir que esta é uma sessão para a conta de usuário mary.
  • O comando pwd repete que você está agora no diretório mary'shome.
  • whoami dizvocê está usando a conta de usuário mary.
  • Os arquivos no diretório pertencem à conta de usuário mary.
  • O comando exit retorna você à sua sessão normal de conta de usuário.

Editando o arquivo sudoers

Para adicionar usuários à lista de pessoas que podem usar o sudoers, edite o arquivo sudoers.É de vital importância que você só faça isso usando o comando visudo.O comando visudo impede que várias pessoas tentem editar o arquivo sudoers de uma só vez. Ele também executa a verificação e análise de sintaxe no conteúdo do arquivo à medida que você os salva.

Se suas edições não passarem nos testes, o arquivo não será salvo às cegas. Você obtém opções. Você pode cancelar e abandonar as alterações, voltar e editar as alterações novamente ou forçar que as edições incorretas sejam salvas.A última opção é uma péssima idéia.Não fique tentado a fazer isso. Você pode se encontrar em uma situação em que todos estão acidentalmente impedidos de usar o sudo.

Embora você inicie o processo de edição usando o comando visudo, o visudo não é um editor. Ele chama um dos editores existentes para realizar as edições do arquivo. No Manjaro e no Ubuntu, o comando visudo lançou o editor simples nano. No Fedora, o visudo lançou o vim mais capaz, mas menos intuitivo.

RELACIONADO: Como sair do editor Vi ou Vim

Se você preferirPara usar o nano no Fedora, você pode fazer isso facilmente. Primeiro, instale o nano:

sudo dnf install nano

E, em seguida, o visudo precisou ser chamado com este comando:

 sudo EDITOR = nano visudo 

Parece um bom candidato para um alias.O editor nano é aberto com o arquivo sudoers carregado.

Adicionando usuários ao grupo sudo

Use o visudo para abrir o arquivo sudoers. Use este comando ou o descrito acima para especificar o editor de sua escolha:

 sudo visudo 

Role pelo arquivo de sudoers atévocê vê a definição da entrada% sudo.

O sinal de porcentagem indica que esta é uma definição de grupo e não uma definição de usuário. Em algumas distribuições, a linha% sudo possui um hash # no início da linha. Isso faz da linha um comentário. Se for esse o caso, remova o hash e salve o arquivo.

A linha% sudo se divide assim:

  • % sudo: o nome do grupo.
  • ALL =: Esta regra se aplica a todos os hosts nesta rede.
  • (ALL: ALL): os membros deste grupo podem executar comandos como todos os usuários e todos os grupos.
  • Todos: os membros deste grupo podem executar todos os comandos.

Para reformular um pouco, os membros deste grupo podem executar qualquer comando, como qualquer usuário ou grupo, neste computador ouem qualquer outro host nesta rede. Portanto, uma maneira simples de conceder privilégios de root a alguém e a capacidade de usar o sudo é adicioná-los ao grupo sudo.

Temos dois usuários, Tom e Mary, com contas de usuário tom eMaria, respectivamente. Adicionaremos a conta de usuário tom ao grupo sudo com o comando usermod.A opção -G (groups) especifica o grupo ao qual vamos adicionar a conta tom.A opção -a (anexar) adiciona esse grupo à lista de grupos em que a conta do usuário já está. Sem essa opção, a conta do usuário seria colocada no novo grupo, mas removida de outros grupos.

 sudo usermod -a -G sudo tom 

Vamos verificar em quais grupos Mary está:

grupos 

A conta de usuário mary está apenas no grupo mary.

Vamos verificar com Tom:

 agrupa 

A conta de usuário do tom "— e, portanto, o Tom está nos grupos tom e sudo.

Vamos & ’ s tentam fazer Mary fazer algo que requer privilégios de sudo.

 sudo menos / etc / shadow 

Mary não pode olhar para dentroo arquivo restrito “ / etc / shadow. ”Ela recebe uma leve bronca por tentar usar o sudo sem permissão. Vamos ver como Tom se sai:

 sudo menos / etc / shadow 

Assim que Tom digita sua senha, ele émostrado o arquivo / etc / shadow.

Apenas adicionando-o ao grupo sudo, ele foi elevado às fileiras de elite daqueles que podem usar o sudo. Completamente irrestrito.

Concedendo aos usuários direitos sudo restritos

Tom recebeu direitos plenos de sudo. Ele pode fazer qualquer coisa que a raiz ou qualquer outra pessoa do grupo sudo possa fazer. Isso pode conceder a ele mais poder do que você está feliz em entregar.Às vezes, existe um requisito para um usuário executar uma função que requer privilégios de root, mas não há um caso justificável para que ele tenha acesso total ao sudo. Você pode alcançar esse equilíbrio adicionando-o ao arquivo sudoers e listando os comandos que eles podem usar.

Vamos conhecer Harry, proprietário da conta de usuário harry. Ele não está no grupo sudo e não possui privilégios de sudo.

 agrupa 

É útil para Harryser capaz de instalar software, mas não queremos que ele tenha direitos totais de sudo. OK, sem problemas. vamos ativar o visudo:

 sudo visudo 

Role para baixo no arquivo até passar pelas definições de grupo.Nós vamos adicionar uma linha para Harry. Como esta é uma definição de usuário e não uma definição de grupo, não precisamos iniciar a linha com um sinal de porcentagem.

A entrada para a conta de usuário harryé:

 harry ALL = / usr / bin / apt-get 

Observe que existe uma guia entre o “ harry ”e o “ ALL =. ”

Lê como a conta de usuário harry pode usar os comandos listados em todos os hosts conectados a esta rede.Há um comando listado, que é o / usr / bin / apt-get. ”Podemos conceder a Harry acesso a mais de um comando, adicionando-os à lista de comandos, separados por vírgulas.

Adicione a linha ao arquivo sudoers e salve o arquivo. Se você deseja verificar se a linha está sintaticamente correta, podemos solicitar ao visudo que verifique o arquivo e verifique a sintaxe para nós, usando a opção -c (somente verificação):

sudo visudo -c 

As verificações ocorrem e o visudo informa que tudo está bem. Harry agora deve poder usar o apt-get para instalar o software, mas deve ser recusado se tentar usar qualquer outro comando que exija o sudo.

 sudo apt-get install finger 

Os direitos apropriados de sudo foram concedidos a Harry, e ele pode instalar o software.

O que acontece se Harry tentar usar um comando diferente que exija sudo?

 sudo shutdown now 

Harry está impedido de executar o comando.Nós concedemos a ele acesso específico e restrito. Ele pode usar o comando nomeado e nada mais.

Usando aliases de usuário do sudoers

Se quisermos dar a Mary os mesmos privilégios, poderíamos adicionar uma linha no arquivo sudoers para o usuárioconta Mary exatamente da mesma maneira que fizemos com Harry. Outra maneira mais simples de obter a mesma coisa é usar um User_Alias.

no arquivo sudoers, um User_Alias ​​contém uma lista de nomes de contas de usuário.O nome do User_Alias ​​pode ser usado em uma definição para representar todas essas contas de usuário. Se você deseja alterar os privilégios dessas contas de usuário, você só tem uma linha para editar.

Vamos criar um User_Alias ​​e usá-lo em nosso arquivo sudoers.

 sudo visudo 

 Role para baixo no arquivo até chegar à linha de especificação User_Alias.

Adicione o User_Alias ​​digitando:

 User_Alias ​​INSTALLERS = harry, mary 

Cada elemento é separado por um espaço, não uma guia.A lógica é dividida em:

  • User_Alias: informa ao visudo que este será um User_Alias.
  • INSTALADORES: este é um nome arbitrário para esse alias.
  • = harry, mary: a lista de usuários a serem incluídos nesse alias.

Agora editaremos a linha que adicionamos anteriormente à conta do usuário harry:

 harry ALL = / usr / bin / apt-get 

Altere-o para que leia:

 INSTALADORES TODOS = / usr /bin / apt-get 

Isso indica que todas as contas de usuário contidas na definição dos 'INSTALADORES' ”User_Alias ​​pode executar o comando apt-get. Podemos testar isso com Mary, que agora deve poder instalar o software.

 sudo apt-get install colordiff 

Mary é capaz de instalar o software porque está nos “ INSTALLERS ”User_Alias ​​e esse User_Alias ​​recebeu esses direitos.

Três truques rápidos do sudo

Quando você esquece de adicionar sudo a um comando, digite

sudo !! 

E o último comando será repetido com o sudo adicionado ao início da linha.

Depois de usar o sudo e se autenticar com sua senha, você ganhará o &’ não é necessário usar sua senha com mais comandos sudo por 15 minutos. Se você deseja que sua autenticação seja esquecida imediatamente, use:

 sudo -k 

Você já se perguntou onde pode ver falhas nas tentativas de comando sudo?Eles acessam o “ /var/log/auth. log”Arquivo. Você pode visualizá-lo com:

 less /var/log/auth. log[/PREunette

Podemos ver a entrada da conta de usuário mary whoestava logada no TTY pts / 1 quando ela tentou executar o comando shutdown como usuário root.

Com grande potência & # 8230;

vem a capacidade de delegar partes dele a outras pessoas. Agora você sabe como capacitar outros usuários seletivamente.

Via: How to Geek

Veja Também:

Nenhum comentário