在启动时挂载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
我按照我期望的方式设置了所有权限, chown
和chmod
实际上更改了文件的设置(至少根据ls -l
)= D
但我的系统仍然表现得很奇怪。 adb
脚本文件的权限如上所述,但如果没有“权限被拒绝”错误,我和Eclipse都无法运行它。 但据我所知,文件中设置了所有必需的标志( o=rwx
应该足够了,对吧?)。 为什么不起作用?
更新3
好的,我在Ubuntu方面有所有工作,有以下选项:
nls=iso8859-1,permissions,users,auto,exec
但是,当我尝试从Windows访问分区上的文件时,安全设置都搞砸了。 在所有文件(我已经检查过的那些文件)中,一个名为Account Unknown(long GUID)
的新帐户已添加到用户列表中,并具有完整权限。 大多数其他用户的数量减少,因此我没有权利做我期望的事情。 值得注意的是“每个人”似乎不再拥有“遍历文件夹/执行”的权利。
这可以解决,只需选择分区并允许Everyone在根文件夹上执行任何操作,然后告诉它以递归方式执行此操作,但我不愿意,因为我担心它需要数天才能完成…
在选项列中添加permissions
和auto
(可能还有user
或users
)
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)的uid
和gid
选项(或使用用户映射function)
当我改变fstab的线时,我的工作现在完美无缺
UUID=761C84B31C846FC3 /media/d ntfs defaults,umask=022,uid=1000 0 0
用udisks
怎么udisks
? 它可以轻松地将您的用户作为所有者安装NTFS分区。
示例(将其键入命令行):
/usr/bin/udisks --mount /dev/sda3
您还可以将该命令添加到启动应用程序,并在登录时自动挂载。
参考: AutomaticallyMountPartitions