我正在测试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)方面失败了,有什么想法吗?
发布于 2012-01-03 23:06:53
来自man 2 mkdir
参数模式指定要使用的权限。它按照通常的方式被进程的umask修改:创建的目录的权限为(mode & ~umask & 0777)。
我建议您看看您的umask --它可能设置为0022。试试chmod post-mkdir。
发布于 2012-01-03 23:05:48
系统调用(如mkdir和open )设置的权限总是针对当前进程的umask进行屏蔽。您可以使用umask()函数更改当前的umask;完成后确保将其设置回原来的位置。
发布于 2012-01-03 23:05:06
检查umask函数:man 2 umask
https://stackoverflow.com/questions/8719867
复制相似问题