Qual é a melhor maneira de adicionar um usuário ao grupo sudoer?

Qual é a melhor maneira de adicionar um usuário ao grupo sudoer?

Até agora encontrei quatro maneiras diferentes de adicionar um usuário ao grupo sudoers e nem todos os métodos funcionam em todos os sistemas. Por que tantas implementações diferentes? O que é melhor? Qual é o padrão (ou seja, funciona na maioria dos sistemas)?

Diferentes implementações:

  1. Adicionando o usuário ao grupo 'wheel'.
  2. Adicionando o usuário ao grupo 'sudo'.
  3. Editando o arquivo /etc/sudoers
  4. Editando o arquivo /etc/sudoers usando visudo

Responder1

Existem duas maneiras (principais) de autorizar um usuário a executar comandos como root via sudo:

  • declare que “Alice pode executar comandos como root”;
  • declare que “Alice é uma administradora de sistema” e que “administradores de sistema podem executar comandos como root”.

A maneira de declarar “Alice é uma administradora de sistemas” é torná-la membro do grupo sysadmins, mas não existe um nome padrão para o grupo sysadmins (nem qualquer obrigação de que exista um grupo sysadmins). Alguns sistemas Unix tradicionais possuem um grupo chamadowheel, mas muitas vezes estar no grupo wheel é apenas um pré-requisito para se tornar root, e o usuário também deve saber a senha do root e executar su(é assim que o BSD a usa, em particular). Algumas distribuições, como Ubuntu e Debian, incluem um grupo chamado sudoe uma regra “membros do grupo sudopodem executar comandos como root” em sua configuração padrão.

Se /etc/sudoers(ou um arquivo em /etc/sudoers.d) contiver uma linha como %sudo ALL=(ALL:ALL) ALL, então você pode tornar um usuário um sudoer adicionando-o ao sudogrupo ( adduser alice sudo). O nome sudonão é mágico, você só precisa corresponder à entrada em /etc/sudoers.

Nunca edite /etc/sudoers(ou um arquivo sob /etc/sudoers.d) diretamente: se você cometer um erro de sintaxe, você ficará sem acesso root. Sempre use visudopara editar esse arquivo. Para escolher o editor que visudoserá executado, defina a VISUALvariável de ambiente (ou EDITOR, desde que VISUALnão esteja definida). Em uma máquina multiusuário, o uso visudotem a vantagem adicional de cuidar do bloqueio caso dois administradores editem o arquivo ao mesmo tempo.

Responder2

adduser username sudofunciona para mim - mas eu uso o Debian, que possui um arquivo cujo padrão é dar acesso sudo sudoersa todos no grupo.sudo

Responder3

Pois Ubuntuadicionei <somefile>at /etc/sudoers.d/com a linha:

<user> ALL=(ALL:ALL) ALL

Usando o comando:

visudo -f /etc/sudoers.d/<somefile>

Isso é recomendado porque deixa o /etc/suodersarquivo intacto e, portanto, evita conflitos (e a resolução manual subsequente necessária) entre atualizações. Ver:Por que /etc/sodoers.d/

Responder4

Os métodos 2 e 4 funcionarão em quase todos os Linux. Nem tente usar 3 no sistema em funcionamento! Isso pode danificar o sistema. O método 1 pode funcionar, mas não é necessário.

Por que você deve usar o visudo em vez de editar manualmente o /etc/sudoers?

Depois de obter acesso root, usei o visudo para corrigir o arquivo sudoers. Por que visual? Porque esse é o programa que VOCÊ DEVE USAR. Sim, estou um pouco zangado, porque a pessoa que quebrou este servidor deveria saber disso. Visudo é um pequeno programa adorável que verifica a sintaxe do arquivo sudoers antes de salvá-lo, para que, se você fizer algo extremamente estúpido, você saberá sobre isso antes que se torne um problema e evite que você volte ao sistema como root.

http://lickthesalt.com/2009/07/06/fail-why-you-should-always-use-visudo/

informação relacionada