den*_*elg 4 linux ubuntu ruby-on-rails
我试图从Ruby on Rails应用程序执行这样的命令:
sudo服务squid3重启
如果我尝试使用此代码:
output = ´sudo service squid3 retsart´
Run Code Online (Sandbox Code Playgroud)
它不起作用,在控制台中我看到linux要求输入密码.如何使用此命令传递密码?或者其他建议......
您可以将以下行添加到您的sudoers文件(/ etc/sudoers)
rails_user ALL=(root) NOPASSWD:/usr/sbin/service
Run Code Online (Sandbox Code Playgroud)
这基本上让rails_user用户以sudo的形式执行服务命令,系统不会要求您输入密码.
rails_user应该替换为您正在运行rails进程的任何用户.你也应该确保这一点
Defaults requiretty
Run Code Online (Sandbox Code Playgroud)
你的/ etc/sudoers中没有.如果不是,您将无法使用脚本中的sudo.