我正在使用 https://laravel.com/docs/5.4/envoy 作为部署工具。 在Envoy.blade.php中,我有需要sudo访问权限的命令,例如:-
chmod 777 -R storage/
chmod 777 -R bootstrap/cache
这些命令失败,并显示错误,指出不允许操作。我们如何解决这个问题?
要以 sudo 身份运行这些命令,请尝试以下操作:
echo "{{ $password }}" | sudo -S chmod 777 -R storage/
echo "{{ $password }}" | sudo -S chmod 777 -R bootstrap/cache
显然,您需要将 sudo 密码传递到特使运行命令中。
envoy run mytask --password=mypass
在 Ubuntu 服务器 16.04 和 17.04 上测试
我在服务器上更改了以下配置
sudo visudo
并添加
username ALL=(ALL) NOPASSWD: ALL
现在无需输入密码即可执行所有命令
您还可以指定单个命令
username ALL=(username) NOPASSWD:/etc/init.d/apache2 reload