Como dar permissões de gravação usando setfacl enquanto retém as permissões existentes?

4

Eu quero dar permissão de gravação para um usuário específico em um diretório de forma recursiva sem perder nenhuma permissão existente que o usuário possa ter. Acredito que posso usar algo assim para dar permissões de gravação ao usuário:

setfacl -R -m u:user:w dir/*

mas o problema é que ele elimina quaisquer permissões existentes que o usuário já tenha. Por exemplo, se o usuário tiver permissões de execução antes de executar o comando setfacl, ele substituirá a permissão de execução por permissões de gravação.

Como posso dar permissão de gravação ao usuário, mantendo as permissões existentes?

    
por comatose 01.08.2017 / 14:51

1 resposta

2

O que você deseja é chamado de "permissões relativas", um recurso que algumas implementações setfacl fornecem , basicamente usando a sintaxe clássica" +/- "usada por chmod

No entanto, no RHEL7 e no Ubuntu 16.04 LTS, pelo menos, setfacl não fornece esse recurso. Por exemplo, algo como setfacl -m user:root:+r /root/ retorna um erro indicando setfacl: Option -m: Invalid argument near character 11

Se sua implementação de setfacl não tiver esse recurso, você terá duas possibilidades:

  • use getfacl para enviar todas as ACLs para um arquivo, editando esse arquivo para corresponder à permissão de acesso necessária e use setfacl --restore para carregar / aplicar as novas permissões;
  • crie um script para iterar em cada arquivo, leia as ACLs atuais e grave as novas permissões de acesso.
por 01.08.2017 / 20:38