gpt4 book ai didi

php - Wget Linux 命令正在为仅 su​​do 用户下载具有读取权限的文件 - 如何为所有用户授予读取权限?

转载 作者:行者123 更新时间:2023-12-04 19:11:50 36 4
gpt4 key购买 nike

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

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

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

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

但是如果我做一些类似 sudo chmod 777 -R path/to/downloaded/website/directory 使用 wget 下载后命令并且在以编程方式读取它们之前,它们被读取得很好并且一切正常。

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

最佳答案

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

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

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

$umask

在 PHP 脚本中,执行
<?php
umask()

但是,如果您在运行的网络服务器上,最好通过以下方式更改下载文件的文件权限
<?php
chmod()

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

关于php - Wget Linux 命令正在为仅 su​​do 用户下载具有读取权限的文件 - 如何为所有用户授予读取权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52676615/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com