我有一个需要在 NTFS 分区上执行的脚本。脚本的权限设置为 600。
我试图通过运行来修改权限chmod 755 script.sh,这不会报告失败或任何事情 - 但它也不会更改文件的权限:
$ stat script.sh
File: `script.sh'
Size: 297070 Blocks: 584 IO Block: 4096 regular file
Device: 811h/2065d Inode: 35515 Links: 1
Access: (0600/-rw-------) Uid: ( 1000/ xxxxxx) Gid: ( 1000/ xxxxxx)
Access: 2010-09-30 14:05:16.041621000 -0700
Modify: 2010-09-30 14:05:05.070157000 -0700
Change: 2010-09-30 14:05:05.070475000 -0700
$ chmod 755 script.sh
$ stat script.sh
File: `script.sh'
Size: 297070 Blocks: 584 IO Block: 4096 regular file
Device: 811h/2065d Inode: 35515 Links: 1
Access: (0600/-rw-------) Uid: …Run Code Online (Sandbox Code Playgroud) 我目前正在使用 /etc/fstab 中的以下行在启动时挂载 NTFS 分区:
/dev/sda3 /media/data ntfs nls=iso8859-1,umask=000
Run Code Online (Sandbox Code Playgroud)
对于我的 Ubuntu 11.10 安装,看起来好像所有文件和文件夹都归root- 而且由于 NTFS 无论如何都不真正支持相同的权限管理系统,因此在安装完成后我无法更改它。无论我做什么,ls -lNTFS 分区上的任何地方都会列出root:root.
但是,这给我带来了一些问题。最值得注意的是,在我的帐户下运行的一些应用程序(称为tomas)抱怨访问权限。此外,每当我尝试将 ( cp) 或 ( mv) 文件从我的 ext3 分区之一复制到 NTFS 分区时,我都会收到错误消息说
mv: preserving times for `[path to new file]`: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
或者,类似地
mv: preserving permissions for ...
Run Code Online (Sandbox Code Playgroud)
以我的名字而不是 root 来安装分区会有帮助吗?如果是这样,我如何在 fstab 中完成它?
更新:
我现在已经根据建议更改了选项,并得出以下结论:
nls=iso8859-1,permissions,users,umask=000,uid=tomas,gid=tomas
Run Code Online (Sandbox Code Playgroud)
ls -l现在显示我所有的文件而不是root所有的文件,看来我之前遇到的一些问题已经解决了。然而,并非全部。
当我启动 Eclipse 时,我收到一个错误,提示无法运行与 android-sdk 相关的文件:权限被拒绝。ls -l告诉我有关该文件的以下信息:
-rwxrwxrwx 1 tomas tomas 159620 …Run Code Online (Sandbox Code Playgroud) 我写过:
/dev/sda2 /win ntfs-3g rw,dev,exec,auto,async,users,umask=777,uid=1000,gid=1000,locale=en_US.utf8, errors=remount-ro 0 0
Run Code Online (Sandbox Code Playgroud)
但我仍然无法以用户身份访问 /win(对应于指定的 uid/gid)。作为 root 我可以访问 /win 并且可以看到根本没有设置任何权限(我认为 umask=777 意味着设置所有权限)。