Wget Linux 命令只为 sudo 用户下载具有读取权限的文件 - 如何向所有用户授予读取权限?

Wget Linux command is downloading files with Read Permissions for only sudo users - how to give Read permissions to all users?

我是 运行 Ubuntu 16.04,我正在 PHP 编程。这是我的问题:

我需要使用 wget linux 命令从网站下载所有文件。所以我使用PHP的shell_exec()函数来执行命令:

$wgetCommand = "wget  --recursive  --page-requisites  --convert-links  $url  2>&1";
$wgetCommandOutput = shell_exec($wgetCommand);

此命令递归地从网站下载所有文件和文件夹到当前工作目录(除非另有说明)。问题是下载这些文件和文件夹后,我没有权限以编程方式读取它们。

但是如果我在使用 wget 命令下载它们之后并且在以编程方式读取它们之前执行类似 sudo chmod 777 -R path/to/downloaded/website/directory 的操作,它们就可以正常读取一切正常。

所以我需要一种使用 wget 命令从网站下载文件夹和文件的方法,它们应该具有 all[= 的读取权限37=] 用户,而不仅仅是 sudo。 我怎样才能做到这一点?

这听起来像是用户 运行 PHP 脚本的 umask 问题。

通常,Ubuntu 的默认 umask 为 0002。这将创建一个包含 (-rw-rw-r--) 的文件。

在控制台中,您可以通过以下方式检查并设置 PHP 用户的 umask:

$umask

在 PHP 脚本中,执行

<?php
    umask()

如果您使用的是 运行 网络服务器,最好在之后通过

更改下载文件的文件权限
<?php
    chmod()

原因是,umask 处理所有文件的文件创建——而不仅仅是您的脚本。