Gcc 无法在简单编译中打开输出文件a.out:权限被拒绝
我在vim中编写了一些代码,每当我尝试运行代码时,它都会显示以下内容:Gcc 无法在简单编译中打开输出文件a.out:权限被拒绝,gcc,permissions,Gcc,Permissions,我在vim中编写了一些代码,每当我尝试运行代码时,它都会显示以下内容: coolmego@coolmego-PC:~/coolmego/cprograms$ gcc dfs8puzz.c /usr/bin/ld: cannot open output file a.out: Permission denied collect2: ld returned 1 exit status coolmego@coolmego-PC:~/coolmego/cprograms$ ./a.out bash:
coolmego@coolmego-PC:~/coolmego/cprograms$ gcc dfs8puzz.c
/usr/bin/ld: cannot open output file a.out: Permission denied
collect2: ld returned 1 exit status
coolmego@coolmego-PC:~/coolmego/cprograms$ ./a.out
bash: ./a.out: No such file or directory
我该怎么办?移动到允许您写入的目录。尝试
chmod-R 777~/coolmego/cprograms
当您运行sudo时,您实际上是以root用户身份运行命令。可能您最终弄乱了权限,使root拥有这些文件。因此,当您运行sudo时,它就可以正常工作(root可以在这些目录中写入内容)。你需要coolmego来拥有这些文件。例如:
sudo chown coolmego /home/coolmego/coolmego/cprograms/
chmod 700 /home/coolmego/coolmego/cprograms/
删除/etc/fstab中的用户选项。除非在fstab中明确给出exec,否则fstab中包含user的任何内容都会自动装入noexec。尝试向目标目录授予读写权限以获取输出。如果您使用的是个人系统,您可以执行“sudo chmod 777”这是因为如果您只有写入权限,但您不是目录的所有者
whoami
sudo chown -R "$USER:" /path/to/the/directory
chmod -R 700 /path/to/the/directory
请参阅yaa..但当我使用sudo命令时,它可以正常工作…尽管我将权限更改为“全部读取,写入执行模式…”通过“chmod 777 filename”…但它不在实际保存它的指定目录内工作。
ls-ld~/coolmego/cprograms
告诉你什么?@Dennis Williamson:它显示了类似这样的内容:“drwxr-xr-x 2 root root 4096 2011-03-15 19:37/home/coolmego/coolmego/cprograms/”你需要做sudo chown cmego:cmego*代码>yaa..但当我使用sudo命令时,它可以正常工作…虽然我将权限更改为“全部读取,写入执行模式..通过“chmod 777 filename”…但它不在实际保存它的指定目录内工作…您应该避免这种情况。您将使所有文件都可执行,甚至是c代码文件。如果此子目录中有许多文件,则还原此命令可能会很痛苦。这不是一个好主意,而且无论如何也不会起作用。问题不在于权限,而在于所有权。