Symfony文档要求您发出两个命令来设置对缓存文件夹的权限:
setfacl -R -m u:www-data:rwx app/cache setfacl -dR -m u:www-data:rwx app/cache
一种更有效的方法是:
setfacl -R -m u:www-data:rwx -m d:u:www-data:rwx app/cache
这对我在Ubuntu 12.04上是有效的。然而,尝试使用括号扩展似乎不是:
setfacl -R {"-m ","-m d:"}u:www-data:rwx app/cache
输出:
setfacl: Option -m: Invalid argument near character 1
如果我用大括号回显命令,然后运行输出,它就能正常工作:
echo setfacl -R {"-m d:","-m "}g:deploy:rwx . | source /dev/stdin
怎么回事?为什么扩展不能自己运行呢?
发布于 2014-09-12 16:34:04
这两个-m
参数没有被拆分。它们被作为一个参数传递给setfacl
。
当你回显字符串时,它们是。
$ c ()
{
printf 'argc: %s\n' "$#";
printf 'argv: %s\n' "$@"
}
$ c setfacl -R {"-m ","-m d:"}u:www-data:rwx app/cache
argc: 5
argv: setfacl
argv: -R
argv: -m u:www-data:rwx
argv: -m d:u:www-data:rwx
argv: app/cache
$ echo setfacl -R {"-m ","-m d:"}u:www-data:rwx app/cache | c $(< /dev/stdin)
argc: 7
argv: setfacl
argv: -R
argv: -m
argv: u:www-data:rwx
argv: -m
argv: d:u:www-data:rwx
argv: app/cache
话虽如此,我不确定为什么,现在不会是单词拆分。我本以为展开顺序会将结果分开,但是。
https://stackoverflow.com/questions/25812358
复制相似问题