【发布时间】:2011-04-08 06:30:54
【问题描述】:
在我的 php 主机上,我有一个由 cron 作业运行的脚本,该作业从远程 ftp 服务器打开/覆盖文件。它大部分时间都有效,但我发现当它最初创建文件时,所有者/组是“736/736”,但在某些时候所有者和组更改为“99/99”。问题是我开始遇到权限问题 - 这是代码:
$local = fopen("/mypath/myfile.txt","w");
$result = ftp_fget($conn_id, $local,"remotepath/remotefile.txt", FTP_BINARY);
fclose($local);
我正在使用相同的代码来提取一堆文件。 它不会发生在所有文件上。这个原始文件再也不会被触及,除了一个'read'类型的fopen(“r”)。
我不认为是 ftp_fget,因为我有一个不同的脚本,它也由 cron 运行,它通过 fopen "w" 创建文本文件,其中一些文件也是所有者 "99/99"。
有什么想法吗?这可能是isp方面的配置问题吗?如果是这样,我该怎么告诉他们?当我告诉他们我的所有者/组错误时,他们完全重置了我的整个 ftp 目录 - 权限、所有者等,这很痛苦。
【问题讨论】:
-
哪些用户是 736 和 99(查看 /etc/passwd)? “在某个时候”是什么意思 - 在 fopen() 和 ftp_fget() 之间? Cron 脚本以什么用户身份运行?如果您通过 Apache 运行相同的脚本,这可以解释 2 个用户 - 一个用于 Cron,一个用于 Apache。
-
我的意思是它似乎不会立即发生,或者例如,我有十几个文件目前很好 (736)。我认为如果有问题,它应该将所有文件创建为“99/99”(nobody/apache)。我不确定 cron 用户 - 这是一个托管服务提供商,所以我无法访问所有内容。
标签: php permissions ftp fopen