Usuário Sudo não está no grupo sudo?

3

Ao adicionar um usuário assim:

sudo adduser someuser --ingroup sudo

O usuário adicionado pode usar sudo , mas ele não está em /etc/group sudo nem em /etc/sudoers
Então, como isso funciona?

    
por EdiD 23.09.2016 / 19:26

2 respostas

2

Seu comando adduser define o grupo principal do usuário como sudo .

De man adduser :

   By  default,  each  user  in  Debian GNU/Linux is given a corresponding
   group with the same name.       [ ... ]                  Users' primary
   groups  can  also be overridden from the command line with the --gid or
   --ingroup options to set the group by id or name, respectively. 

   [ ... ]  

   --ingroup GROUP
          Add the new user to GROUP instead of a usergroup or the  default
          group  defined  by  USERS_GID  in  the configuration file.  This
          affects the users primary group.  To add additional groups,  see
          the add_extra_groups option

O grupo primário normalmente tem o mesmo nome e ID do usuário. Ele não é armazenado em /etc/group , mas em /etc/passwd , assim:

bytecommander:x:1000:1000:ByteCommander,,,:/home/bytecommander:/bin/bash

O campo 4 : -separated contém o GID (group ID) do grupo primário do usuário.

Agora, /etc/group contém uma lista de todos os grupos e associa usuários que têm esse grupo como grupo adicional (não principal), como este:

sudo:x:27:bytecommander

A distinção entre grupos primários e adicionais também é visível na saída do comando id (formatação minha):

$ id
uid=1000(bytecommander) 
gid=1000(bytecommander) 
groups=1000(bytecommander),27(sudo)

O que é importante para o uso de sudo é somente a associação no grupo sudo , ele não distingue a associação primária e secundária. A linha de configuração responsável pode ser encontrada em /etc/sudoers e é assim:

%sudo   ALL=(ALL:ALL) ALL

Esta linha concede a todos os membros do grupo sudo automaticamente permissões completas para executar qualquer comando como qualquer usuário, sem precisar especificar cada usuário manualmente.

    
por Byte Commander 23.09.2016 / 20:08
2

A opção --ingroup de adduser altera / adiciona o grupo Primário do usuário adicionado e o grupo primário de um usuário é armazenado no arquivo /etc/passwd , no quarto campo : separado, como numérico GID.

Portanto, sudo está lendo o arquivo /etc/passwd e descobrindo que o usuário someuser tem o grupo primário sudo , portanto os comandos sudo estão funcionando perfeitamente.

Agora, a entrada do grupo /etc/group sudo ainda não mostraria a associação, porque /etc/group armazena apenas a associação do grupo secundário, não primária.

    
por heemayl 23.09.2016 / 19:55