
Freeradius で行き詰まっています。radius exec モジュールでスクリプトを実行する必要があります。デバッグ モード (radius -X) ではすべて正常に動作しますが、バックグラウンドでサービスとして実行すると、exec service stop が機能しないように見えます。何も実行されず、権限の問題またはバグがあります。exec モジュールの設定に関する詳細情報は、こちらにあります。raddb/radiusd.conf
modules {
$INCLUDE ${confdir}/modules/
...
$INCLUDE sites-enabled/
raddb/モジュール/exec
exec exe_module {
wait = yes
program = "/bin/bash /var/testscript/test.sh %{User-Name} %{Framed-IP-Address} %{Acct-Status-Type}"
input_pairs = request
output_pairs = reply
shell_escape = yes
output = file
}
exec exe_module_stop {
wait = yes
program = "/bin/sh /var/testscript/test_delete.sh %{User-Name} %{Framed-IP-Address} %{Acct-Status-Type}"
input_pairs = request
output_pairs = reply
}
exec {
wait = yes
input_pairs = request
shell_escape = yes
output = none
}
raddb/サイト利用可能/デフォルト
accounting {
detail
unix
radutmp
main_pool
sql
sql_log
if (Acct-Status-Type == Start) {
exe_module
}
if (Acct-Status-Type == Stop) {
exe_module_stop
}
attr_filter.accounting_response
}
もう一度、ユーザーとして実行するとデバッグではすべて動作します。サービスとして起動すると何も起こりません。助けてください! 痛み 10/10
答え1
でfreeradius/サイト有効/デフォルト、authorize{}セクション内、
承認 { .. 更新制御 { Auth-Type := /etc/freeradius/radiusAuthentication.py %{Connect-Info} %{Filter-Id}
} }
外部スクリプトをデーモン モードで実行するには、これを試してください。