挂载 Windows 分区的最佳实践

挂载 Windows 分区的最佳实践

我的笔记本电脑上同时运行 Windows 和 Debian。我主要使用 Linux,但有时我需要访问 Windows 分区中的文件。我的 Windows 分区在启动时按如下方式安装。

>cat /etc/fstab |grep Win7
LABEL=Windows7_OS /mnt/Win7 auto nosuid,nodev,nofail,x-gvfs-show 0 0

基本上Windows分区中的每个文件都归root:root所有,并具有777权限。然后,每当我将文件 mv 到我的工作(Linux)分区时,我的分区下就会有一个 777 文件,该文件归我所有(虽然终端中的 cp 会给出 755 文件,但如果通过 gnome 完成,将以 777 权限保存该文件) 。

这是挂载分区的最佳实践吗?或者我应该挂载它,而不是 root,我是所有文件/目录的所有者,并且在启动时挂载时能够以某种方式将所有目录设置为 755,将文件设置为 644?如果可以的话,该怎么办呢?

答案1

您可以使用fmask挂载dmask选项*来更改 ntfs 文件系统上的权限映射。

要使文件rw-r--r--(644) 和目录rwxr-xr-x(755) 显示,请使用fmask=0133,dmask=0022.如果您需要用户的写访问权限,您可以将其与uid=gid=选项结合起来选择文件所有者和组。

*fmask并且dmask似乎也适用于内核(只读)驱动程序,即使它们没有记录在安装手册页。他们是有记录的ntfs-3g 的选项。

答案2

首先,这不是 /mnt 的使用方式。这是为了暂时在文件系统上执行管理任务,而不是每次系统启动时。

由于 Windows 分区不参与 Linux 系统的运行,因此将其挂载在 /media 下是有意义的。您可能还需要考虑将其安装在 root / as /Windows 下,以避免 /media 用于可移动媒体的任何混淆。

至于权限,我会使用一个名为 windows 的组

groupadd -g 1001 Windows

并通过以下选项为其授予您想要的权限:

gid=1001,umask=022

如果你想使用cp并保持权限不同文件系统之间将 cp 与 -p 或 -a 标志一起使用。

答案3

使用挂载选项uidgid、 ,fmaskdmask可以使您的常规用户帐户和/或一组可以访问整个 NTFS 文件系统。但这是要么全有要么全无的情况:就 NTFS 文件系统而言,它就像在 Windows 中始终以完全管理员身份运行,或者就像在 Linux 中以 root 身份执行所有操作。 NTFSntfs-3g文件系统驱动程序可以做得更好。

如果您使用的是ntfs-3g,则可以使用该ntfsusermap命令为 NTFS 文件系统创建用户映射文件。该命令将帮助您识别 Windows 用户名及其相应的 Windows SID,并将它们与 Linux 用户和组 ID 相关联。

通过这种方式,您可以将 Windows 用户帐户的 SID 与您的 Linux UID 关联起来。这样,一旦您使用位于 的用户映射文件挂载 NTFS 文件系统<NTFS filesystem root>/.NTFS-3G/UserMapping,您就可以使用常规 Linux 用户帐户访问 NTFS 文件系统,就像您的 Windows 用户帐户能够访问的那样。对于在 Windows 中需要管理员权限的操作,在 Linux 中仍然需要 root 权限。

这样,您就可以方便地访问 Windows 分区上的文件,但仍然可以防止输入\Windows错误的命令弄乱您的目录,除非您以 root 身份运行。

您可能还想windows_names在 NTFS 分区上使用挂载选项,以防止意外创建 Windows 无法访问的名称的文件。

相关内容