gpt4 book ai didi

linux - setfacl 不适用于大括号扩展

转载 作者:太空宇宙 更新时间:2023-11-04 03:52:31 25 4
gpt4 key购买 nike

Symfony 文档让您发出两个命令来设置缓存文件夹的权限:

setfacl -R -m u:www-data:rwx 应用程序/缓存
setfacl -dR -m u:www-data:rwx 应用程序/缓存

更有效的方法是:

setfacl -R -m u:www-data:rwx -m d:u:www-data:rwx 应用程序/缓存

这对我在 Ubuntu 12.04 上有效。然而,尝试使用大括号扩展似乎并没有:

setfacl -R {"-m ","-m d:"}u:www-data:rwx 应用/缓存

输出:

setfacl:选项 -m:字符 1 附近的参数无效

如果我用大括号回显命令,然后运行输出,它就会起作用:

echo setfacl -R {"-m d:","-m "}g:deploy:rwx 。 |源/dev/stdin

什么给了?为什么扩展不能自行运行?

最佳答案

两个 -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

话虽如此,我不知道为什么,即兴的,它不会被分词。我本以为扩展顺序会对结果进行单词分割,但是。

关于linux - setfacl 不适用于大括号扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25812358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com