Qual sistema de arquivos você tem? Você pode tentar configurar um atributo imutável nesse arquivo
chattr +i filename
Existe uma maneira de ter um arquivo no diretório pessoal de FTP do usuário sem a capacidade de modificá-lo / removê-lo desse diretório por FTP?
Assim, o usuário tem permissões de gravação em sua própria pasta base, portanto, a capacidade de remover arquivos. Uma exceção deve ser feita para um único arquivo, que possui o mesmo nome de arquivo e conteúdo para cada conta.
A solução em que estou pensando agora para executar um script periódico para verificar a presença desse arquivo e, em caso negativo, colocá-lo de volta. Mas eu me pergunto se há uma solução melhor do que isso.
Qual sistema de arquivos você tem? Você pode tentar configurar um atributo imutável nesse arquivo
chattr +i filename
Como afirmado, um arquivo pode ser removido se você tiver permissão de gravação no diretório onde ele reside. No entanto, você não pode remover um diretório se ele não estiver vazio, mesmo se você tiver permissão de gravação no diretório pai. Assim, este hack deve funcionar:
mkdir protected
touch protected/test
sudo chown -R root:root protected
sudo chmod -R 755 protected
Agora, se você tentar remover o arquivo:
$ rm protected/test
rm: remove write-protected regular empty file 'protected/test'? y
rm: cannot remove 'protected/test': Permission denied
E se você tentar remover o diretório:
$ rm -R protected
rm: descend into write-protected directory 'protected'? y
rm: remove write-protected regular empty file 'protected/test'? y
rm: cannot remove 'protected/test': Permission denied
Defina o proprietário e o grupo do arquivo como root e torne-o legível em todo o mundo:
chown root:root filename
chmod 664 filename
Tags ftp