Como dar direito de gravar / criar arquivos ainda não existentes sem acesso de gravação do diretório pai?

1

Eu não sei se isso é possível, então eu preciso perguntar. Eu gostaria de permitir que um único arquivo seja criado por um usuário (um arquivo de sinalização), mas somente esse arquivo deve poder ser criado.

Como eu tenho o diretório pai somente leitura para esse usuário, atualmente não é possível para o usuário criar (via touch <filename> ) o arquivo.

Como o arquivo ainda não existe, não posso conceder direitos de gravação com chmod (por exemplo, chmod u+w <filename> ).

Existe uma maneira de definir permissões de arquivos atualmente inexistentes para entrar em ação quando o arquivo está sendo criado?

Eu examinei as ACLs pela primeira vez e toquei com setfacl , mas parece que ele não pode pré-criar entradas para arquivos inexistentes.

Antecedentes: Estou fazendo este cenário para fins de teste. Na essência, eu quero impedir a modificação de arquivos, então a maioria deles é somente leitura. Mas, de tempos em tempos, um certo arquivo deve ser criado e eu quero permiti-lo apenas para nomes de arquivos / caminhos específicos.

Estou fazendo isso em uma caixa Linux do Ubuntu 14.04.

    
por hakre 19.03.2016 / 18:13

1 resposta

1

Isso é mais controle do que o que você pode obter por meio de ACLs. Não há como definir uma ACL em um diretório que permita que determinado usuário ou grupo crie arquivos apenas se o arquivo tiver um determinado nome.

A solução mais óbvia para este problema seria criar o arquivo em questão desde o início e dar a ele as permissões desejadas.

Se isso for impossível, você pode criar um programa que crie o arquivo e dê a um usuário a permissão para executar este programa em um grupo que tenha permissão de gravação no diretório por meio de sudo .

bob = (bob : somegroup) touch /path/to/foo

Em seguida, o usuário bob pode ser executado

sudo -g somegroup touch /path/to/foo
    
por 19.03.2016 / 19:26