%20como%20sudoer%20no%20funciona.png)
He instalado lighttpd con fast-cgi en raspberry pi. Cuando ejecuto un script de Python que requiere privilegios de root, aparece el siguiente error:
RuntimeError: no hay acceso a /dev/mem. ¡Intenta ejecutar como root! Rastreo (última llamada más reciente): Archivo "/var/www/index.py", línea 134, en GPIO.setup(17, GPIO.OUT);#enable Un RuntimeError: No hay acceso a /dev/mem. ¡Intenta ejecutar como root!
Agregué www-data como sudoer usando visudo y "sudo usermod -a -G sudo www-data", pero no funcionó. ¿Cómo puedo otorgar privilegios de root a lighttpd? La seguridad NO es importante ya que este es un proyecto personal.
Respuesta1
lighttpd no usa sudo. Por lo tanto, agregar www-data al grupo sudoers no ayuda.
Debe cambiar el usuario web en su archivo de configuración de www-data a root:
server.username = "root"
Puedes abandonar el grupo en www-data si es necesario, pero si quieres, también puedes cambiarlo a root.
Sin embargo, lo que podría hacer en su lugar es usar sudo como www-data desde su script de Python. Asegúrese de configurar NOPASSWD.
En cualquier caso, ejecutar un servidor web root
(o con la capacidad de s
acceder a cualquier u
servidor para cualquier comando) es una muy mala práctica, ya que cualquier vulnerabilidad en el servidor web o en cualquiera de las aplicaciones web a las que sirve significa que todo el sistema podría verse totalmente comprometido. .
En este caso, lo más probable es que desee que cualquier operación que deba realizarse /dev/mem
la realice una utilidad dedicada que sea setuid root (o se ejecute a través de sudo
) o mediante un servicio separado que sea invocado por su servidor web.