我在不同的机器上运行 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
并授予访问权限。