Envoy Task Runner:需要sudo访问权限的run命令

时间:2017-07-28 01:00:23

标签: laravel-5 ssh ubuntu-16.04 laravel-envoy

我使用https://laravel.com/docs/5.4/envoy作为部署工具。 在Envoy.blade.php中,我有一个需要sudo访问权限的命令,例如: -

chmod 777 -R storage/
chmod 777 -R bootstrap/cache

这些命令失败,并显示错误,指出操作不允许。我们如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

要以sudo身份运行这些命令,请尝试以下操作:

echo "{{ $password }}" | sudo -S chmod 777 -R storage/
echo "{{ $password }}" | sudo -S chmod 777 -R bootstrap/cache

显然你需要将sudo密码传递给envoy run命令。

envoy run mytask --password=mypass

在Ubuntu服务器16.04上测试& 17.04

答案 1 :(得分:1)

我在服务器上更改了以下配置

sudo visudo

并添加

username ALL=(ALL) NOPASSWD: ALL

现在可以在不输入密码的情况下执行所有命令

您还可以指定单个命令

username ALL=(username) NOPASSWD:/etc/init.d/apache2 reload