如何通过进程名称检查(使用 SELinux)对文件的访问?
例如,我们有 2 个进程:
/usr/bin/foo1
/usr/bin/foo2
它们在使用用户名的帐户下运行,userA
并尝试打开修改文件:
/home/userA/test.txt
我希望如果foo1
尝试打开文件 - 没关系。但是,如果foo2
尝试打开此文件 - 我在/var/log
.
问题是两个进程具有相同的用户 ID。而且我不能通过用户名使用 RBAC。
如何通过进程名称检查(使用 SELinux)对文件的访问?
例如,我们有 2 个进程:
/usr/bin/foo1
/usr/bin/foo2
它们在使用用户名的帐户下运行,userA
并尝试打开修改文件:
/home/userA/test.txt
我希望如果foo1
尝试打开文件 - 没关系。但是,如果foo2
尝试打开此文件 - 我在/var/log
.
问题是两个进程具有相同的用户 ID。而且我不能通过用户名使用 RBAC。
您必须同时提供foo1
自foo2
定义域类型才能使用 SELinux 策略运行。这将需要:
foo1_exec_t
和foo2_exec_t
)foo1_t
和foo2_t
)unconfined_t
)执行foo1_exec_t
时,它转换为foo1_t
和类似foo2
然后你需要为test.txt
(例如test_t
)创建一个自定义类型
完成此操作后,您可以为这些编写您喜欢的任何策略(包括auditallow
您正在寻找的特定访问权限的规则)。问题在于,通过创建自定义类型,您必须为它们指定所有访问权限。
如果您不希望进行任何访问控制,而只是在发生某些事情时进行日志记录,那么审计子系统是一个更好的选择,尽管我不知道您可以对它进行如此精细的处理。