我希望允许用户使用 SELinux 执行*仅* ping 实用程序

我希望允许用户使用 SELinux 执行*仅* ping 实用程序

我已经使用 rbash(受限 bash)做到了这一点,但现在我想使用 SELinux。

所以我创建了新用户并将他添加到 guest_u:

semanage login -a -s guest_u restricteduser

我还禁止他执行任何事情:

setsebool allow_guest_exec_content=0

而这里我应该只允许他执行 ping 操作。

而且我还需要以某种方式给他一些网络。我怎样才能做到这一点?

答案1

allow_guest_exec_content布尔值控制用户是否guest_t可以执行主目录或临时目录中的文件。否则,在策略允许的情况下,用户仍可以运行其他可执行文件。

SELinux参考策略提供了允许特定访问的接口。这些接口在 SELinux 策略中列出文档(您的发行版可能会在包中提供它们selinux-policy-doc)。

要允许访客用户使用 ping,您可以使用netutils_exec_ping界面。

然后为您的自定义策略创建一个模块,例如 my_guest.te:

policy_module(my_guest, 1.0)

gen_require(`
    type guest_t;
    role guest_r;
')

netutils_run_ping(guest_t, guest_r)

并用以下命令编译它:

make -f /usr/share/selinux/devel/Makefile my_guest.pp

根据您想要允许的网络访问类型,您可以寻找合适的接口并以相同的方式使用它来扩展my_guest模块。

相关内容