ANT正在设置ACL权限



对于我的Symfony应用程序,我使用ANT构建了一个部署脚本。在安装手册中,您可以看到您需要设置app/cache/app/logs目录的权限。因此,我在命令行上使用以下方法:

sudo chmod +a "_www allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs

使用setfacl的方法对我(Mac OS)不起作用,使用umask的第三种方法对我不起作用。

所以我在想如何用ANT做到这一点,并想出了这个:

<chmod perm="+a '_www allow delete,write,append,file_inherit,directory_inherit'">
    <fileset dir="app/cache" />
    <fileset dir="app/logs" />
</chmod>

问题是它什么都没做。我甚至没有收到错误消息,权限也没有更改。对此有什么建议吗?我不能使用像perm="0775"perm="0777"这样的变通方法,因为那样我就不能再使用ANT删除它了(只使用sudo ant,但这不是我想要的)。如何处理这个问题有什么建议吗?

好的,明白了:

<exec executable="chmod" dir="webroot" failonerror="true">
    <arg line="+a '_www allow delete,write,append,file_inherit,directory_inherit' app/cache app/logs" />
</exec>

我的系统(Debian Wheezy)似乎不支持+a属性,但这对我有效(文档中的第二个选项):

<exec executable="/bin/sh" dir="${basedir}/app" failonerror="true">
    <arg value="-c"/>
    <arg value="setfacl -dR -m u:www-data:rwX -m u:`whoami`:rwX cache logs"/>
</exec>

使用sh -c似乎是必要的,因为如果没有它,我就无法使用whoami的backticks

您可能需要将dir="${basedir}/app"更改为自己的应用程序路径。

相关内容

  • 没有找到相关文章

最新更新