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

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

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

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

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

答案1

GUI 中的安装是通过以下方式完成的U盘,它是一个以 root 身份运行并使用的守护进程波尔基特决定谁可以安装(或执行解锁加密设备等其他操作)块设备。某些安装操作可以由活动会话中的任何用户完成,有些则需要管理员权限。例如,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"];
      });

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

太长了;博士

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

答案2

你没有说如何挂载磁盘。通常unices/Linux使用块设备的文件表示,并且这些文件具有用户/组和权限。

ls -l /dev/dm-*
brw-rw---- 1 root disk 254, 0 Mar 21 18:33 /dev/dm-0
brw-rw---- 1 root disk 254, 1 Mar 21 18:33 /dev/dm-1
brw-rw---- 1 root disk 254, 2 Mar 21 18:33 /dev/dm-2
brw-rw---- 1 root disk 254, 3 Mar 21 18:33 /dev/dm-3

如果您是“root”,或者在“磁盘”组中,则您具有读/写权限。

当然,其他挂载块设备的方法对用户隐藏了这一点。各种 GUI 应用程序使用 polkit(并授权调用用户),然后在后台以“root”身份完成操作。sudo方法是为用户提供执行特权操作的可能性。但基本上都是关于代表块设备的文件的权限/dev

答案3

Debian 磁盘管理器要求我输入我没有的密码。我打开一个终端,sudo -i然后输入disk-manager并授予访问权限。

相关内容