Ele pode excluir o arquivo porque desvincular depende das permissões do diretório, não dos arquivos. Desta forma, ele pode modificá-lo, pois ele pode removê-lo e substituí-lo no diretório.
Se eu tiver dois usuários chamados john
e sally
. Ambos fazem parte do grupo users
. john
cria um diretório com permissões 775
. sally
, em seguida, coloca um arquivo lá com 644
de permissões.
Mesmo que o arquivo obviamente não tenha privilégios de gravação de grupo. Pode john
, em seguida, modificar / apagar esse arquivo no diretório que ele possui, mas o arquivo que ele não possui?
Sim, a exclusão de um arquivo não modifica realmente o arquivo, ele modifica o diretório e o john tem permissão para isso.
A maneira de evitar esse comportamento é definir o sticky bit
no diretório. É assim que o / tmp permite que todos escrevam nele, mas apenas os proprietários (ou root) para deletar coisas dele.
chmod +t directory
Isso ativará a parte pegajosa.
Tags directory permissions group