我正在测试mkdir
创建新目录的函数:
folder = mkdir("./linux", 511);
或
folder = mkdir("./linux", 0777);
或
folder = mkdir("./linux", S_IRWXU | S_IRWXG | S_IRWXO);
如您所见,我尝试授予该目录的完全权限,但出现的结果是 ls -l | grep linux
:
drwxr-xr-x 2 manuzhang manuzhang 4096 2012-01-04 06:53 linux
为什么我不能向组和其他人授予写权限?
更新:
奇怪的事情,正如你们告诉我的那样,我尝试过umask
。它适用于 umask(S_IWGRP)
或umask(S_IWOTH)
但失败 umask(S_IWGRP | S_IWOTH)
,有什么想法吗?
最佳答案
来自man 2 mkdir
:
The argument mode specifies the permissions to use. It is modified by the process's umask in the usual way: the permissions of the created directory are (mode & ~umask & 0777).
我建议您查看您的 umask - 它可能设置为 0022
。尝试 chmod
post-mkdir
。
关于c - linux mkdir函数无法授予完全权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25937186/