我试图为其他用户的以下用户创建具有rwx权限的新文件:
int fd = open (myfile, O_CREAT, S_IRWXO);
但是当我检查时,“ myfile”仅对其他用户具有r-x权限。 我使用Ubuntu 12.0。
发生了什么问题?
感谢您的帮助!
答案 0 :(得分:3)
这是因为umask
的默认值为022
,因此,在创建新文件时,写入权限会自动删除。
为了解决您的问题,请删除umask(或重新配置):
$ umask 000
或在您的程序中使用umask()函数
mode_t umask(mode_t mask);
umask(0)
但是要小心,给所有人写和执行特权可能很危险