在部署脚本(https://github.com/EasyCorp/easy-deploy-bundle/blob/master/doc/default-deployer.md#security-options)的情况下,我需要从推动代码的远程机器上运行setfacl
。
为了在sudoer文件中这样做,我为一个特定的用户添加了不使用密码运行命令的权限,但是我想对一个完整的命令这样做:
username ALL=(ALL:ALL) NOPASSWD: /usr/bin/setfacl setfacl -RL -m u:"www-data":rwX var/cache/ var/log/
目前,我不得不删除命令的参数,因为完整的命令被拒绝。我尝试添加一个\
来转义:
,"
也是如此。但不管用。
username ALL=(ALL:ALL) NOPASSWD: /usr/bin/setfacl setfacl
非常感谢
发布于 2020-08-17 04:32:16
setfacl
和/usr/bin/setfacl
是一样的。更喜欢晚一点。不过,不要同时写。
你说得对,要转义:
,前缀是\
。
若要指定多个路径,必须使用逗号作为分隔符重复该命令。你也可以复制整行。由你决定。
最终结果应该如下所示:
username ALL=(ALL:ALL) NOPASSWD: /usr/bin/setfacl -RL -m u\:www-data\:rwX var/cache, /usr/bin/setfacl -R -m u\:www-data\:rwX var/log
https://serverfault.com/questions/1013706
复制