我目前正在使用 /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)
已添加到用户列表中,并拥有完全权限。大多数其他用户的权限被削弱,因此我没有权限执行我期望的操作。值得注意的是,“每个人”似乎不再拥有“遍历文件夹/执行”的权限。
这可能只需选择分区并允许每个人在根文件夹上执行任何操作,然后告诉它以递归方式执行此操作即可解决,但我宁愿不这样做,因为我担心需要几天时间才能完成......
答案1
在选项栏中添加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
:不允许设置用户标识符或设置组标识符位生效。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
使用uid
和gid
选项(或使用用户映射功能)挂载.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
您还可以将该命令添加到启动应用程序中,它将在您登录时自动安装。
参考:自动挂载分区