pure-ftpd:主目录中的一个只读/不可删除文件

有没有办法在用户的FTP主目录中有一个文件,而无法通过FTP修改/从目录中删除它?

所以用户有他自己的主文件夹的写权限,从而删除文件的能力。 对于单个文件应该例外,每个文件具有相同的文件名和内容。

我正在考虑的解决scheme是运行一个定期的脚本来检查文件的存在,如果没有的话,把它放回去。 但是我想知道是否有比这更好的解决scheme。

你有什么文件系统? 您可以尝试在该文件上设置不可变属性

chattr +i filename 

如前所述,如果您对所在目录具有写入权限,则可以删除文件。 但是,即使您对父目录具有写入权限,也不能删除目录。 因此,这个黑客应该工作:

 mkdir protected touch protected/test sudo chown -R root:root protected sudo chmod -R 755 protected 

现在,如果您尝试删除文件:

 $ rm protected/test rm: remove write-protected regular empty file `protected/test'? y rm: cannot remove `protected/test': Permission denied 

如果您尝试删除目录:

 $ 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 

将文件的所有者和组设置为root并使其成为世界可读的:

 chown root:root filename chmod 664 filename