1

如何通过进程名称检查(使用 SELinux)对文件的访问?

例如,我们有 2 个进程:

  • /usr/bin/foo1
  • /usr/bin/foo2

它们在使用用户名的帐户下运行,userA并尝试打开修改文件:

  • /home/userA/test.txt

我希望如果foo1尝试打开文件 - 没关系。但是,如果foo2尝试打开此文件 - 我在/var/log.

问题是两个进程具有相同的用户 ID。而且我不能通过用户名使用 RBAC。

4

1 回答 1

2

您必须同时提供foo1foo2定义域类型才能使用 SELinux 策略运行。这将需要:

  1. 为二进制文件创建类型(例如foo1_exec_tfoo2_exec_t
  2. 为进程创建类型(例如foo1_tfoo2_t
  3. 指定当用户类型(可能unconfined_t)执行foo1_exec_t时,它转换为foo1_t和类似foo2

然后你需要为test.txt(例如test_t)创建一个自定义类型

完成此操作后,您可以为这些编写您喜欢的任何策略(包括auditallow您正在寻找的特定访问权限的规则)。问题在于,通过创建自定义类型,您必须为它们指定所有访问权限。

如果您不希望进行任何访问控制,而只是在发生某些事情时进行日志记录,那么审计子系统是一个更好的选择,尽管我不知道您可以对它进行如此精细的处理。

于 2011-02-12T23:48:52.973 回答