non ascii characters in exec output

Oleg Palij o.palij at
Sat Aug 13 20:30:09 CEST 2016

I am using freeradius 3.0.12 on debian jessie.

I have custom 'control' variable mapped to user distinguishedName attribute (it is in UTF-8) in Active Directory:
ldap {
  update {
    control:ms-distinguishedName    := 'distinguishedName'

I want to convert it to custom format and log to postauth table:
authorize {
  update control {
    &ms-publishedAt := "%{exec:/etc/freeradius/ %{control:ms-distinguishedName}}"

In script I got UTF-8 string from freeradius, but I can't understand in what encoding I should return result.
I tried different variants without success.
Simple bash script like:
echo $@
shows following debug:

(2)       update control {
(2)         Executing: /etc/freeradius/ CN\=Сотрудник\ ХХХ,OU\=ОК\ \(Р-1\),OU\=орг,DC\=xx,DC\=xx,DC\=xx,DC\=xx:
(2)         Program returned code (0) and output 'CN\=Сотрудник ХХХ,OU\=ОК \(Р-1\),OU\=орг,DC\=xx,DC\=xx,DC\=xx,DC\=xx'
(2)         EXPAND %{exec:/etc/freeradius/ivc/ %{control:ms-distinguishedName}}
(2)            --> CN\=                     ,OU\=                       \( -1\),OU\=                               ,DC\=xx,DC\=xx,DC\=xx,DC\=xx
(2)         &ms-publishedAt := CN\=                     ,OU\=                       \( -1\),OU\=                               ,DC\=xx,DC\=xx,DC\=xx,DC\=xx
(2)       } # update control = noop

So it get output as UTF-8 string, but next EXPAND vanishes non-ascii symbols to spaces.

Is it possible to get 'exec' module output with non ascii characters?

More information about the Freeradius-Users mailing list