所以我对 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
是的,您还必须更改目录的权限。
这是因为,如果您仅对目录内的文件具有写权限,那么您就无法创建新文件,因为您没有该文件的写权限(它不存在,因此没有权限创建它)。
如果您对该目录具有写权限,则可以在其中创建一个文件,因为您对该目录本身具有写权限。
使自己成为所有者(终端方式):
检查您的用户名:
whoami
使您自己成为目录及其内容的所有者:
sudo chown -R "$USER:" /path/to/the/directory
该
-R
标志代表递归,因此目录及其所有子文件和子目录将更改所有者。删除该-R
标志只会更改目录本身的权限。
现在您应该能够创建文件或目录,因为您现在是目录及其所有内容的所有者。如果仍然无法创建,请使用以下命令授予所有者对目录及其内容的写入权限:
chmod -R 700 /path/to/the/directory