%20como%20sudoer%20n%C3%A3o%20funciona.png)
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 s
usar qualquer u
servidor 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/mem
seja 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.