将 www-data (lighttpd) 设置为 sudoer 不起作用

将 www-data (lighttpd) 设置为 sudoer 不起作用

我已经在树莓派上安装了lighttpd和fast-cgi。当运行需要 root 权限的 python 脚本时,出现以下错误:

运行时错误:无法访问 /dev/mem。尝试以 root 身份运行!回溯(最近一次调用最后一次):文件“/var/www/index.py”,第 134 行,在 GPIO.setup(17, GPIO.OUT);#enable A RuntimeError:无法访问 /dev/mem。尝试以 root 身份运行!

我已使用 visudo 和“sudo usermod -a -G sudo www-data”将 www-data 添加为 sudoer,但它不起作用。我怎样才能给lighttpd root权限?安全性并不重要,因为这是一个个人项目。

答案1

lighttpd 不使用 sudo。因此,将 www-data 添加到 sudoers 组并没有帮助。

您需要将配置文件中的 Web 用户从 www-data 更改为 root:

server.username = "root"

如果需要,您可以将组保留在 www-data,但如果您愿意,您也可以将其更改为 root。

不过,您可以使用 sudo 作为 Python 脚本中的 www-data。确保设置为 NOPASSWD。

无论如何,运行 Web 服务器root(或能够s向任何服务器执行u任何命令)都是非常糟糕的做法,因为 Web 服务器或其服务的任何 Web 应用程序中的任何漏洞都意味着整个系统可能会完全受到损害。

在这里,您很可能希望需要执行的任何操作/dev/mem都由 setuid root(或通过 运行sudo)的专用实用程序或由您的 Web 服务器调用的单独服务来执行。

相关内容