因此,为了方便起见,我将所有数据存储在 Windows 分区上,以便我可以从 Linux 和 Windows 轻松访问我的数据。但是,我尝试使用 g++ 编译 C++ 程序,发现我无法使用 运行该程序./program_filename
,因为它告诉我
bash: program_filename: Permission denied
正在做
cp program_filename ~/program_filename
但是,从我的主目录运行它效果很好。
所以我尝试了chmod +rwx program_filename
,但ls -l
显示权限仍然设置为-rw-------.
目录中的所有文件。当我以 root 身份执行此操作时,也没有任何变化。
有一个简单的解决办法吗?
(如果它有用,我正在运行 Fedora 16 x64)
答案1
确保您的安装选项允许执行权限位。
有一些挂载选项可用于限制已挂载文件系统中文件的权限:常规noexec
阻止所有文件可执行,特定于 FAT 的选项仅向扩展名为、和 的showexec
文件授予权限。另请注意和所暗示的。.exe
.com
.bat
noexec
user
users
如果您使用user
or ,您仍然可以通过在or选项之后使用显式指定的挂载选项users
进行挂载来获取执行权限位。exec
user
users
参见安装联机帮助页了解详情。
答案2
umask
当您安装 FAT 或 NTFS 分区时,权限由、fmask
和选项在安装时确定dmask
。第一个是通用的,另外两个是特定于文件和目录的。
您可能还对建立分区上所有文件和目录的所有者和组感兴趣uid
并选择。gid
一个例子:
mount -t ntfs-3g -o uid=500,gid=500,umask=0022 /dev/sda1 /mnt/win
答案3
在 Puppy Linux 中,默认情况下您可以在 NTFS 或 FAT 分区上执行脚本:http://murga-linux.com/puppy/viewtopic.php?t=95174