更改 wget 的默认权限?

Cor*_*rey 6 permissions wget php

我正在使用 PHP 脚本调用shell_exec并执行wget将一些文件下载到/var/www/dir/. (内部工具,因此安全性不是什么大问题)

该目录具有777权限。但是当我运行时wget,所有文件都是644默认的。理想情况下,我希望665对 group 进行组写访问www-data

如何设置wget下载文件的权限?我不想chmod -R在每次通话后都跑。

slm*_*slm 4

应用于所创建的新文件的权限由给定 shell 中用户的 umask 控制。你可以看到他们正在使用什么命令umask

$ umask
0002
Run Code Online (Sandbox Code Playgroud)

要将这些新文件的权限设置为 665,您需要将 umask 设置为:

$ umask 112
Run Code Online (Sandbox Code Playgroud)

这将启用 rwxrwxrwx 中的所有位,即启用 rw-rw-rx 位。掩码指定要“掩码”哪些位,以便禁用它们。

使用 shell_exec 合并

您可以执行以下操作来启用PHP 中的umask使用shell_exec

"umask 112; ...wget..."
Run Code Online (Sandbox Code Playgroud)

上面的分号表明这些实际上是 2 个命令。将umask首先运行,然后是第二个命令wget ...