对于部署脚本(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/
目前,我被迫删除命令的参数,因为完整命令被拒绝。我尝试\
在 escape 中添加一个:
,对 也一样"
。但是不起作用。
username ALL=(ALL:ALL) NOPASSWD: /usr/bin/setfacl setfacl
多谢
答案1
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