在 Apache MPM ITK 中使用 AssignUserId 作为变量

在 Apache MPM ITK 中使用 AssignUserId 作为变量

我听说 Apache 的 MPM-ITK 模块可以改变 Apache 服务器的行为,使用 UID 或 GID 访问某些文件夹/文件,从默认 UID(www-data)变为配置中的给定 UID。

例如:

<IfModule mpm_itk_module>
AssignUserId user group
</IfModule>

是否可以将用户名和组设为变量?

我想让 Apache/home以所有者身份访问该文件夹。例如,/home/me只能由用户访问me,而/home/you只能被访问you

答案1

您可以使用mod_macro

定义一个 VirtualHost 宏并将其与Use

<Macro Hosting $who>

    <Directory "/home/$who">
        allow from all
        Options +FollowSymLinks
    </Directory>

    <VirtualHost *:80>
        ServerName $who.domain.com
        AssignUserId $who $who
    </VirtualHost>
</Macro>

Use Hosting me
Use Hosting you

答案2

从 Apache 2.4 开始,mpm-itk 具有AssignUserIDExprAssignGroupIDExpr指令,允许使用 Apache 表达式来动态定义用户和组。与 mod-rewrite 结合使用,它可能会满足您的要求。

http://mpm-itk.sesse.net/

答案3

我还没有尝试过在 Apache 中使用AssignUserId,但它确实适用于不同的虚拟主机,如下所示:LocationDirectory

<VirtualHost *:80>
    ServerName my.domain.com
    DocumentRoot /home/me
    AssignUserID me me
</VirtualHost>

<VirtualHost *:80>
    ServerName your.domain.com
    DocumentRoot /home/you
    AssignUserID you you
</VirtualHost>

相关内容