Estou executando um servidor Debian 7 e tenho o seguinte cenário (nomes de exemplo)
Do utilizador:
- paulo: paulo
- João: Paulo
Diretório: /home/paul/Diretório
- Arquivo W (Proprietário paul, Grupo paul, Direitos: 0770)
- Arquivo X (Proprietário paul, Grupo paul, Direitos: 0700)
- Arquivo Y (Proprietário paul, Grupo paul, Direitos: 0700)
- Arquivo Z (Proprietário John, Grupo Paul, Direitos: 0770)
O usuário john deve ser capaz de excluir o "Arquivo Z", mas não o "Arquivo X" ou o "Arquivo Y". Ele também deve ter permissão para editar e excluir o "Arquivo W".
Resumindo: ele só deve poder excluir seus próprios arquivos, mas editar todos com permissão para isso.
Estou procurando uma solução para usar o bit de exclusão do diretório em arquivos especificados. A opção "chattr" não é uma opção porque nada deve ser feito com direitos de root.
Alguém tem uma ideia?
Responder1
No modelo de segurança POSIX, para excluir um arquivo você só precisa de acesso de gravação ao seu Diretório Parental. Portanto, se a conta "john" tiver +w
direitos para /home/john/Directory, ela sempre poderá excluir os arquivos contidos nela.
Mas uma exceção é o modo "fixo"/"exclusão restrita". Quando você define+t
em um diretório, a exclusão de arquivos é restritaapenasao proprietário do arquivo ou ao proprietário do diretório. (Por exemplo, /tmp
funciona desta forma.) Então, se vocêchmod +t
echown root
o diretório, você deve obter o resultado esperado.