我想授予用户在特定目录中创建和读取文件的权限,但不允许修改或删除文件。如果用户可以将文件追加到确定的位置,但是我宁愿不这样做。这是在Ubuntu Linux上。
我认为使用标准的Unix文件权限是不可能的,但是使用ACL可能做到这一点吗?用户将始终使用SFTP进行连接,因此,如果有某种方法可以在SFTP中进行控制(相对于OS权限),那就很好了。
绝对清楚,我想要以下几点:
- echo hello> test#成功,因为测试不存在,并且允许创建
- echo hello >> test#是成功还是失败,取决于是否允许附加
- echo hello2> test#失败,因为测试已经存在,并且不允许修改
- cat test#成功,因为允许读取
- rm test#失败,因为不允许删除
如果您想知道为什么要这样做,那就是制作一个能够抵抗勒索软件的Duplicati备份系统。
echo > test
,shell会执行一个操作,该操作open("test", O_WRONLY|O_CREAT|O_TRUNC)
创建文件,然后调用echo
写入内容,从而对其进行修改。现在,您只允许第一个open(WR)成功。