可能重复:
.exe 文件权限失败
我编写了一个简单的 hello world 程序,但没有将其存储在 Ubuntu 的主目录中,而是将其存储在 Windows 驱动器之一上。(我正在使用 Ubuntu 12.04 和 Windows。)
当我已编译这个程序运行得很好,但是当我尝试执行我收到一条错误消息“权限被拒绝”。
当我将程序存储在 Ubuntu 的主目录中时,我可以完美地编译和执行该程序。请告诉我如何克服这个问题?
答案1
当您在 Ubuntu 中安装 Windows 分区时,它会使用 noexec 指令进行安装。如果您经常从 Ubuntu 访问该驱动器,则可以在 fstab 中安装该驱动器。您需要运行 blkid 来确定 Windows 驱动器的 UUID 是什么,然后在 fstab 中为其添加安装语句。确保当您到达行的参数部分时,您没有指定 noexec。
答案2
首先,您应该检查文件和文件系统的权限
ls -la <filename>
检查您是否具有执行该文件的适当权限
或者检查已安装的 Windows 文件系统的文件系统属性
mount
将输出粘贴到这里。也许我们可以提供帮助
答案3
您需要切换到该目录,然后在更改权限后运行该程序。为此,您将成为超级用户。
我假设您可以导航到 Windows 中保存该文件的目录。
现在,转到该目录并打开另一端的终端并输入
cd
并将 .c 文件所在的目录拖到终端中。如果您的文件位于 Windows 桌面中,则终端将如下所示:
cd '/media/Windows_7/Users/username/Desktop'
现在,假设您的文件是 test.c,更改该文件的权限并查看它是否可以使用:
sudo chmod 755 test.c
现在编译并查看它是否有效,如果不行,则对 a.out 执行相同操作。
如果这不起作用,我猜这意味着需要更改驱动器权限。
该命令看起来类似于以下内容:
sudo mount -t ntfs -o rw,auto,user,fmask=0022,dmask=0000 /dev/whatever /mnt/whatever
其中“无论什么”都取决于您的系统。
如果那不是你要说的,那么你应该按照 mbs 所说的去做。