Existe um risco de segurança para os usuários que também são grupos?

5

Eu sei um pouco sobre usuários e grupos; no passado eu poderia ter um grupo como 'DBAS' ou 'ADMINS' e eu adicionaria usuários individuais a cada grupo ...

Mas fiquei surpreso ao saber que podia adicionar usuários a outros usuários, como se fossem grupos.

Por exemplo, se meu / etc / group contiver o seguinte:

user1:x:12501:
user2:x:12502:user1
admin:x:123:user2,jim,bob

Como user2 é um membro do grupo admin, e user1 é um membro de user2, o user1 é efetivamente um administrador? Se o grupo admin estiver no arquivo sudoers, o user1 também pode usá-lo?

Eu tentei simular isso e não consegui fazer isso como user1 ... mas não tenho certeza se é impossível.

EDIT: SORRY - erro atualizado em questão.

    
por Rob P. 14.10.2012 / 22:54

2 respostas

9

No seu exemplo você:

  • Ter o usuário user1 como parte do grupo user2 .
  • Ter o usuário user2 como parte do grupo admin .

O usuário user1 é diferente do grupo user1 .

Como (o usuário) user2 é um membro do grupo admin , e (o usuário) user1 é um membro do (o grupo) user2 - é user1 efetivamente um administrador?

  • Não, o usuário user2 é um membro do grupo admin . Não é o grupo user1 .

Se o grupo admin estiver no arquivo sudoers, (o usuário) user2 também poderá usá-lo?

  • Sim, assim como os outros usuários que são membros do grupo, jim e bob.

Se o grupo admin estiver no arquivo sudoers, o user1 também poderá usá-lo?

  • Não, pois o grupo de administradores consiste apenas de usuários. Tem o usuário user2 nele. Mesmo que o usuário user1 faça parte do grupo user2 . Eles são coisas diferentes, mas compartilham o mesmo nome nesta e em muitas configurações de distros. Grupos de um lado, usuários do outro. Se os nomes combinam, eles ainda são coisas diferentes.

Para resumir : separe o usuário do grupo. Os nomes podem ser os mesmos, mas eles se referem a entidades diferentes. No GNU / Linux você não tem grupos dentro de grupos, um grupo só pode conter usuários (o que é diferente do Windows).

    
por Deleted 14.10.2012 / 23:10
5

Um pouco de fundo: no Linux, um usuário é sempre um membro de um grupo primário e também pode ser um membro de zero ou mais de grupos secundários .

Quando um usuário cria um arquivo, o ID do usuário e group ID são definidos como o ID do usuário e seu grupo principal, respectivamente, para que o arquivo seja "de propriedade" desse usuário e grupo. Além disso, as permissões no arquivo são definidas automaticamente usando a configuração atual umask , que inclui permissões para "usuário", "grupo" e outros". Assim, mais ou menos, todos os usuários no mesmo grupo que o grupo primário do usuário estão obtendo pelo menos algumas permissões nos arquivos criados pelo usuário.

Grupos secundários, por outro lado, não afetam a propriedade dos arquivos criados pelo usuário, você pode pensar neles como uma forma de permitir o acesso a arquivos criados por outras pessoas.

Como você pode ver, o comportamento "automático" do grupo primário torna um pouco propenso a permitir o acesso de forma não intencional. Por esta razão, o Ubuntu, juntamente com muitas outras distribuições Linux, usa o esquema Grupo de Usuários Privados - quando um usuário é criado, um grupo com o mesmo nome é criado e é definido como o grupo principal desse usuário. Portanto, o grupo primário do usuário é sempre um grupo com exatamente um membro.

De documentação do CentOS :

  

O Red Hat Enterprise Linux usa um esquema de grupo privado de usuário (UPG), que   torna os grupos do UNIX mais fáceis de gerenciar.

     

Um UPG é criado sempre que um novo usuário é adicionado ao sistema. Um UPG   tem o mesmo nome que o usuário para o qual foi criado e esse usuário   é o único membro da UPG.

     

UPGs tornam seguro definir permissões padrão para um arquivo recém-criado   ou diretório, permitindo que tanto o usuário quanto o grupo desse usuário   faça modificações no arquivo ou diretório.

     

A configuração que determina quais permissões são aplicadas a um novo   arquivo ou diretório criado é chamado de umask e é configurado no   arquivo / etc / bashrc. Tradicionalmente em sistemas UNIX, o umask está configurado para   022, que permite que apenas o usuário que criou o arquivo ou diretório   faça modificações. Sob este esquema, todos os outros usuários, incluindo   membros do grupo de criadores, não estão autorizados a fazer   modificações. No entanto, sob o esquema UPG, essa "proteção de grupo"   não é necessário, pois todo usuário tem seu próprio grupo privado.

Então, como você pode ver, não há nenhuma coisa de "usuário é membro de outro usuário" - como menciona @Kent, em usuários Linux não podem "conter" outros usuários e também grupos não podem ser aninhados e só podem conter usuários, não outros grupos. A fonte de sua confusão é que dentro do grupo primário do usuário, o grupo primário do usuário é um grupo "privado" com o mesmo nome do usuário.

    
por Sergey 15.10.2012 / 00:09