如何在 RHEL/CentOS 中调整 Gnome 用户权限

如何在 RHEL/CentOS 中调整 Gnome 用户权限

因此,我尝试调整 GNOME 验证桌面用户权限的方式。它要求输入密码root。对于我的部署来说,这是不可取的,我希望它重新提示用户输入他们的密码,并且只有属于某个组 ( wheel) 的人才能访问。

我取得了一些进展。如果存在一个文件,其/etc/security/console.apps名称与尝试运行的服务(例如pirut包管理器)的名称相同,则 GNOME 将要求输入密码并提升该程序。以下是该pirut文件:

USER=root
PROGRAM=/usr/sbin/pirut
SESSION=true
KEEP_ENV_VARS=http_proxy,ftp_proxy

如果我注释掉/删除该USER=root行,系统将提示我输入当前登录的用户,这正是我想要的。问题是,只要用户知道他们的密码,它就会启动,因此即使不在我的组中的用户也可以启动特权应用程序。

Aman console.apps是相关的,但是没用:

/etc/security/console.apps/ 目录应包含每个希望允许控制台用户访问的应用程序的一个文件。文件名应与服务名相同,内容无关紧要;文件可以是零长度文件。使用该文件的应用程序可以自由地以任何对其有用的方式指定内容。

我的问题:我如何告诉 GNOME/ConsoleHelper 用户也必须处于特定状态才能允许执行?

答案1

您要为 consolehelper 执行的操作是将其放入UGROUPS=wheelconsole.apps 文件中。(您不需要更改已有的内容,通常也不应该更改。)然后将相应的用户添加到 wheel 组。然后,该组中的成员将被提示以自我身份进行身份验证,而其他用户仍将以 root 身份进行身份验证。(不久前,我需要同样的功能,所以我编写了它并将补丁上传到上游。开源很棒。)

这在 中有记录man userhelper

在较新的发行版(当前的 Fedora 和 RHEL6)上,consolehelper 正在逐步被 PolicyKit(又名)取代polkit。它具有不同的配置方案,但也可以做同样的事情。man pklocalauthority有关详细信息,请参阅,但摘要是:将文件放入/etc/polkit-1/localauthority/50-local.d以下内容中:

[Wheel-Group Permissions]
Identity=unix-group:wheel
Action=org.something.seedocs.*;more.actions.*;whatever.you.want.*
ResultAny=auth_self

最后,您可以取消%wheel ALL=(ALL) ALL注释中的行/etc/sudoers。(这可能成为 Fedora 15 中的默认设置。)

相关内容