在Linux中设置默认文件权限为读,写和执行

在Linux中设置默认文件权限为读,写和执行

我需要为everyone[ 777]设置默认文件创建权限rwx,但是文件的umask用途666是:

  • 如果我需要权限444,我会发出umask 222[ 666 - 222 = 444],但问题是我需要将它们设置为777

我如何实现这个目标?

答案1

你真的不能——POSIX 系统上没有“默认文件权限”。

文件权限是在使用以下任一方式创建文件时设置的:open()/openat()或者creat()功能。

根据open()规范(请注意加粗的部分,它是为了强调文件权限位来自哪里):

O_CREAT

如果文件存在,则此标志无效,除非如下所述 O_EXCL。否则,如果O_DIRECTORY未设置,则应将文件创建为常规文件;文件的用户 ID 应设置为进程的有效用户 ID;文件的组 ID 应设置为文件父目录的组 ID 或进程的有效组 ID;并且访问权限位(参见<sys/stat.h>oflag) 应设置为将作为类型的参数后面的参数的值,mode_t 修改如下:对文件模式位和进程的文件模式创建掩码补码中的相应位执行按位与操作。...

创建文件的应用程序选择文件的初始权限,但将进程设置中非零的位umask设置为零。

没有“默认”权限设置。

相关内容