ошибка при доступе к устройству uart из скрипта cgi python - PullRequest
0 голосов
/ 10 марта 2012

Я пытаюсь получить доступ к устройству UART из папки / dev для управления роботом.Я пытаюсь сделать это из Интернета, используя скрипт Python CGI.Код работает нормально, когда я выполняю его в командной строке, но когда он выполняется через сервер, я получаю ошибку 500.Я уверен, что это какая-то проблема с разрешениями, но я не знаю, как ее решить.Если кто-то знает, что здесь происходит или как я могу это исправить, помощь будет очень признательна.

Я могу опубликовать свой код на Python, если кому-то захочется его увидеть, но я не думаю, что проблема вкод, а точнее в исполнении кода.

Заранее спасибо,

Михаил,

1 Ответ

0 голосов
/ 10 марта 2012

Может быть, для вас может быть проверка группы файлов устройства:

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 

Для меня это uucp.И добавьте в эту группу пользователя, который запускает ваш скрипт cgi (для моей системы uucp).Но вы должны помнить, что все другие сценарии cgi, запущенные этим пользователем, также будут иметь доступ к UART.

РЕДАКТИРОВАТЬ:

Для веб-сервера apache это выглядит как suEXEC может быть решением для вас.

Функция suEXEC предоставляет пользователям Apache возможность запускать программы CGI и SSI под идентификаторами пользователей, отличными от идентификатора пользователя вызывающего веб-сервера.Обычно, когда выполняется программа CGI или SSI, она запускается как тот же пользователь, который запускает веб-сервер.

Таким образом, вы можете создать нового пользователя для своего сценария cgi, настроить его правильно и затемиспользуйте его со своим сценарием apache.

Вот документация для suEXEC: http://httpd.apache.org/docs/2.0/suexec.html

Я никогда не использовал его, но надеюсь, что это поможет.

...