如何在没有 root 密码的情况下在 Linux 中挂载 NTFS

如何在没有 root 密码的情况下在 Linux 中挂载 NTFS

我想在 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,它更加自动化,但设置起来也更复杂,但适用于所有用户(包括本地和远程用户)。

相关内容