在启动时挂载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分区之一的cpmv)文件或移动()的文件移至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)已添加到用户列表中,并具有完整权限。其他大多数用户的需求减少了,因此我没有做我期望的事情的权利。值得注意的是,“每个人”似乎不再有权“遍历文件夹/执行”。

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


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

在选项列中添加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注意:不允许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.ntfsuidgid选项(或使用用户映射功能)(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.