2

[2016 年 3 月 11 日星期五 14:48:20] [错误] [客户端 181.236.205.241] Application.cpp:594 中的 SoftException:目录 /home/myuser/public_html 不属于 myuser

如何在不授予目录所有权 myuser.xml 的情况下修复此错误。它必须是不同的用户。

我可以使用一些 suphp.conf 配置吗?

编辑可以一起更改主文件夹的所有权,但我不确定这是否能解决 suPHP 问题

EDIT2我想做这一切的原因是因为一个大网站被黑了。作为措施之一,不是修复整个庞大的应用程序,而是取消对 apache 服务器的文件夹和文件的写入权限。服务器不再应该有权写入重命名或创建文件。为此,我显然必须夺走文件/文件夹的所有权。

我尝试了一下的背景: https ://stackoverflow.com/questions/35947081/suphp-giving-false-feeling-of-security

4

1 回答 1

2

这是来自 Application.cpp 的一些代码(从http://www.suphp.org/Download.html下载)

    UserInfo directoryOwner = directory.getUser();
    if (directoryOwner != owner && !directoryOwner.isSuperUser()) {
        std::string error = "Directory " + directory.getPath()
            + " is not owned by " + owner.getUsername();
        logger.logWarning(error);
        throw SoftException(error, __FILE__, __LINE__);
    }

看起来如果您让所有者成为超级用户(root 可能是最简单的),错误可能会消失。

冒着说明显而易见的风险,命令将是这样的

$sudo chown root /home/myuser/public_html

编辑以在评论中添加与问题相关的更多代码

try {
    // Change working directory to script path
    API_Helper::getSystemAPI().setCwd(
        File(scriptFilename).getParentDirectory().getPath());
    if (mode == TARGETMODE_PHP) {
        std::string interpreterPath = interpreter.substr(4);
        CommandLine cline;
        cline.putArgument(interpreterPath);
        API_Helper::getSystemAPI().execute(interpreterPath, cline, env);
    } else if (mode == TARGETMODE_SELFEXECUTE) {
        CommandLine cline;
        cline.putArgument(scriptFilename);
        API_Helper::getSystemAPI().execute(scriptFilename, cline, env);
    }
} catch (SystemException& e) {
    throw SoftException("Could not execute script \"" + scriptFilename
                            + "\"", e, __FILE__, __LINE__);
}
于 2016-03-14T16:04:27.980 回答