Как дать разрешение на запись всем? - PullRequest
0 голосов
/ 31 октября 2018

После запуска следующего кода файл tasty имеет биты разрешения, установленные на 0700, что не соответствует его предназначению.

#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>

int main()
{
    int fild = creat("tasty", 0722);
    close(fild);
    return 0;
}

Как разрешить всем писать в файл?

1 Ответ

0 голосов
/ 31 октября 2018

Ваша оболочка, вероятно, имеет umask 022, что означает, что любые новые созданные файлы будут очищены с указанными битами (т.е. запись в группу и другая запись).

Вам нужно установить значение umask в 0 перед созданием файла:

#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>

int main()
{
    umask(0);
    int fild = creat("tasty", 0722);
    close(fild);
    return 0;
}
...