像 Nautilus 一样自动挂载 NTFS 分区

Dus*_*yte 5 nautilus fstab mount automount ntfs

我有一个要自动挂载的 NTFS 分区,因此我不必打开 Nautilus 并在“设备”下单击它。如果我使用 Nautilus 挂载,然后键入 mount,我会看到以下行:

/dev/sdb1 on /media/Data type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)

我是所有文件的所有者,权限是我想要的方式(umask 077在 .bashrc 中有)。但是,按照MountingWindowsPartitions上的说明,并将以下行添加到 fstab

UUID=4A92C07A92C06C4F /media/Data ntfs-3g defaults,windows_names,locale=en_GB.utf8 0 0

驱动器确实会自动挂载,但所有文件权限都是 -rwxrwxrwx 并且用户和组都是 root。该mount命令现在显示

/dev/sdb1 on /media/Data type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096)

如何在 fstab 中指定参数,以便以与在 Nautilus 中的“设备”下单击设备时相同的方式精确安装分区?我有 Ubuntu 12.04。

msw*_*msw 2

nautilus 完成的安装fuse比系统范围的安装有一个优点/etc/fstab:它知道哪个用户正在执行安装。假设您是客户端计算机的唯一用户(现在这已经足够公平了),您可以通过以下方式获取数字 UID 和 GID 以及默认 umask:

\n\n
$ id\nuid=1001(msw) gid=1001(msw) groups=\xe2\x80\xa6\n$ umask \n0002\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后你将这些添加到选项组中fstab

\n\n
defaults,uid=1001,gid=1001,umask=077,windows_names,locale=\xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是明智的,但不需要替换defaults

\n\n
auto,rw,nosuid,nodev,noexec\n
Run Code Online (Sandbox Code Playgroud)\n\n

nautilus 假定用户安装的分区是“不受信任的”,因此以这种方式标记它们。外部(即 NTFS)分区可能应该始终被怀疑。

\n\n

添加回应评论

\n\n

这是跨系统语义变得奇怪的领域。mount.ntfs(8) 手册定义fmaskdmask尝试使在 NTFS 文件系统上创建的文件表现得更好。windows下可以ls使用不属于我的目录吗?我应该可以吗?Linux 和 Windows 上的 UID 之间有什么关系吗?不知道。

\n\n

mount.ntfs有一个usermapping=选项可以取代 uid、gid、umask、fmask 和 dmask。如果您想精细控制为哪些文件分配哪些权限,我建议您研究一下。在用户映射挂载下提交太多内容之前,我会检查您是否可以从 Windows 端访问它们。

\n