Como definir permissões para arquivos futuros?

0

Eu admito que isso é lição de casa:

Imagine you and your friend host an IT faculty in your former school. The list of attendees is in the attached text file. You need to manage permissions for directories documents, tasks and solutions. Write a script that creates accounts for all attendees and sets permissions in such a way that:

  • Every attendee has the right to read files that will be created in the directory documents, while your friend has the right to read and modify files from this directory, but can't add or remove anything;
  • Every attendee has the right to read files that will appear in the directory tasks, while your friend has all rights to this directory;
  • Every attendee has the right to place their solutions in the directory solutions/<ID of attendee>-<ID of task>;
  • Your friend has all rights to the solutions directory tree, while the attendees can't see the solutions of their peers.

Esta é a lição de casa das permissões de arquivos básicos ( chmod , umask ) e ACLs ( setfacl )

Agora é isso que me deixa perplexo:

Precisamos definir permissões refinadas para arquivos que ainda não estão presentes, mas que serão criados no futuro?!?!

No meu entender:

  • umask nos permite definir permissões padrão para arquivos recém-criados; mas essas são apenas as permissões básicas de proprietário-grupo-outros, por isso não posso diferenciar as permissões do meu amigo com as permissões dos participantes com as permissões dos participantes;
  • setfacl SOMENTE me permite definir permissões para arquivos que já existem ou eu criei, mas NÃO arquivos que serão criados no futuro!

Então eu sou ignorante sobre como fazer essa lição de casa. Alguém pode me mostrar o caminho certo?

    
por aaaeee 15.10.2018 / 19:45

1 resposta

0

Algumas dicas para você entrar na direção certa:

  • ACL página do manual seção diz sobre as ACLs padrão:

    The access ACL of a file object is initialized when the object is created with any of the creat(), mkdir(), mknod(), mkfifo(), or open() functions. If a default ACL is associated with a directory, the mode parameter to the functions creating file objects and the default ACL of the directory are used to determine the ACL of the new object:

    1. The new object inherits the default ACL of the containing directory as its access ACL.

    2. The access ACL entries corresponding to the file permission bits are modified so that they contain no permissions that are not contained in the permissions specified by the mode parameter.

  • Usando o sticky bit nos diretórios, você pode alterar o proprietário / grupo dos novos arquivos criados no diretório. Os arquivos criados no diretório terão o proprietário / grupo do diretório fixo em vez do grupo padrão. Para mais detalhes, veja a pergunta: Como funciona o sticky bit?

por 15.10.2018 / 19:54