【问题标题】:Executing script requiring root access via CGI通过 CGI 执行需要 root 访问权限的脚本
【发布时间】:2016-12-04 11:26:02
【问题描述】:

我有一个脚本 script.py,我可以通过导航到 mydomain.com/runscript 来通过 CGI 执行它。

然而,该脚本对 echo "mysqldump ..." | 进行子进程调用。 sudo -isudo python 使用 os.system(COMMAND)。当我尝试通过网络链接运行脚本时,我在 /var/log/apache2/error.log 中收到此错误:

[2016 年 7 月 29 日星期五 16:52:42.515223] [cgi:error] [pid 3013] [client ##.###.##.##:#####] AH01215: sudo: no tty存在且未指定 askpass 程序

这是因为 CGI 以用户 www-data 运行,没有 sudo 权限。

我已尝试将此添加到我的 sudoers 文件中:

%www-data    ALL = (root) NOPASSWD: /var/www/html/scripts/script.py

但是错误仍然存​​在。为什么子进程调用没有收到 root 访问权限,我怎样才能将其提供给他们并且只提供给他们?谢谢!

【问题讨论】:

    标签: python apache cgi root sudoers


    【解决方案1】:

    您可以通过管道将密码传递给 sudo 命令:

    echo <your password> | sudo -S <your command>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-18
      • 2014-12-24
      • 2018-08-11
      • 2014-09-16
      相关资源
      最近更新 更多