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