我想在 Linux (OpenSuse (Leap15.2)) 下以普通用户身份按需挂载/卸载第三个硬盘(使用 NTFS 文件系统)。但每次都不需要输入 root 密码。到目前为止,我已尝试使用 fstab 和 sudoers 中的条目,但每次都必须输入 root 密码。以下是 fstab 和 sudoers 中的条目:
in sudoers:
root ALL = (ALL) ALL
ALL ALL = (ALL) ALL
#
%users ALL = (root) NOPASSWD:/usr/bin/mount
%users ALL = (root) NOPASSWD:/usr/bin/umount
in fstab:
LABEL=DATA3 /home/leap153/data3 ntfs-3g noauto,uid=1000,gid=100,dmask=002,fmask=002,noatime 0 0
FUSE 已安装,并且 uid 和 gid 具有正确的用户号码(已检查)。
答案1
不要通过配置 sudo 来允许挂载,这是非常不安全的。请参阅https://security.stackexchange.com/questions/258637/why-do-i-need-the-root-password-when-mounting-an-internal-drive-in-linux了解详情。
相反,请尝试在 fstab 中添加用户选项,然后使用不带 sudo 的 mount。请注意,这仅适用于内核 5.15 及更高版本和新的 ntfs3 驱动程序:
LABEL=DATA3 /home/leap153/data3 ntfs3 noauto,user,uid=1000,gid=100,dmask=002,fmask=002,noatime 0 0
然后
mount /home/leap153/data3
另一种选择是使用 autofs 或者 udisks。
不幸的是,udisks 不支持卷标,因此您需要确定分区的实际块设备。您可以使用命令blkid -L data3
来找到它。例如
udisksctl mount -b /dev/sdb1
这可能会将您的分区(它会告诉您在哪里)挂载为 /media/user/DATA3(其中 user 是您的用户名)。请注意,这仅在没有 sudo 的情况下对登录到控制台的用户有效。
第三种选择是使用 autofs,它更加自动化,但设置起来也更复杂,但适用于所有用户(包括本地和远程用户)。