Ere*_*Bat 5 redhat centos authorization
所以我试图调整 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
Run Code Online (Sandbox Code Playgroud)
如果我注释掉/删除该USER=root行,则会提示我输入当前登录的用户,这正是我想要的。问题是只要用户知道他们的密码,它就会启动,所以即使不在我的组中的用户也可以启动特权应用程序。
Aman console.apps是相关的;然而没用:
/etc/security/console.apps/ 目录应该为每个希望允许控制台用户访问的应用程序包含一个文件。文件名应与服务名相同,内容无关;该文件可能是零长度文件。使用该文件的应用程序可以自由地以任何对其有用的方式指定内容。
我的问题:我如何告诉 GNOME/ConsoleHelper 用户也必须在特定位置才能允许执行?
您要为 consolehelper 执行的操作放在UGROUPS=wheelconsole.apps 文件中。(您不需要更改已经存在的内容,通常不应该更改。)然后将相应的用户添加到轮组中。然后,该组中的成员将被提示 auth-as-self,而其他用户仍将 auth-as-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
Run Code Online (Sandbox Code Playgroud)
最后,你可以取消的%wheel ALL=(ALL) ALL一致/etc/sudoers。(这可能成为 Fedora 15 中的默认设置。)