在启动时挂载NTFS分区,非root用户作为所有者

我正在使用/ etc / fstab中的以下行在启动时安装NTFS分区:

/dev/sda3 /media/data ntfs nls=iso8859-1,umask=000 

对于我的Ubuntu 11.10安装,它看起来好像所有文件和文件夹都归root – 而且由于NTFS实际上并不支持相同的权限管理系统,所以在安装完成后我无法更改它。 无论我做什么, ls -l NTFS分区上的任何地方都会列出root:root所拥有的每个文件和文件夹。

但是,这会给我带来一些问题。 最值得注意的是,在我的帐户下运行的一些应用程序(称为tomas )抱怨访问权限。 此外,每当我尝试从我的一个ext3分区复制( cp )或移动( mv )文件到NTFS分区时,我会收到错误消息

 mv: preserving times for `[path to new file]`: Operation not permitted 

或者,类似地

 mv: preserving permissions for ... 

将分区安装在我的名字而不是root帮助? 如果是这样,我如何在fstab中实现这一目标?


更新:

我现在根据建议改变了选项,并得出了这个:

 nls=iso8859-1,permissions,users,umask=000,uid=tomas,gid=tomas 

ls -l现在显示我拥有的所有文件而不是root用户,看起来我之前遇到的一些问题都解决了。 但是,并非全部。

当我启动Eclipse时,我收到一个错误,即无法运行与android-sdk相关的文件:权限被拒绝。 ls -l告诉我有关该文件的以下内容:

 -rwxrwxrwx 1 tomas tomas 159620 2011-11-29 14:50 adb* 

这看起来就像我想要的那样。 但是,如果我尝试运行它(终端中的./adb ),我也会获得权限拒绝错误。 但是,如果我用sudo运行它,它可以工作(我相信 – 至少它不会给我一个错误信息,但它根本不给我任何输出,我认为它不应该……)

为什么上述文件具有任何人的执行权限,仍然不能由root以外的任何人执行? 如何更改挂载文件系统的方式呢?


更新2:

好的,我现在再来一点。 通过安装这些选项

 nls=iso8859-1,permissions,users,auto 

我按照我期望的方式设置了所有权限, chownchmod实际上更改了文件的设置(至少根据ls -l )= D

但我的系统仍然表现得很奇怪。 adb脚本文件的权限如上所述,但如果没有“权限被拒绝”错误,我和Eclipse都无法运行它。 但据我所知,文件中设置了所有必需的标志( o=rwx应该足够了,对吧?)。 为什么不起作用?


更新3

好的,我在Ubuntu方面有所有工作,有以下选项:

 nls=iso8859-1,permissions,users,auto,exec 

但是,当我尝试从Windows访问分区上的文件时,安全设置都搞砸了。 在所有文件(我已经检查过的那些文件)中,一个名为Account Unknown(long GUID)的新帐户已添加到用户列表中,并具有完整权限。 大多数其他用户的数量减少,因此我没有权利做我期望的事情。 值得注意的是“每个人”似乎不再拥有“遍历文件夹/执行”的权利。

这可以解决,只需选择分区并允许Everyone在根文件夹上执行任何操作,然后告诉它以递归方式执行此操作,但我不愿意,因为我担心它需要数天才能完成…

在选项列中添加permissionsauto (可能还有userusers

 nls=iso8859-1,permissions,users,auto 
  • permissions :(NTFS-3G选项)设置已创建文件的标准权限并使用标准访问控制。
  • auto :将在启动时mount -a并从mount -a
  • user :允许普通用户挂载文件系统
  • users :允许每个用户挂载和卸载文件系统

然后更改文件系统的所有权:

 sudo chown -R thomas:thomas /media/data 

我在/etc/fstab

 /dev/sda5 /media/ntfs ntfs-3g users,permissions,auto 0 0 

装载和列出权限

 sudo mount /media/ntfs Using default user mapping bodhi@ufbt:~$ ls -l /media drwxr-xr-x 1 root root 4096 2012-01-04 17:08 ntfs 

更改所有权并列出新权限

 bodhi@ufbt:~$ sudo chown bodhi:bodhi /media/ntfs bodhi@ufbt:~$ ls -l /media drwxr-xr-x 1 bodhi bodhi 4096 2012-01-04 17:10 ntfs 

默认情况下,ntfs-3g会挂载分区noexec,nosuid和nodev。

  • noexec :不允许在挂载的文件系统上直接执行任何二进制文件。
  • nosuid :不允许set-user-identifier或set-group-identifier位生效。
  • nodev :不解释文件系统上的字符或块特殊设备。

要覆盖它并允许执行文件,请使用exec

 /dev/sda5 /media/ntfs ntfs-3g exec,permissions,auto 0 0 

现在我们得到了

 bodhi@ufbt:~$ ls -l /media/ntfs -rwx------ 1 bodhi bodhi 28 2012-01-04 17:16 file bodhi@ufbt:~$ /media/ntfs/file It works 

使用mount.ntfs(8)的uidgid选项(或使用用户映射function)

当我改变fstab的线时,我的工作现在完美无缺

 UUID=761C84B31C846FC3 /media/d ntfs defaults,umask=022,uid=1000 0 0 

udisks怎么udisks ? 它可以轻松地将您的用户作为所有者安装NTFS分区。

示例(将其键入命令行):

 /usr/bin/udisks --mount /dev/sda3 

您还可以将该命令添加到启动应用程序,并在登录时自动挂载。

参考: AutomaticallyMountPartitions