有没有办法将文件放在用户的 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