如何使用 touch 命令设置文件权限

如何使用 touch 命令设置文件权限

似乎每当我创建一个文件时,touch权限都设置为:-rw-r--r--

有什么方法可以配置权限,touch或者必须在使用不同的命令后完成此操作?

答案1

您可以修改您的umask权限以允许(对于大多数实现)更多读/写权限,但不可执行,因为通常请求的权限是0666.

如果你umask022,你会看到touch创建一个0644文件。

有趣的是,POSIX用以下术语描述此行为creat

  1. 如果文件不存在:

    创建()使用以下参数调用函数:

    • 文件操作数用作路径参数。

    • 按位包含的值或者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根据自己的需要进行操作。

相关内容