我已经使用 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
模块。