为文件夹中新创建的子目录设置默认权限

为文件夹中新创建的子目录设置默认权限

我只想为文件夹中新创建的子目录设置默认权限,而不是为某些文件夹中新创建的文件设置默认权限。

怎么做?

答案1

也许您搜索的是一个命令umask。它允许您在创建文件或目录时设置默认权限。更多信息您可以参考手册页

可以umask是数字或符号形式:

umask a=rx,ug+w
umask 002

但是您不能仅针对目录而不针对文件拆分功能。

PS 您可以使用mkdirwith-m来设置特定掩码:

[root@rhel9-1 tmp]# mkdir 1
[root@rhel9-1 tmp]# mkdir -m 700 2
[root@rhel9-1 tmp]# ls -ld 1 2
drwxr-xr-x 2 root root 6 Apr 22 12:10 1
drwx------ 2 root root 6 Apr 22 12:10 2

答案2

新创建的文件或目录的权限由 a) 创建进程请求的权限设置,b) 由创建进程的文件创建掩码 (umask) 修改(从父进程继承,因此是每个用户的) ),或者目录的默认 ACL(如果有)。

对于目录和文件,不能以不同的方式指定后者,但是应用程序在创建文件或目录时所要求的内容通常会根据所创建的文件或目录而有所不同。也就是说,常规文件是使用权限创建的0666,目录是使用权限创建的0777。除了那些应该可执行的文件之外,这些文件也将使用权限创建0777。 umask 或默认 ACL 将减少这些权限;两者都不能添加权限,因此例如ssh-keygen可以创建私钥文件0600并确保没有其他用户有权访问该文件。

除了可执行性之外,我不太确定文件具有与目录不同的权限的意义是什么。通常,需要访问在同一逻辑位置内创建的所有文件和子目录的用户是相同的。

相关内容