如何让多个用户访问 Windows NTFS 分区?

如何让多个用户访问 Windows NTFS 分区?

我的 Ubuntu (11.04) 机器上连接着一个 USB 硬盘。每次我重启电脑并登录时,它都会挂载硬盘。由于磁盘上有 NTFS,Linux 会指定某个用户作为磁盘上文件的所有者。因此,磁盘上的所有文件都显示为一个用户所有,并且只有该用户才能看到这些文件。

我在计算机上使用两个用户帐户,并经常在它们之间切换。一旦我切换到其他用户帐户,我就无法再访问磁盘的内容,因为它属于我的第一个用户帐户。除了通过 /etc/fstab 安装它之外,还有什么可以做的吗?

谢谢。

答案1

使用特定权限进行挂载

有。将两个用户放在一个组中。然后使用该组设置选项gid=和,并以您想要的权限挂载您的磁盘。您可以使用mount 命令中的umask=fmask=dmask=选项来控制权限。以下是示例:

mount -O dmask=007,fmask=117,gid=46,uid=1000 /dev/sdc1 /media/winhdd

/etc/fstab这些选项也可以像这样使用: UUID=7258CB9858CB598D /media/win ntfs rw,auto,user,exec,nls=utf8,dmask=007,fmask=117,gid=46,uid=1000 0 2

避免使用 fstab - 使用 udev 自动挂载特定磁盘

我想你想避免使用 fstab,因为磁盘在启动时并不总是连接的。如果你想避免 fstab用一个udev 规则乌德夫可以在磁盘连接时自动挂载(并防止 Ubuntu 自动挂载)。规则可能如下所示:

# In /etc/udev/rules.d/70-usb-winhdd-mount.rules

KERNEL=="sd?[0-9]", ATTR{removable}=="1", ATTRS{serial}=="UA04FLGC", ACTION=="add", RUN+="mount -O dmask=007,fmask=117,gid=46,uid=1000 /dev/%k /media/winhdd"

您需要根据磁盘的属性来识别磁盘。在我的示例中,我通过 来识别磁盘ATTRS{serial}=="UA04FLGC"。我在另一个问题。规则文件的命名和位置也在那里描述。

赋予所有可移动磁盘这些属性

如果您想对所有可移动磁盘执行此操作 - 而不仅仅是那个特定的磁盘,只需省略序列部分并确保分配一个唯一的挂载点(计数它们,从序列创建,udev 的 % 符号或其他方法)。同样如上所述别处 ENV{mount_options}="$env{mount_options},dmask=007,fmask=117,gid=46,uid=1000"可以选择安装具有特定权限/所有权的所有可移动磁盘。


您可能已经知道的有用信息:

创建组并添加用户

这些是创建名为“winhdd”的组并向该组添加名为“confus”的用户的 shell 命令:

groupadd winhdd
usermod -a -G winhdd confus

查找组 ID

您可以在名为 的文件中查找系统上所有组的组 ID /etc/group。其中的条目看起来像winhdd:x:4:confus,narur,joe这样:'confus'、'narur' 和 'joe' 是属于该组的用户名,'adm' 是组的名称,'4' 是您要查找的组 ID。/etc/groups您还可以检查是否已成功将用户添加到您的组。该命令getent group winhdd将显示包含有关该组信息的行。该id命令为您提供您的组 ID、用户 ID 以及您所属的所有组的名称和 ID。

设置类似 umask 的选项

您需要设置dmask=合理价值允许您至少执行(=访问)目录。fmask=是文件权限的选项。

dmask=007,fmask=117,gid=46,uid=1000允许所有者即用户号 1000(掩码中的第一个数字)和组号 46(掩码中的第二个数字)的成员读取和写入磁盘上的文件。其他用户无权执行任何操作(因此掩码中的第三个数字是 7)。以下是掩码值

7 – no permissions     6 – execute only    5 – write only
4 – write and execute  3 – read only       2 – read and execute
1 – read and write     0 – read, write and execute

相关内容