挂载磁盘的密码帐户由什么决定?

dan*_*hck 3 debian mount

我在不同的机器上运行 Debian(Debian Buster,所有机器上的安装相同)。我正在使用内部和外部硬盘。有些磁盘已加密,有些则没有。

当我挂载磁盘时,有些机器会要求我输入挂载磁盘的用户密码(Sudoer帐户)。其他机器要求我提供 root/管理员密码(即使我使用的是 sudoer 帐户)。甚至一台机器也要求我提供另一个 sudoer 帐户的密码(链接)。有些机器挂载磁盘时不要求输入密码(仅要求加密磁盘的解密密码)。

决定使用哪个帐户密码的配置文件在哪里?

Voj*_*fny 5

GUI 中的挂载由UDisks完成,它是一个以 root 身份运行的守护进程,并使用polkit来决定谁可以挂载(或执行其他操作,如解锁加密设备)块设备。某些安装操作可以由活动会话中的任何用户完成,有些则需要管理员权限。例如,UDisks 允许“普通”用户安装可移动设备,但需要管理员安装不可移动(内部)设备。

polkit中的管理员并不意味着可以使用的用户sudo,polkit不会检查/etc/sudoers,要成为管理员,用户必须属于特定组。它通常是授予 的同一组sudo,但如果您手动将用户添加到 sudoers,则这不起作用。

在 Fedora 中,管理员被定义为wheel组中的用户,您可以在 polkit 手册页或以下位置找到它/etc/polkit-1/rules.d/50-default.rules:

将管理用户定义为wheel组中的用户:

      polkit.addAdminRule(function(action, subject) {
          return ["unix-group:wheel"];
      });
Run Code Online (Sandbox Code Playgroud)

如果您不是管理员并且请求特权操作(例如安装不可移动驱动器),polkit 代理将要求您输入另一个管理员用户的密码。例如,KDE 代理会要求您选择一个用户,但 IIRC Xfce 代理只会为您选择一个用户并询问他的密码。默认行为取决于您使用的代理。有趣的是,即使您尝试从终端使用不同的管理员帐户,polkit 代理也会优先选择活动会话中的用户——运行时sudo -u <user> udisksctl unlock -b /dev/sda1将要求输入在 GUI 会话中登录的用户的密码。

太长了;博士

  • UDisks(其 polkit 规则)决定是否要求您提供管理员密码。
  • Polkit 代理决定了密码是谁的。它应该优先选择活动会话中的用户(如果是管理员帐户)。