我们正在将应用程序从Solaris迁移到Linux,并允许主用户通过使用RBACangular色来运行一些系统命令,如svccfg / svcadm(在redhat上的chkconfig)。
是否有可能,只使用SElinux(无sudo),允许一个普通的用户运行chkconfig off / on(基本上可以添加删除服务)?
我的方法是尝试创build一个具有相应SElinuxangular色的SElinux用户,该用户pipe理应用程序的域/types,并允许转换到运行chkconfig,tcpdump或任何其他通常仅限于root访问的系统实用程序所需的所有其他域。 到目前为止,我所有的尝试都失败了,所以我的第二个问题是在哪里可以find适用于这个特定问题的良好文档?
SELinux引用策略已经包含一个用户angular色sysadm_r ,它在系统上使用 受限用户 (它们不是默认情况下)时(稍微)限制root 用户 。
应该可以devise一个可以启动/停止服务的用户angular色,而不需要其他的pipe理任务,虽然我从来没有这样做过,所以我不愿意给你一行一行。 尽pipe我讨厌这么说,但这个问题可能会发送到selinux邮件列表。
从selinux邮件列表收到的回复:
目前我们没有提供授予那些本来不会授予的function的方法,只是为了进一步限制它们。 为了支持这种function,有一些补丁被浮起来,但他们被暴徒高声喊了起来。
所以你需要使用别的东西(sudo或者文件大小写或者其他)来首先授予这些function,然后你可以使用SELinux来帮助locking用户,使之仅限于需要的东西。 sudo目前支持SELinux,通过命令行选项和sudoersconfiguration。
当然可以用SElinux来实现你的请求,configuration应该很简单。
步骤是:
chkconfig_t 。 sudo或newrole命令让用户在需要时转换到chkconfig_t域。 您可以使用system-config-selinux创build或修改SElinux模块。 我曾经使用SElinux来限制用户只有权限重新启动httpd并修改其configuration。 但是,用户无能为力。