c++ - 无法通过 open() 创建的文件授予其他人对我的写入权限

标签 c++ linux ubuntu file-io permissions

我正在使用 open() 在 linux 上创建一个文件

mode_t perms = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
int i = open(settingsPath.c_str(), O_CREAT | O_RDWR, perms);

如您所见,我为每个人指定了读/写权限。 但是当我检查终端中的权限时,它说

-rw-rw-r-- 1 tstadler tstadler    0 Apr 17 10:54 settings.json

为什么我不能给每个人写权限?

最佳答案

看起来每个人的写权限都被当前进程的umask屏蔽了。
参见 man 2 umask

关于c++ - 无法通过 open() 创建的文件授予其他人对我的写入权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23128698/

相关文章:

c++ - 动态分配内存,拷贝构造函数出错

c++ - 为什么 std::vector::push_front() 不存在?

linux - Bash 提示出现在输出中间

linux - 如何在Redhat服务器上安装Gnumeric?

java - Ubuntu 现在可以设置 java 路径

c++ - 使用 nmake 从 cpp 文件创建 dll

c++ - 使用共享指针进行运行时数组分配

ruby - 如何卸载旧版本的 Ruby,这是明智之举吗?

c# - 在 mv 到其他目录之后,Dotnet CLI 无法构建?

shell - 每次 Ubuntu 启动时如何在 Ubuntu 上运行脚本文件