帮我了解这种情况是否可以使用 Linux 实现。我想保护对名为“/mnt/data”的系统路径的访问。
系统用户限制:
- ‘daemon_user’:读/写访问权限。
- ‘read_user’:只读。
- ‘appender_user’:添加文件,但不是删除或者覆盖现有的。
“daemon_user” 不断创建新文件,因此“不删除/覆盖”限制也必须适用于新创建的文件。
注意:最初我放弃使用“chattr”,因为它适用于所有用户,包括 root。我不想要那种程度的限制。
答案1
您可以使用 POSIX 扩展 ACL(getfacl、setfacl、chmod、chown)实现 daemon_user 和 read_user。对于 appender_user,您可以使用附加属性(chattr +a filename
、lsattr),但这会限制所有用户。
实现此目的的另一种方法是使用限制对这些文件的访问的服务。例如,您与以下人员共享文件桑巴并且您使用具有仅追加属性的 Windows ACL。
实现 appender_user 的另一种方法是创建 SELinux 目标策略。查看如何httpd_sys_ra_content_t
实现。