【问题标题】:Mkdir() permission denied C/linux programmingMkdir() 权限被拒绝 C/linux 编程
【发布时间】:2013-04-13 10:59:51
【问题描述】:

当我执行此代码时,我收到错误 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;
    }

【问题讨论】:

标签: c linux permissions mkdir


【解决方案1】:

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

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

如果程序名叫做myprogram,尝试运行:

sudo ./myprogram

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

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

【讨论】:

  • 解决了我一半的问题,因为当我尝试打开新创建的文件夹时,我将掩码设置为具有完全权限 (0777),但出现错误“无权查看文件夹内容”...
【解决方案2】:

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

filepath_w = "/tmp/directory"

【讨论】:

    猜你喜欢
    • 2016-08-24
    • 2013-07-01
    • 2012-08-13
    • 1970-01-01
    • 2023-03-22
    • 2018-03-19
    • 2021-12-20
    相关资源
    最近更新 更多