我听说 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 具有AssignUserIDExpr
和AssignGroupIDExpr
指令,允许使用 Apache 表达式来动态定义用户和组。与 mod-rewrite 结合使用,它可能会满足您的要求。
答案3
我还没有尝试过在 Apache 中使用AssignUserId
,但它确实适用于不同的虚拟主机,如下所示:Location
Directory
<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>