2013-07-09 119 views
1

對於我的Symfony應用程序,我使用ANT構建了一個部署腳本。在installation manual中,您可以看到您需要將權限設置爲app/cache/app/logs目錄。所以我用命令行下面的辦法:ANT設置ACL權限

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,但那不是我想要的)。 任何建議如何處理?

回答

0

好,我知道:

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

我的系統(Debian的喘息)似乎並不支持+a屬性,但是這很適合我(在docs秒選項):

<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

您可能需要將dir="${basedir}/app"更改爲您自己的應用路徑。