无法修改或删除 SELinux 用户

无法修改或删除 SELinux 用户

我正在研究user_uRHEL 6.5 上的目标策略。我在不受限制的上下文中以 root 身份登录,因此我完全有能力更改我想要的任何内容。为了以防万一,我也切换到了宽容模式。我最初将 user_u 设置为 MLS/MCS 设置“s0:c0.c50”。此状态运行正常,没有任何问题(据我所知)。为了测试使用命令更改此设置,我输入了以下内容:

semanage user -m -r s0:c0.c51 user_u

这运行没有任何问题,并且我能够验证它是否可以与semanage user -l.user_u现在 MLS/MCS 为“s0:c0.c51”。但是,如果我尝试修改 user_u 或与 user_u(namedbob和)关联的任何一个用户alice,我会收到如下错误:

libsemanage.validate_handler:Unix 用户 bob 的 MLS 范围 s0:c0.c50 超出了 SELinux 用户 user_u 允许的范围 s0:c0.c51(没有这样的文件或目录)。
libsemanage.validate_handler:seuser 映射 [bob -> (user_u, s0:c0-c50)] 无效(没有这样的文件或目录)。
libsemanage.dbase_llist_iterate:无法迭代记录(没有这样的文件或目录)。

令人困惑的部分是 s0:c0.c50 “超过”s0:c0.c51。如果我尝试修改 user_u,它会抱怨 bob。如果我尝试删除 bob,它会抱怨 alice。如果我尝试删除 Alice,它会抱怨 Bob。我实际上无法更改其中任何一个(通过 GUI 工具或命令行)。

最初,我尝试取消 semanage 中的更改并返回到user_us0:c0.c50,但这不起作用,所以我尝试了 s0-s0:c0.c1023,这也不起作用。我注意到这些错误从未提到过 s0-s0:c0.c1023 所以就好像它们在真正更改 user_u 的 MCS/MLS 之前就失败了。

我只能在网上找到一些类似的示例,并且我找到的唯一一个带有建议的示例是从 /etc/selinux/targeted/seusers 中删除用户映射并运行semodule -B.我尝试过,但semodule -B失败并出现相同的错误消息。我也替换了seuser删除的部分,并尝试了semodule -B无济于事。

关于如何解决这个问题有什么想法吗?这是一个沙盒环境,因此很容易返回到原始映像,但在部署的环境中我不会有那么奢侈。

答案1

我遇到过这样的一个版本,无论如何,它与互联网搜索足够相似。我没有更改 MLS 上下文,但我遇到了奇怪的错误,例如无效的地方,就像这里的原始问题一样:

libsemanage.validate_handler: MLS range s0-s0:c0.c1023 for Unix user elflord exceeds allowed range s0 for SELinux user sysadm_u (No such file or directory).
libsemanage.validate_handler: seuser mapping [elflord -> (sysadm_u, s0-s0:c0.c1023)] is invalid (No such file or directory).
libsemanage.dbase_llist_iterate: could not iterate over records (No such file or directory).

这是来自运行semodule [-i|-B,并且特别令人困惑的是-i当模块没有提及时sysadm_u

原因是之前(与此无关)试图添加喜欢这样的角色sysadmn_u

semanage user -m -R webadm_r sysadm_u

-R手册页对with的功能含糊不清-m,但显然它并没有在意义上进行修改添加一个角色,它取代了它们:

> seinfo -u sysadm_u -x

Users: 1
   user sysadm_u roles webadm_r level s0 range s0;

哎哟,sysadm_r不见了。这也意味着elflord无法登录,至少无法通过 ssh:Unable to get valid context for elflord通过网络发送。

更重要的是,虽然我没有规定-r,但它被设置为最小level s0 range 0,这是错误文本似乎最关心的。

修复方法是重做用户修改,包括原始角色和范围:

semanage user -m -R { sysadm_r webadm_r } sysadm_u -r s0-s0:c0.c1023

相关内容