【发布时间】:2016-08-29 02:13:43
【问题描述】:
我想允许 php 在其他用户的权限下执行 rsync,比如说 wwwsync 用户。
如何通过 sudo 配置实现这一点?这是我所做的:
在 sudo 配置中(sudo visudo)
www-data www-data-sync=(wwwsync) NOPASSWD: /usr/bin/rsync
以 wwwsync 用户身份登录时,此行的工作方式与预期一样
rsync -avz -e "ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress ~/some/path/ [remoteuser]@[remotehost]:~/some/path/
但是使用 shell_exec() 从 php 执行的这一行不起作用
sudo -u wwwsync rsync -avz -e "ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress ~/some/path/ [remoteuser]@[remotehost]:~/some/path/
在 wwwsync 用户下执行 rsync 的方法是否正确? sudo 配置是否设置正确?
【问题讨论】:
标签: php linux rsync sudo sudoers