我正在 /etc/crypttab 中启动时创建一个映射器文件 /dev/mapper/luks-672dcc74-d002-47dc-b61b-525baf91dc7c ,如下所示:
luks-672dcc74-d002-47dc-b61b-525baf91dc7c UUID=672dcc74-d002-47dc-b61b-525baf91dc7c /home/user1/keyfile_sandisk120gb luks,keyscript=/bin/cat
lsblk 的输出是这样的:
sdd 8:48 1 114,6G 0 disk
└─luks-672dcc74-d002-47dc-b61b-525baf91dc7c 253:2 0 114,6G 0 crypt
然后,当我运行备份脚本时,我使用 pmount,如下所示:
pmount /dev/mapper/luks-672dcc74-d002-47dc-b61b-525baf91dc7c
但我得到:
Error: device /dev/dm-2 is not removable
这通常会将 ext4 分区安装到 /media/disk_by-partlabel_sandisk120gb。当磁盘(可移动 USB 闪存驱动器)未加密时,一切正常。但现在 pmount 不知道加密磁盘位于笔式驱动器上。也许我需要向 crypttab 添加一个选项?我想使用 pmount 而不是 mount,因为 pmount 不需要 root。
我在 Debian Bullseye 上。
答案1
您没有提及 Linux 发行版的名称或版本,但至少在 Debian 11 上,pmount
能够检测 LUKS 并cryptsetup
自动调用,因此您不需要/etc/crypttab
为其输入条目(但是您不能使用密钥文件,您可以使用似乎在这里做)。
在安装设备之前,pmount
将要求要安装的设备可移动,或者该设备已在 中专门列入白名单/etc/pmount.allow
。添加通用设备映射器设备节点(例如/dev/dm-2
pmount 白名单)可能不是一个好主意,因为它可能在重新启动后轻松引用某些其他设备。
其目标pmount
是允许普通用户无需 root 访问即可使用可移动媒体。但就您而言,由于您已经创建了一个crypttab
条目,因此已经涉及根访问权限。您可以/etc/fstab
使用user
mount 选项进行常规输入:
/dev/mapper/luks-672dcc74-d002-47dc-b61b-525baf91dc7c /media/disk_by-partlabel_sandisk120gb ext4 user,rw 0 0
如果您的/bin/mount
命令是setuid root(即由root拥有并具有-r-s--x--x
或更高权限),则user
选项/etc/fstab
应该授权普通用户挂载仅该特定安装点通过跑步
mount /media/disk_by-partlabel_sandisk120gb
并同样卸载它
umount /media/disk_by-partlabel_sandisk120gb
作为非 root 用户使用时mount
,指定很重要仅有的挂载点或者设备名称,而不是两者。这会触发mount
使用 中的预授权条目/etc/fstab
。
如果您同时指定设备名称和安装点,该命令将假定您正在执行完全自定义/临时安装操作,该操作始终需要 root 访问权限。
请注意,与 不同的是pmount
,mount
还要求/media/disk_by-partlabel_sandisk120gb
存在为空目录,以便它可以用作安装点。