Qual método usar para conceder sudo

13

Qual é a diferença entre adicionar um usuário a /etc/sudoerse usermod -a -G sudo? Qual método deve ser usado para conceder sudo?

Sonique
fonte
6
Para o Ubuntu, você deve evitar editá-lo /etc/sudoerssob quaisquer condições. Em vez disso, adicione fragmentos de configuração ao /etc/sudoers.ddiretório. O uso da pasta de fragmentos facilita a atualização desde que você modificou um conffile.
precisa
@Zoredache - excelente ponto. Você se importa se eu adicionar isso à minha resposta? Não quero me responsabilizar por isso, mas essa dica deve ter uma resposta em algum lugar, caso os deuses do comentário atinjam isso por algum motivo.
EEAA
2
@EEAA, concedo a você permissão para usar o descrito acima, e qualquer outro comentário que eu postar para mesclar em respostas reais. Eu adiciono comentários porque sou muito preguiçoso / ocupado para adicionar uma resposta completa, mas não me importo se as pessoas aceitarem meus comentários e os integrarem em uma boa resposta completa.
precisa

Respostas:

19

Se você puder evitá-lo, nunca conceda privilégios de sudo a usuários individuais. Sempre conceda privilégios a um grupo e adicione usuários a esse grupo.

Para servidores baseados no Ubuntu, em vez de adicionar linhas /etc/sudoers, adicione fragmentos de arquivo de configuração no /etc/sudoers.d. Isso é mais flexível, mais fácil de entender, mais resiliente diante das atualizações e funciona melhor com sistemas gerenciados por sistemas de gerenciamento de configuração.

NOTA: nunca edite /etc/sudoersdiretamente. Em vez disso, use visudo, que executará a verificação de sintaxe em suas edições, impedindo que você quebre sua configuração do sudo com sintaxe inválida.

EEAA
fonte
por que não adicionar o grupo a /etc/sudoers?
Flak DiNenno
1
@FlakDiNenno - certo, isso é exatamente o que eu sugeri.
EEAA
ahhh ... eu pensei que você estava se referindo àusermod -a -G sudo
Flak DiNenno
+1 para o aviso sobre o uso visudo em vez de editar direta
Flak DiNenno
Bom ponto sobre visudo. Algumas pessoas não percebem que existe um motivo /etc/sudoersmarcado como somente leitura.
ub3rst4r
9

Acabei de encontrar este pequeno detalhe por aí ... parece que você precisa ter um cuidado especial ao usar a -Gopção no Ubuntu, em particular na -gopção combinada . Então:

  1. Use usermod -aGpara adicionar o (s) usuário (s) a um grupo.
  2. Então, como o @EEAA sugeriu , adicione o grupo ao arquivo / etc / sudoers usando o $ sudovisudocomando (chama automaticamente um editor privilegiado com verificação de sintaxe).

Aqui estão as informações sobre a -aGopção no Ubuntu, obtidas aqui http://ubuntuforums.org/showthread.php?t=1240477 :

'Estou lendo a "Bíblia de scripts e linha de comando do Linux" do Wiley - e eles disseram que o usermod -G "anexa" um grupo a qualquer conta de usuário que você esteja modificando. Descobri que isso é falso no Ubuntu, não sei se é diferente em outras distribuições ou um erro de digitação no livro. Ele o remove de TODOS os outros grupos aos quais você pertence, exceto o seu grupo de usuários padrão (modificado pela opção -g). Consegui me remover do grupo de administradores e não consegui mais sudo nada. Graças a Deus pelo modo de recuperação ... '

A opção correta é usermod -aG . Lição aprendida...

Flak DiNenno
fonte
2
o downvoter pode ter a cortesia de fornecer algumas críticas construtivas aqui. tia.
Flak DiNenno
Não diminuí a votação, mas sua 'resposta' não responde realmente à pergunta. Este é um site de perguntas e respostas bastante rigoroso, geralmente esperamos que as respostas abordem diretamente a pergunta. BTW, sim, eu sei que você abordou um pouco a questão, mas sua "resposta" parece mais fazer o que a AEAA disse, mas esteja avisado sobre essa peculiaridade estranha.
precisa
@ Zoredache obrigado por reservar um tempo. As etapas 1 e 2 não dão claramente instruções para "um método preferido para conceder sudo"? Qual é o que o OP pediu?
Flak DiNenno
1

Você não nos diz qual o tamanho do seu ambiente, mas se for mais de uma máquina, convém considerar a configuração sudousando LDAPs como uma alternativa para editar localizadores de sudoers localmente (por meio visudoou usando o /etc/sudoers.dmétodo de fragmentos).

A configuração LDAP é uma maneira bem testada de garantir que várias máquinas tenham a mesma sudoconfiguração e apresente um bom ambiente unificado (com gerenciamento central de um importante mecanismo de autorização). Como bônus, se você já usa LDAP (ou AD) para autenticação / autorização em seu ambiente, pode tirar proveito da infraestrutura existente (e, se não o considerar, deve considerá-la seriamente - a centralização tem muitos benefícios).

Tudo o que as pessoas já disseram nas outras respostas sobre a criação de grupos autorizados ainda permanece - é mais fácil conforme você aumenta os privilégios para um grupo e gerencia os membros do grupo do que lidar com os direitos de gerenciamento de usuários individuais.

voretaq7
fonte