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


28

我目前正在使用/ 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)已添加到用户列表中,并具有完整权限。其他大多数用户的需求减少了,因此我没有做我期望的事情的权利。值得注意的是,“每个人”似乎不再有权“遍历文件夹/执行”。

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


2
从安装件(8) :users Allow every user to mount and unmount the filesystem. This option implies the options noexec, ... unless overridden by subsequent options, as in the option line users,exec,dev,suid)。 因此,添加exec到您的选项中,我认为应该解决执行权限被拒绝的问题。
— benwh 2012年

在Update 3之后您是否解决了这个问题?...我曾试图将我的Linux系统进行rsync备份到我拥有的一个额外的ntfs驱动器上,但是经过大量搜索,得出的结论是我永远无法放入完整的linux文件系统信息数组到ntfs fs上。(也许我可以像您之前所做的那样接近,但是最终linux不能很好地映射到ntfs。)
— 椭圆视图

@Elipticalview:这是很久以前的事了,我已经没有同一台计算机了。您尝试接受的答案了吗?
— Tomas Aschan

Answers:


25

在选项列中添加permissions和auto(可能还有user或users)

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注意:不允许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

嗯...将其添加到fstab(使hte选项列如下:)nls=iso8859-1,permissions,users,umask=000并重新启动后,我现在可以移动和复制文件了,而不会出现错误消息。root:root即使在之后,所有文件仍然显示为归所有者所有sudo chown -R tomas:tomas /media/data。目前看来这不是问题,但出于好奇:为什么?
— Tomas Aschan 2012年

我认为是由于您umask=000
— Panther

不,umask=000相当于chmod 777-的umask定义你的旗帜不想要的文件集。我同意这是违反直觉的,但这全在这里:ubuntuforums.org/showpost.php?
— p=9092899&postcount=

我已使用有关我尝试过的内容和结果的更多信息更新了我的问题。
— Tomas Aschan'1

1
嗯...我暂时要取消标记:事实证明,从Windows读取文件时这弄乱了权限...
— Tomas Aschan 2012年

2

使用mount.ntfs的uid和gid选项(或使用用户映射功能)(8)


1
换句话说,将uid = whoever添加到fstab行
— psusi 2012年

uid可以gid正常工作,但是ntfs-3g现在支持权限,并且这些选项优先于该permissions选项。请参阅:b.andre.pagesperso-orange.fr/permissions.html
— Panther,

我已经用尝试的方法和得到的结果的进一步信息更新了我的问题。请看一下=)
— Tomas Aschan 2012年

您能否更新fstab条目并删除uid,gid和umask,只需nls=iso8859-1,permissions,users卸载并重新装入分区。
— Panther

@ bodhi.zazen:然后我们回到第一个方框。文件显示为所有者所有,root:root并且Eclipse抱怨权限。
— Tomas Aschan'1

2

现在,当我将fstab的行更改为

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

1

那使用udisks呢?它可以轻松地将NTFS分区挂载为拥有者的用户。

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

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

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

参考:AutomaticallyMountPartitions

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.