我想给一个目录755权限,所以我使用:
# chmod -R 755 /my/folder/
它适用于我的文件夹内的所有文件,但问题是我使用在此文件夹中创建新文件的脚本,默认情况下权限为 600。
我如何对这些“未来”文件施加 755 权限?
- 编辑 -
我使用一个脚本来提供有关校园网络流量的信息。我每 10 分钟就会有一个新文件,位于名为“旅程”的文件夹中,位于月份文件夹中,如下所示:
ls -lrt /home/netmet/secure/2017-04/2017-04-27/
total 118548
-rwxr-sr-x 1 root root 85922 avril 27 00:10 zzaccounting.dmp-00-00
-rwxr-sr-x 1 root root 54874 avril 27 00:20 zzaccounting.dmp-00-10
-rwxr-sr-x 1 root root 33534 avril 27 00:30 zzaccounting.dmp-00-20
-rwxr-sr-x 1 root root 48890 avril 27 00:40 zzaccounting.dmp-00-30
-rwxr-sr-x 1 root root 36878 avril 27 00:50 zzaccounting.dmp-00-40
-rwxr-sr-x 1 root root 37034 avril 27 01:00 zzaccounting.dmp-00-50
-rwxr-sr-x 1 root root 38154 avril 27 01:10 zzaccounting.dmp-01-00
-rwxr-sr-x 1 root root 38318 avril 27 01:20 zzaccounting.dmp-01-10
-rwxr-sr-x 1 root root 26978 avril 27 01:30 zzaccounting.dmp-01-20
-rwxr-sr-x 1 root root 31558 avril 27 01:40 zzaccounting.dmp-01-30
-rwxr-sr-x 1 root root 23662 avril 27 01:50 zzaccounting.dmp-01-40
-rwxr-sr-x 1 root root 32298 avril 27 02:00 zzaccounting.dmp-01-50
-rwxr-sr-x 1 root root 30282 avril 27 02:10 zzaccounting.dmp-02-00
-rwxr-sr-x 1 root root 31110 avril 27 02:20 zzaccounting.dmp-02-10
-rwxr-sr-x 1 root root 25718 avril 27 02:30 zzaccounting.dmp-02-20
-rwxr-sr-x 1 root root 26306 avril 27 02:40 zzaccounting.dmp-02-30
-rwxr-sr-x 1 root root 23690 avril 27 02:50 zzaccounting.dmp-02-40
-rwxr-sr-x 1 root root 23002 avril 27 03:00 zzaccounting.dmp-02-50
-rwxr-sr-x 1 root root 21854 avril 27 03:10 zzaccounting.dmp-03-00
在这里,我手动更改了权限,但是当新文件出现时,我有这个:
-rw------- 1 root root 3479106 avril 27 15:50 zzaccounting.dmp-15-40
问题是对于下面的每个文件夹和文件/home/netmet/安全/我想要默认755权限。
我已经这样做了:
chmod -R g+s /home/netmet/secure
setfacl -d -m g::rwx /home/netmet/secure
setfacl -d -m o::rx /home/netmet/secure
答案1
尝试umask
在您的文件夹中运行。如果它返回“0022”以外的任何内容,那么这就是您的问题。在你的情况下,它应该初始输出“0177”。创建目录时的权限系统基本上是计算出来的:
default - umask
0777是目录的默认模式,0666是普通文件的默认模式,但是有不同的umask,如果我理解这些事情正确的话。尝试执行umask a=rx,uu+w
.
编辑:您可以使用 umask 为目录提供执行位,以便能够 cd 进入该目录,但不能进入文件。出于安全考虑,必须手动给这些执行位。只需添加chmod +x <file>
到您的脚本中即可。并且,在文件上设置的执行标志除了可执行文件之外的任何内容都无效。
答案2
我猜你正在运行的脚本产生umask 设置为 0077 的环境中的文件。这可以防止生成程序在“组”和“其他”权限位中设置任何权限位。
请注意,umask 是任何进程继承环境的一部分,通常在登录时从默认“配置文件”设置。任何进程(shell)都可以使用“umask”命令修改自己的和后代子进程(初始)的umask。
当前 umask 中的位将阻止创建在其权限中设置了这些位的文件(因此是“掩码”,屏蔽生成的权限位)