我有一个写入日志文件的程序。当然,必须创建这个日志文件和文件夹,我的程序必须以root身份运行,因此它始终使用rw -------权限创建文件夹,并且不能以普通用户的身份进行读写。我不希望这样,所有用户都应该具有读写权限。
我的在线搜索引导我到umask(000);但它只适用于文件而不适用于文件夹。创建的文件夹对root只有rw权限,而对于所有其他文件都没有,而该文件具有我设置的umask权限。
任何人都知道为什么会这样?
答案 0 :(得分:1)
我会尝试使用chmod()
库中的<sys/stat.h>
“[...]使用指定的权限位并忽略文件创建掩码。”,请参阅{ {3}}了解更多信息。
#include <sys/stat.h>
#include <stdio.h>
int main(void) {
if(chmod("test", 0777) != 0)
printf("Error while setting permissions on directory.");
return 1;
}