我使用https://laravel.com/docs/5.4/envoy作为部署工具。 在Envoy.blade.php中,我有一个需要sudo访问权限的命令,例如: -
chmod 777 -R storage/
chmod 777 -R bootstrap/cache
这些命令失败,并显示错误,指出操作不允许。我们如何解决这个问题?
答案 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