Назад | Перейти на главную страницу

Сервер RADIUS не вызывает настраиваемый сценарий

У меня есть сервер RADIUS, который в прошлом вызывал собственный скрипт для аутентификации. В / etc / freeradius / sites-enabled / default я изменил следующие строки, чтобы сохранить это:

authorize{
    update control{
        Auth-Type := `/usr/bin/php5 -f /usr/api/apilogin.php %{User-Name} %{User-Password}`
    }
}

Это нормально работало, когда я использовал PHP и повторял «Принять» или «Отклонить» в файле. Теперь у меня проблема в том, что мне нужно использовать скрипт Python. Я создал файл apilogin.py, который печатает «Принять» или «Отклонить», и вызвал его с помощью:

authorize{
    update control{
        Auth-Type := `/usr/bin/python /usr/api/apilogin.py %{User-Name} %{User-Password}`
    }
}

К сожалению, RADIUS всегда отвечает пакетом Access-Reject. Файл apilogin.py обычно добавляет текстовый файл журнала с надписью «Успешный / Неудачный вход для ...». Но когда я хочу проверить логин с помощью radtest, файл текстового журнала не добавляется. Так что я думаю, что сценарий вообще не вызывается.

При вызове сценария через "/ usr / bin / python /usr/api/apilogin.py testuser testpwd" сценарий печатает Accept, добавляет журнал и завершает работу по назначению.

Я не понимаю, почему это работает с PHP, но не с Python. Является ли echo в PHP более специальной командой, поскольку существует разница между «echo» и «print»?

Ценю любые подсказки!