我有一个Python脚本,可以在脚本结尾重新启动设备。通过在sudoers文件中授予/sbin/shutdown
的用户权限,我可以在用户帐户上正常运行。但是问题是,当我尝试使用用户的crontab使其自动化时,出现以下错误:
sudo: no tty present and no askpass program specified
任何想法如何解决问题?我以为用户的crontab与用户具有相同的权限,但事实并非如此。
我不能使用root crontab,因为部分python脚本使用Selenium和geckodriver,并且geckodriver无法作为root运行。
这是python脚本的重启部分:
def restart():
command = "/usr/bin/sudo /sbin/shutdown -r now"
import subprocess
process = subprocess.Popen(command.split(), stdout=subprocess.PIPE)
output = process.communicate()[0]
print output
我正在使用Ubuntu 18.10
答案 0 :(得分:1)
我设法解决了这个问题。如果有人遇到类似的问题,请尝试编辑sudoers文件,使您的user ALL=NOPASSWD: /sbin/shutdown
是文件中的最后一行,因此它优先于冲突的行。