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

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

Estou configurando uma estação de trabalho Linux que será usada por um pequeno número de usuários (20 a 30). Esses usuários pertencerão a um pequeno conjunto de grupos (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 graváveis ​​por membros de um determinado grupo. Cada arquivo só pode ser gravado por membros de um grupo, portanto as permissões padrão do Linux devem funcionar perfeitamente. Eu tenho duas perguntas.

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

A segunda questão é onde devo colocar os arquivos. Se eu criasse usuários fictícios, poderia criar subdiretórios em /home/. Se o root for o proprietário dos arquivos, eu uso /srv/groups/ou talvez `/share/? Novamente, existe uma convenção?

Responder1

Quem deve possuir os arquivos que já existem? Eu estava pensando em fazer root ou criar um conjunto de usuários fictícios correspondentes aos grupos.

Deixá-los como root, mas pertencendo a um grupo comum, presumindo que os arquivos sejam mascarados 0002 (ou seja, sejam graváveis ​​em grupo) tem uma pequena vantagem em termos de evitar que eles sejam renomeados acidentalmente se você criar usuários para corresponder aos grupos e ao as pessoas que estão nos grupos podem fazer login como esse usuário. Estou me referindo aacidenteaqui porque é claro que um usuário malicioso no grupo poderá excluir os arquivos de qualquer maneira. Mas se eles pertencerem ao root (ou a qualquer outro usuárioesse não é o grupo), então, embora alguém no grupo ainda possa escrever para eles (e, portanto, excluí-los), eles não poderão recuperar ou modificar as permissões de forma que outros membros do grupo não possam acessar o arquivo posteriormente.

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

Criar novos usuários apenas para combinar os grupos provavelmente criará mais problemas potenciais do que realmente resolverá. Se usar permissões de grupo funcionar, continue assim. 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-o foo /some/directory. Isso garantirá que tudo na árvore seja possuído root, com grupo groupxe gravável em grupo.

Há um problema potencial ao usar rootcomo proprietário se root então adiciona osetuidbit em um arquivo, mas acredito que apenas o proprietário pode fazer isso. Se você estiver realmente preocupado, crie um usuário fictício - mas não um que corresponda ao grupo. Aquele que não tem privilégios, mas ninguém pode usar.

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

Levando em conta o último parágrafo, você poderia simplesmente dizero dono não importa nada, apenas o grupo é importante. Nesse caso o foocomando deve usar:

chgrp -R groupx $1

em vez de chown.

onde devo colocar os arquivos

Criar um /home/groupxé absolutamente aceitável, mesmo que groupxseja um grupo e não um usuário. O único problema potencial seria se você criasse 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 possam criar arquivos, defina o diretório 755. Eles ainda poderão modificar arquivos pertencentes ao seu grupo.

Responder2

Normalmente, nesta situação, os arquivos pertencerão a quem os salvou por último (ou a 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 deixaria como propriedade de sua conta, a menos que você esteja propagando dados para um grupo ao qual não pertence; nesse caso, o root é tão bom quanto qualquer outro. Mas não é grande coisa.

Não existe uma convenção amplamente difundida para dados que não façam parte do sistema ( /usr, /var, /bin, /sbin, /lib, /etc) nem dos diretórios pessoais dos usuários ( /home). Você pode criar outros diretórios em /home, ou colocá-los em outro lugar. /srvé, em princípio, para dados usados ​​por servidores, mas como administrador do sistema, você é livre para colocar o que quiser lá. /net/MACHINENAMEé uma escolha popular para “dados diversos armazenados em MACHINENAME” em redes onde máquinas exportam sistemas de arquivos entre si.

informação relacionada