Сервер RADIUS не вызывает пользовательский скрипт

Сервер 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 и выдавал "Accept" или "Reject" в файле. Теперь у меня проблема, что мне нужно использовать скрипт Python. Я создал файл apilogin.py, который выводит "Accept" или "Reject", и вызвал его с помощью:

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"?

Буду признателен за любые подсказки!

Связанный контент