2014-09-12 2 views
0

Они Symfony документы у вас выполнить две команды, чтобы установить разрешения на папки кэша:не setfacl работает с расширением брекет

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

Что это дает? Почему расширение не будет выполняться самостоятельно?

ответ

0

Два аргумента -m не разделены словом. Они передаются как один аргумент setfacl.

Когда вы повторяете строку через них.

$ c() 
{ 
    printf 'argc: %s\n' "$#"; 
    printf 'argv: %s\n' "[email protected]" 
} 
$ 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 

Это, как говорится, я не уверен, почему, небрежно, это не было бы словом. Я бы подумал, что порядок расширения будет иметь слово, разделяющее результаты, но.

Смежные вопросы