Agrupar com permissões de arquivo de grupo

13

Eu tentei encontrar isso aqui, mas não podia me desculpar se é uma duplicata.

Digamos que eu tenha 2 grupos e um usuário: group1, group2, user1 com a seguinte estrutura: group1 é um membro do grupo 2, user1 é um membro do group1

Agora diga que tenho os seguintes arquivos com permissões relevantes

file1 root:group1 660
file2 root:group2 660

Agora, quando eu faço logon no usuário1, consigo editar o arquivo1, mas não o arquivo2. Com exceção de adicionar usuário1 ao grupo2, existe alguma maneira de fazer isso? ou não tem como?

Estou usando o Ubuntu btw.

Aram Papazian
fonte
Se não me engano, as permissões clássicas baseadas em grupo no Linux não permitem que você coloque um grupo dentro de outro grupo. Então você instalou algo que habilita esse recurso?
Gunther Struyf 9/09/12
Um usuário pode ser membro de vários grupos. Se você adicionar Usuário1 ao grupo2, ele poderá alterar o Arquivo2. O comando de sua escolha seria useradd.
user1146332
@GuntherStruyf Eu não mudar nada ... Do que eu poderia dizer, Ubuntu permite-lo por padrão ...
Aram Papazian
@ user1146332 O ponto principal é não adicionar user1 ao grupo2. Se essa é a única maneira, então eu posso fazer isso, mas, teoricamente, eu prefiro uma estrutura de aninhamento de grupo ...
Aram Papazian

Respostas:

15

Não existe um grupo como membro de um grupo. Um grupo, por definição, tem um conjunto de membros do usuário. Nunca ouvi falar de um recurso que permitisse especificar "subgrupos" onde membros de subgrupos recebem automaticamente associação ao supergrupo no login. Se /etc/grouplistar group1como membro group2, ele designará o usuário chamado group1(se esse usuário existir, o que é possível: nomes de usuários e nomes de grupos residem em diferentes espaços de nomes).

Se você deseja que o usuário1 tenha acesso ao arquivo2, você tem várias soluções:

  • Tornar file2acessível ao mundo (você provavelmente não quer isso)
  • Faça do usuário1 o proprietário do arquivo2: chown user1 file2
  • Adicione usuário1 ao grupo2: adduser user1 group2
  • Adicione uma ACL para file2que conceda acesso ao usuário1 ou ao grupo:

    setfacl -m user:user1:rw file2
    setfacl -m group:group1:rw file2
    

    Consulte Tornar todos os novos arquivos em um diretório acessível a um grupo para ativar as ACLs.

Gilles 'SO- parar de ser mau'
fonte
7
Sim, o unix / linux não suporta grupos aninhados. Seria útil se o fizesse, mas simplesmente não. O Windows sim e o Active Directory sim. O LDAP também funciona, portanto, deve ser possível se os dados da conta e do grupo estiverem no LDAP, e não nos arquivos / etc / passwd e / etc / group ... mas isso é um exagero quando existem soluções simples como ACLs (ou apenas adicione o usuário para ambos os grupos)
cas