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

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

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

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

对于我的 Ubuntu 11.10 安装,所有文件和文件夹似乎都归 拥有root- 而且由于 NTFS 并不真正支持相同的权限管理系统,因此在安装完成后我无法更改它。无论我做什么,ls -lNTFS 分区上的任何地方都会将每个文件和文件夹列为 拥有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

我按预期设置了所有权限,并且chown实际上chmod更改了文件的设置(至少根据ls -l)=D

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


更新 3

好的,我已在 Ubuntu 端使一切正常运行,并具有以下选项:

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

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

可能只需选择分区并允许每个人在根文件夹上执行任何操作,然后告诉它以递归方式执行此操作即可解决,但我宁愿不这样做,因为我担心需要几天时间才能完成......

答案1

在选项栏中添加permissionsauto(也可能是userusers

nls=iso8859-1,permissions,users,auto
  • permissions:(NTFS-3G 选项)对创建的文件设置标准权限并使用标准访问控制。
  • auto:将在启动时挂载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:不允许设置用户标识符或设置组标识符位生效。
  • 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

答案2

使用uidgid选项(或使用用户映射功能)挂载.ntfs (8)

答案3

当我将 fstab 的行更改为

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

答案4

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

示例(在命令行中输入):

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

您还可以将该命令添加到启动应用程序中,它将在您登录时自动安装。

参考:自动挂载分区

相关内容