4755 权限对于 usr/lib/dbus-1.0/dbus-daemon-launch-helper 安全吗?

4755 权限对于 usr/lib/dbus-1.0/dbus-daemon-launch-helper 安全吗?

我不知何故弄乱了 Ubuntu 22.04.2 LTS 系统(私人使用的计算机,而不是服务器)上许多文件的权限,这已经引起了一些问题。最近,我注意到我无法Users and Groups通过 GUI 启动。

结果出现错误消息:

The configuration could not be loaded. An unknown error occurred.

通过调查,我发现当我将权限/usr/lib/dbus-1.0/dbus-daemon-launch-helper-rwsr-xr--(4744)更改为-rwsr-xr-x(4755)时,程序会再次运行。

我用于ls -l /usr/lib/dbus-1.0/dbus-daemon-launch-helper调查权限和sudo chmod +x /usr/lib/dbus-1.0/dbus-daemon-launch-helper更改权限。

这安全吗?如果没有,我有什么选择可以让程序再次运行?

答案1

帮助程序是可以期望具有改进的权限的工具,可以帮助用户或用户的进程使用某个功能,而无需直接执行该操作。因此,归还特权以恢复其功能也就不足为奇了。

然而。某些权限不需要 root(因此 setuid root)即可获得:能力,这些是完整 root 用户可以执行的操作的子集,有时就足够了,但是当所有权更改时,它们在文件上的标志将被删除。帮助器上的某些权限仅保留给访问权限有限的用户或进程子集。

后者就是这种情况/usr/lib/dbus-1.0/dbus-daemon-launch-helper

后置脚本dbus(提供此文件)更改其权限和所有权,如下所示:

MESSAGEUSER=messagebus
LAUNCHER=/usr/lib/dbus-1.0/dbus-daemon-launch-helper

(如果不存在,也会创建用户/组)

dpkg-statoverride --update --add root "$MESSAGEUSER" 4754 "$LAUNCHER"

将其使用限制为具有该组的进程,messagebus而不是像当前OP的情况那样限制为任何进程。

因此,既然系统可以正常运行,最简单的方法就是重新安装dbus软件包,以修复权限:

apt-get reinstall dbus

或者手动:

chown root:messagebus /usr/lib/dbus-1.0/dbus-daemon-launch-helper
chmod 4754 /usr/lib/dbus-1.0/dbus-daemon-launch-helper

您可能必须检查所有其他受影响的文件,尤其是涉及辅助工具时。


有关包元数据文件的附加说明postinst

  • 查找哪个包:

    dpkg -S /usr/lib/dbus-1.0/dbus-daemon-launch-helper
    

    应该回答:

    dbus: /usr/lib/dbus-1.0/dbus-daemon-launch-helper
    
  • 包的元数据在哪里?

    对于 FOO 包,到目前为止,它们始终位于各种/var/lib/dpkg/info/FOO.*文件中(对于多架构包(通常是库),它们也可能包含:amd64或提供任何其他架构/var/lib/dpkg/info/FOO:amd64.*)。

    要检查的脚本postinst如下:

    /var/lib/dpkg/info/dbus.postinst
    
  • 没有安装该软件包:

    cd /tmp
    apt-get download dbus
    dpkg --raw-extract dbus_*.deb /tmp/somewhere
    
    less /tmp/somewhere/DEBIAN/postinst
    

这种文件通常是自动生成的,但dbus它是在源中提供的。这是 Debian 存储库文件的链接(它甚至包括一些较旧的 Ubuntu 标签,无论如何它的内容大致相同):debian/dbus.postinst

相关内容