无法打开输出文件:权限被拒绝

无法打开输出文件:权限被拒绝

所以我对 Ubuntu 完全陌生。我设置了一个包含几个 c 程序的共享文件夹,当我在 Ubuntu 中进行编译时,例如:

gcc file.c -o fileTest

我收到以下错误:

/usr/bin/ld: cannot open output file fileTest: Permission denied
collect2: error: ld returned 1 exit status

我确信我对 C 文件的权限是正确的,所有文件都有“rwx”权限。

我是否也必须更改目录的权限?

我完全是新手,所以很抱歉。

答案1

是的,您还必须更改目录的权限。

这是因为,如果您仅对目录内的文件具有写权限,那么您就无法创建新文件,因为您没有该文件的写权限(它不存在,因此没有权限创建它)。

如果您对该目录具有写权限,则可以在其中创建一个文件,因为您对该目录本身具有写权限。

使自己成为所有者(终端方式):

  1. 检查您的用户名:

    whoami
    
  2. 使您自己成为目录及其内容的所有者:

    sudo chown -R "$USER:" /path/to/the/directory
    

    -R标志代表递归,因此目录及其所有子文件和子目录将更改所有者。删除该-R标志只会更改目录本身的权限。

现在您应该能够创建文件或目录,因为您现在是目录及其所有内容的所有者。如果仍然无法创建,请使用以下命令授予所有者对目录及其内容的写入权限:

chmod -R 700 /path/to/the/directory

相关内容