Quem deve possuir arquivos compartilhados por um grupo e para onde eles devem ir

2

Estou configurando uma estação de trabalho Linux que será usada por um pequeno número de usuários (20-30). Esses usuários pertencerão a um pequeno conjunto de grupos (de 5 a 10) com cada usuário pertencente a pelo menos um grupo e potencialmente a vários grupos. Na estação de trabalho, existem arquivos que só devem ser gravados por membros de um grupo específico. Cada arquivo é somente gravável por membros de um grupo, então as permissões padrão do Linux devem funcionar bem. Eu tenho duas perguntas.

Quem deve possuir os arquivos que já existem? Eu estava pensando em root ou criando um conjunto de usuários fictícios correspondentes aos grupos. Existe uma escolha melhor que estou perdendo? Parece que isso é improvável uma situação única, então eu esperava que houvesse uma convenção padrão.

A segunda pergunta é onde devo colocar os arquivos. Se eu fizesse usuários simulados, poderia criar subdiretórios em /home/ . Se o root possui os arquivos eu vou com /srv/groups/ ou talvez '/ share /? Mais uma vez, existe uma convenção?

    
por StrongBad 09.05.2014 / 14:49

2 respostas

3

Who should own the files that already exist? I was thinking either root or creating a set of dummy users corresponding to the groups.

Deixando-os de propriedade root mas pertencendo a um grupo comum, presumindo que os arquivos são mascarados 0002 (ou seja, são graváveis em grupo) tem um pouco de vantagem em termos de impedi-los de se tornar acidentalmente renomados se você criar usuários para combinar com o grupo grupos e as pessoas que estão nos grupos podem fazer login como esse usuário. Estou me referindo a acidente aqui, porque é claro que um usuário malvado do grupo só poderá excluir os arquivos em qualquer caso. Mas se eles forem de propriedade root (ou qualquer outro usuário que não seja o grupo ), enquanto alguém do grupo ainda puder escrever para eles (e, portanto, excluí-los), eles não poderão guarde ou modifique as permissões para que outros membros do grupo não possam acessar o arquivo posteriormente.

Usar um grupo, mas nenhum proprietário fixo (ou seja, os arquivos podem ser de propriedade de qualquer pessoa, mas deve estar no grupo correto com permissões de grupo) tem uma vantagem se os usuários criarem arquivos (veja abaixo).

A criação de novos usuários apenas para corresponder aos grupos provavelmente criará mais problemas em potencial do que eles realmente resolvem. Se usar permissões de grupo funcionar, fique com isso. Você também pode criar um pequeno comando para o superusuário:

#!/bin/sh
chown -R root:groupx $1
chmod -R g+w $1

E use foo /some/directory . Isso garantirá que tudo na árvore seja de propriedade root , com grupo groupx e grupo gravável.

Existe um problema potencial ao usar root como proprietário se a raiz adicionar o bit setuid a um arquivo, mas acredito que só o dono pode fazer isso. Se você estiver realmente preocupado, crie um usuário fictício, mas não aquele que corresponda ao grupo. Um que não tem privilégios, mas ninguém pode usar.

Há mais um problema com os usuários que criam novos arquivos, que por padrão serão de propriedade deles. Eles poderão alterá-lo para o grupo correto, o que tornará o arquivo acessível a outras pessoas, mas não poderá alterar o proprietário. Por essa razão, e porque as pessoas podem esquecer, você pode querer executar foo /some/directory em intervalos regulares ou momentos oportunos (por exemplo, quando ninguém estiver logado, pois alterar a propriedade pode afetar o software que tem o arquivo aberto).

Considerando o último parágrafo, você poderia simplesmente dizer que o proprietário não é importante , apenas o grupo é importante. Nesse caso, o comando foo deve usar:

chgrp -R groupx $1

em vez de chown .

where should I put the files

Criar um /home/groupx é absolutamente correto mesmo se groupx for um grupo e não um usuário. O único problema em potencial seria se você fosse criar um usuário com o mesmo nome - mas você não quer isso de qualquer maneira. Coloque os arquivos lá e foo /home/groupx .

Se você não quiser que os usuários criem arquivos, defina o diretório 755. Eles ainda poderão modificar os arquivos pertencentes ao grupo deles.

    
por 09.05.2014 / 15:08
1

Normalmente, nessa situação, os arquivos pertencerão a quem os salvou por último (ou quem os criou, se estiverem sendo editados com um programa que modifica o arquivo existente em vez de criar uma nova versão). Se você estiver criando um conjunto de arquivos iniciais, eu os deixo de propriedade da sua conta, a menos que você esteja agrupando dados para um grupo ao qual você não pertence. Nesse caso, o root é tão bom quanto qualquer outro. Mas não é grande coisa.

Não há uma convenção amplamente aceita para dados que não fazem parte do sistema ( /usr , /var , /bin , /sbin , /lib , /etc ) nem dos diretórios home dos usuários ( %código%). Você pode criar outros diretórios em /home ou pode colocá-los em outro lugar. /home é, em princípio, para dados usados por servidores, mas como administrador do sistema, você está livre para colocar o que quiser lá. /srv é uma escolha popular para "diversos dados armazenados no MACHINENAME" em redes nas quais máquinas exportam sistemas de arquivos entre si.

    
por 10.05.2014 / 04:00