似乎每当我创建一个文件时,touch
权限都设置为:-rw-r--r--。
有什么方法可以配置权限,touch
或者必须在使用不同的命令后完成此操作?
答案1
您可以修改您的umask
权限以允许(对于大多数实现)更多读/写权限,但不可执行,因为通常请求的权限是0666
.
如果你umask
是022
,你会看到touch
创建一个0644
文件。
有趣的是,POSIX用以下术语描述此行为creat
:
如果文件不存在:
这创建()使用以下参数调用函数:
文件操作数用作路径参数。
按位包含的值或者的
S_IRUSR
,S_IWUSR
,S_IRGRP
,S_IWGRP
,S_IROTH
, 和S_IWOTH
用作模式参数。
并且只有通过点击链接creat
,然后点击链接open
,注意提及umask
并回溯到open
(和creat
)来验证是否umask
应该影响touch
。
要umask
仅影响touch
命令,请使用子 shell:
(umask 066; touch private-file)
(umask 0; touch world-writable-file)
touch file-as-per-current-umask
(请注意,在任何情况下,如果文件事先存在,touch
则不会更改其权限,只是更新其时间戳)。
答案2
您可以操纵umask
.一般设置为022
,表示用户创建文件时,会获得 的权限0644
,你可以umask
根据自己的需要进行操作。