可能重复:
如何在 NTFS 分区上执行‘chmod’?
我刚刚开始使用 Ubuntu,我的硬盘上设置了一个 Ubuntu 分区、一个 Windows 7 分区和一个更大的存储分区,我将大部分文件保存在其中。
我一直在做一些编程工作,并一直将其放入a.out
存储分区中的一个文件夹中。当我尝试在 Bash 中启动它时,我收到权限被拒绝的错误。然后我做了一个sudo chmod +x a.out
,但这没有给出任何反馈,所以我尝试a.out
再次启动并得到没有权限。我尝试使用 GUI 更改a.out
为可执行文件,但当我勾选了复选框,它马上就取消了勾选。
我谷歌了一下,似乎分区本身需要被授予执行权限。所以我照做了sudo chmod +x Storage
,然后ls -l
得到了:
drwx------ 1 jared jared 4096 2011-09-17 21:03 Storage
当我回去更改时a.out
它仍然没有改变。
/proc/mounts
这是文件系统的一行:
/dev/sda3 /media/Storage fuseblk rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 0 0
我确信我对权限有一些误解,因此如果有人能给我指出正确的方向,我将不胜感激。
答案1
Bash 脚本不必是可执行的,您只需指定使用什么来运行它们。例如:
bash ./script
Linux 权限(又名 chmod/chown)仅适用于 Linux 文件系统。它们不适用于 NTFS 或 FAT32。
答案2
Windows 文件系统(尤其是 fat32 和 ntfs)和其他一些文件系统没有像 Linux 文件系统那样的权限管理。但即使没有权限管理,也sudo chmod +x Storge
无济于事,因为它只是文件系统层次结构中的一个文件夹,而且文件夹已经是可执行的。您需要使用递归选项chmod -R folder
来设置该文件夹中所有文件的权限。但这在这里也行不通,因为没有要设置的权限。
但是,您可以告诉系统以允许执行的方式安装存储分区。例如,/etc/fstab
我的 Windows 分区的条目如下所示:
# Excerpt from /etc/fstab
UUID=7258CB9858CB598D /media/win ntfs rw,auto,user,exec,nls=utf8,umask=003,gid=46,uid=1000 0 2
特别注意umask
和exec
选项。gid
并uid
告诉挂载该分区属于哪个用户。
这些问题中的更多信息: