Cron 使用户成为 public 权限

Cron makes user as public in permission

设置:

我正在 运行使用 crontab -e.

创建一个带有自定义 cron 作业的 wordpress 站点

在我的 php 文件中,我有以下执行功能:

require('/var/www/html/wp-load.php');
define('WP_USE_THEMES', false);

if (!empty($argv[1])) {        
    switch ($argv[1]){
        case 'init':
            chmod_or_mkdir_function();
            break;
    }
}

问题:

如果我 运行 这个功能 (chmod_or_mkdir_function()) 通过正常的 wp 路由(而不是通过 cronjob),它工作得很好。 但是,当我通过 cronjob 运行 它时,我得到 chmod(): Operation not permitted infolder is not writable 错误。

权限已设置为 775,它们仅在我更改为 777 时有效,出于安全原因我真的不想这样做。

我的猜测:

我的猜测是,当我通过 cronjob 调用我的 php 文件时,我不知何故不被视为 admingroup,而是 public.

我将如何解决这个问题?

通常 Wordpress 在网络服务器的用户下运行,例如 apache,而你就是你。您可以将文件所属的组更改为您和 Wordpress 都是其成员的组。由于该文件已经是组可写的 (775),因此将其组更改为你们都是其成员的组应该可以解决问题。您可以使用 chgrp 命令:

chgrp newgroup file

如果你的文件实际上是一个目录,加入 -R 使其递归:

chgrp -R newgroup file