1

当我执行此代码时,我收到错误Couldn't create backup sub-directory: Permission denied,但我不明白为什么,因为我提供了完整的权限并且我在 ubuntu 上使用了管理员帐户。

umask(0777);
int folder_date_status = mkdir(filepath_W, 0777);

if(folder_date_status == -1){
    perror("Couldn't create backup sub-directory");
        return -1;
    }
4

2 回答 2

2

默认情况下,管理员帐户不会以完全权限运行。这样您运行的程序就不会意外地充当特权用户(即,您必须明确授予权限)。

要授予程序在需要特权访问的目录中创建子目录的权限,请尝试使用sudo.

如果程序名被调用myprogram,尝试运行:

sudo ./myprogram

如果需要,请输入您的密码。

请注意,只有在尝试在写限制目录(例如,root 或其他用户拥有的受限目录)中创建子目录时才需要超级用户访问权限。还要确保父目录存在(否则也可能引发错误)。

于 2013-04-19T23:44:48.580 回答
0

您是否验证了您的 filepath_w?您是否有权对其进行读取、写入和执行?我建议您使用绝对路径名并将其指向 tmp 目录,如下所示:

filepath_w = "/tmp/目录"

于 2013-04-20T00:12:03.020 回答