error al acceder a un dispositivo uart desde un script cgi python

Estoy intentando acceder a un dispositivo UART desde mi carpeta / dev para controlar un robot. Estoy tratando de hacer esto desde Internet usando un script cgi python. El código funciona bien cuando lo ejecuto en la línea de comando, pero cuando se ejecuta a través del servidor, aparece un error 500. Estoy bastante seguro de que se trata de algún tipo de problema de permisos, pero no sé cómo resolverlo. Si alguien sabe lo que está pasando aquí o cómo puedo solucionarlo, la ayuda sería muy apreciada.

Puedo publicar mi código Python si a alguien le gustaría verlo, pero no creo que el problema esté en el código, sino en la ejecución del código.

Gracias por adelantado,

Miguel,

preguntado el 10 de marzo de 12 a las 14:03

1 Respuestas

Tal vez la solución para usted pueda estar verificando el grupo de archivos del dispositivo:

adam@sabayon ~ $ ls -lash /dev/ttyS*                                                                                                                                                                                             
0 crw-rw---- 1 root uucp 4, 64 03-10 13:20 /dev/ttyS0                                                                                                                                                                            
0 crw-rw---- 1 root uucp 4, 65 03-10 13:20 /dev/ttyS1                                                                                                                                                                            
0 crw-rw---- 1 root uucp 4, 66 03-10 13:20 /dev/ttyS2                                                                                                                                                                            
0 crw-rw---- 1 root uucp 4, 67 03-10 13:20 /dev/ttyS3 

Para mí es uucp. Y agregue el usuario que inicia su script cgi a este grupo (para mi sistema uucp). Pero debe recordar que todos los demás scripts CGI iniciados por este usuario también podrán acceder a UART.

EDIT:

Para el servidor web apache parece suEXEC puede ser la solución para ti.

La función suEXEC proporciona a los usuarios de Apache la capacidad de ejecutar programas CGI y SSI con identificaciones de usuario diferentes de la identificación de usuario del servidor web que realiza la llamada. Normalmente, cuando se ejecuta un programa CGI o SSI, se ejecuta como el mismo usuario que ejecuta el servidor web.

Entonces, parece que puede crear un nuevo usuario para su script cgi, configurarlo correctamente y luego usarlo con su script de apache.

Aquí está la documentación para suEXEC: http://httpd.apache.org/docs/2.0/suexec.html

Nunca lo usé, pero espero que ayude.

respondido 10 mar '12, 15:03

Estoy usando un servidor Apache. ¿Es este el programa para el que debo cambiar los permisos? - KFC

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.