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.