Sudoers 和 setfacl 命令带有参数(:, " 字符)

Sudoers 和 setfacl 命令带有参数(:, " 字符)

对于部署脚本(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

相关内容