我的笔记本电脑上同时运行 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
答案2
首先,这不是 /mnt 的使用方式。这是为了暂时在文件系统上执行管理任务,而不是每次系统启动时。
由于 Windows 分区不参与 Linux 系统的运行,因此将其挂载在 /media 下是有意义的。您可能还需要考虑将其安装在 root / as /Windows 下,以避免 /media 用于可移动媒体的任何混淆。
至于权限,我会使用一个名为 windows 的组
groupadd -g 1001 Windows
并通过以下选项为其授予您想要的权限:
gid=1001,umask=022
如果你想使用cp并保持权限不同文件系统之间将 cp 与 -p 或 -a 标志一起使用。
答案3
使用挂载选项uid
、gid
、 ,fmask
您dmask
可以使您的常规用户帐户和/或一组可以访问整个 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 无法访问的名称的文件。