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

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

有没有办法将文件放在用户的 FTP 主目录中,但又不能通过 FTP 从该目录中修改/删除它?

因此用户对自己的主文件夹有写入权限,因此可以删除文件。但对于单个文件,应有一个例外,每个帐户的文件名和内容都相同。

我现在想到的解决方案是运行定期脚本来检查该文件是否存在,如果不存在,则将其放回。但我想知道是否有比这更好的解决方案。

答案1

您使用的是什么文件系统?您可以尝试在该文件上设置不可变属性。

chattr +i filename

答案2

如上所述,如果您对文件所在的目录具有写权限,则可以删除该文件。但是,如果目录不为空,则无法删除它,即使您对父目录具有写权限。因此,这个 hack 应该有效:

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

答案3

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

chown root:root filename
chmod 664 filename

相关内容