No conozco bien perl, pero en PHP podes hacer algo asi:
passthru("echo <parametros para el script> | sudo /usr/bin/php -f <script>");
Donde <script> es un .php que se ejecuta con privilegios y hace las tareas.
Y en /etc/sudoers haces algo asi:
www-data ALL=(ALL) NOPASSWD: /usr/bin/php -f <script>
Asi apache nada mas puede ejecutar con privilegio el script especifico
que vos definis.
Calculo que para perl seria algo muy muy similar.
-- Eduardo
2009/1/20 Gonzalo Aguirre <[email protected]>:
> hola lista!
> estoy haciendo un script en perl para gestionar un dispositivo de
> forma remota (por web). La idea es poder variar algunos parámetros,
> deshabilitarlo, habilitarlo, etc.
>
> El dispositivo se habilita y deshabilita con `ifconfig' (es un
> puerto CAN) y para poder variar los parámetros accedo a través de
> SYSFS. Como el script está como un cgi-bin me los ejecuta con el
> usuario www-data y no cuento con los provilegios suficientes para
> poder escribir en un archivo del SYSFS o habilitar/deshabilitar el
> dispositivo.
>
> Seguramente lo más bestía sería cambiar el usuario de apache, pero
> comprometería el sistema. También como alternativa hacer que se
> ejecute un script en `expect' que haga un `su' pero tampoco me
> convence mucho. Alguno/a conoce alguna manera más sutil hacer ejecutar
> un cgi-bin como root?
>
> Gracias de antemano! Saludos!
>
> --
> Gonzalo Aguirre
>