为什么我需要 root 权限来更新我的包管理器的包列表?

为什么我需要 root 权限来更新我的包管理器的包列表?

为什么我需要 root 权限来更新我的包管理器包列表?

你好,

我一直想知道为什么我需要 root 权限来更新我的包管理器包列表?

我知道访问位于指定目录中的数据库需要权限。

但为什么我什至不能在没有 root 的情况下检查更新呢?

它不会影响其他用户。 (我猜)了解待处理的更新可能是一个安全缺陷,但可以通过其他方式轻松检测到已安装的版本和最新版本。

这里面的原因是什么呢?

这种行为据我所知很常见。 Fedora、Ubuntu、Debian 和 Arch 都有这种行为,可能许多其他发行版也有这种行为。

答案1

如果普通用户可以修改软件包列表,那么如果超级用户在安装之前没有再次更新,那么就很容易欺骗软件包系统安装其他软件包。

答案2

同步/更新步骤具有特权的原因是执行更新的进程的 UID/GID 必须能够对包目录树进行更改。是的,可以使用服务或 set[gu]id 可执行文件来完成,但将功能限制为允许管理系统的人员也同样容易(并且更易于管理):其他人不应该乱搞行政任务放在第一位!

如果您只想查看哪些软件包会升级,这是一个单独的问题。大多数发行版允许您假装/模拟升级,这通常不需要任何特权。对于 Gentoo(我碰巧使用的),那就是emerge -up @world:检查你的发行版的包管理器是否有等效的选项。

相关内容