Jib*_*ran 5 opensuse mount ntfs ntfs-3g non-root-user
我正在尝试在 openSuse 11.4 上挂载 Windows ntfs分区。当我使用 root 帐户(直接或通过sudo)安装它时,它安装没有问题。但是当我尝试在没有任何 root 权限的情况下安装它时,它会出现以下错误:
Error opening '/dev/sda2': Permission denied
Failed to mount '/dev/sda2': Permission denied
Please check '/dev/sda2' and the ntfs-3g binary permissions,
and the mounting user ID. More explanation is provided at
http://ntfs-3g.org/support.html#unprivileged
Run Code Online (Sandbox Code Playgroud)
我的相关设备的 fstab 条目是:
/dev/sda2 /media/Windows ntfs defaults,noauto,user 1 2
Run Code Online (Sandbox Code Playgroud)
我在谷歌上搜索了可能的解决方案,但似乎一无所获。
编辑1:
按照建议,我尝试在 ntfs-3g 二进制文件上设置 UID/GID 位。所有文件(/sbin/mount.ntfs、/sbin/mount.ntfs-3g)都指向/usr/bin/ntfs-3g,因此我更改了其权限。现在的权限是:
-rwsr-sr-x 1 root root 51512 Feb 18 22:18 ntfs-3g
Run Code Online (Sandbox Code Playgroud)
但结果仍然相同,并且我收到相同的权限被拒绝错误。
编辑2:
对所有文件设置正确的权限后:
-rwsr-xr-x 1 root root 51512 Feb 18 22:18 ntfs-3g
brw-rw-rw- 1 root disk 8, 2 Aug 6 21:53 sda2
drwxrwxrwx 1 asad users 8192 Jul 30 13:09 Windows
Run Code Online (Sandbox Code Playgroud)
我无需特权用户帐户即可安装。但是,现在当我尝试使用同一帐户卸载时,我得到:
asad@jb-laptop:~> umount /dev/sda2
umount: only root can unmount /dev/sda2 from /media/Windows
Run Code Online (Sandbox Code Playgroud)
编辑3:
我终于找到了问题所在。由于某种原因,我需要在 fstab 中添加用户而不是用户,尽管我不明白为什么。现在我有一个新问题:)
每当我卸载设备/dev/sda2时,文件权限最终会恢复为默认值(0660)。我尝试在 udev 中创建规则,但它似乎不起作用。
必须将二进制文件ntfs-3g
设置为 uid root 才能使用户挂载正常工作。并且您需要块设备和安装点的权限。
sudo chmod 1755 /sbin/mount.ntfs-3g /usr/bin/ntfs-3g
sudo chmod 666 /dev/sda2
sudo chmod 777 /media/Windows
Run Code Online (Sandbox Code Playgroud)
(注意:这些是 Debian 位置,对于 Suse 可能有所不同,因此您需要检查它们是否确实位于这些位置。)
您还需要拥有ntfs-3g
1.2506 或更高版本。
请参阅此处了解更多信息: