Definir www-data (lighttpd) como sudoer não funciona

Definir www-data (lighttpd) como sudoer não funciona

Instalei o lighttpd com fast-cgi no raspberry pi. Ao executar um script python que requer privilégios de root, recebo o seguinte erro:

RuntimeError: Sem acesso a /dev/mem. Tente executar como root! Traceback (última chamada mais recente): Arquivo "/var/www/index.py", linha 134, em GPIO.setup(17, GPIO.OUT);#enable A RuntimeError: Sem acesso a /dev/mem. Tente executar como root!

Adicionei www-data como sudoer usando visudo e "sudo usermod -a -G sudo www-data", mas não funcionou. Como posso conceder privilégios de root ao lighttpd? A segurança NÃO é importante, pois este é um projeto pessoal.

Responder1

lighttpd não usa sudo. Portanto, adicionar www-data ao grupo sudoers não ajuda.

Você precisa alterar o usuário da Web em seu arquivo de configuração de www-data para root:

server.username = "root"

Você pode sair do grupo em www-data se necessário, mas se quiser, você também pode alterá-lo para root.

O que você poderia fazer, em vez disso, é usar sudo como www-data do seu script Python. Certifique-se de definir NOPASSWD.

Em qualquer caso, executar um servidor web como root(ou com a capacidade de susar qualquer uservidor para qualquer comando) é uma prática muito ruim, pois qualquer vulnerabilidade no servidor web ou em qualquer aplicativo web que ele serve significa que todo o sistema pode ser totalmente comprometido .

Aqui, provavelmente você deseja que qualquer operação que precise ser realizada /dev/memseja executada por um utilitário dedicado que seja setuid root (ou seja executado via sudo) ou por um serviço separado que seja invocado pelo seu servidor web.

informação relacionada