Para remover um diretório, você precisa de duas coisas: acesso de gravação ao diretório pai e que o diretório esteja vazio. Então seu colega de trabalho, ou raiz, tem que cooperar. Esta é uma limitação do modelo de permissão unix.
Para um melhor fluxo de trabalho quando uma árvore de diretórios é gravável por mais de um usuário, você pode usar listas de controle de acesso (se suportadas) ou diretórios setgid.
-
Com as ACLs, conceda acesso de gravação ao diretório a quem quer que seja e defina a ACL padrão para também conceder acesso de gravação, para que os arquivos e subdiretórios recém-criados herdem as permissões desejadas. Os usuários podem substituir esses padrões, mas, desde que cooperem passivamente, as permissões ficarão bem.
setfacl -m user:coworker:rwx . setfacl -d -m user:coworker:rwx .
-
Se você não tiver ACLs, poderá conceder acesso de gravação a um grupo e definir o bit setgid no diretório. Isso faz com que arquivos e subdiretórios recém-criados pertençam ao grupo em questão, em vez do grupo padrão do processo de criação. No entanto, ainda cabe aos usuários conceder permissão de gravação de grupo aos novos arquivos e diretórios (isso acontece automaticamente somente se eles tiverem
umask 002
).chgrp mygroup . chmod g+ws .
Você pode estar interessado em esta discussão sobre por que as coisas funcionam dessa maneira .