Не удаётся изменить ФИО у пользователя созданного без параметра '--use-username-as-cn', например: samba-tool user create vova --given-name='Vova' --surname='Vovin' Ситуация усугубляется, если создать имя и фамилию на кириллице: samba-tool user create vova --given-name='Вова' --surname='Вовин' Тогда вообще при сохранении изменений о пользователе получаю ошибку: Failed to modify user ': 0JLQvtCy0LAg0JLQvtCy0LjQvQo=': - No such Base DN: CN=: 0JLQvtCy0LAg0JLQvtCy0LjQvQo=,CN=Users,DC=base,DC=ru
Причина второй половины отчёта (ошибка "No such Base DN" на кириллическом CN) найдена в коде, и она жива в alterator-ldap-users 0.8.6-alt3 (задание https://packages.altlinux.org/tasks/351649/; последнее содержательное изменение — декабрь 2021). backend3/ldap-users:110-113, read_ad_cn(): samba-tool-plus user getpassword "$1" --attributes=cn | sed -n '/^cn:/ { s/^cn:[[:space:]]*//; p; q }' Для CN не из ASCII LDIF отдаёт атрибут в base64 в виде "cn:: <base64>", а sed срезает только "cn:" и оставляет ": 0JLQ…". Воспроизводится без домена: $ printf 'cn:: 0JLQvtCy0LAg0JLQvtCy0LjQvQ==\n' | sed -n -e '/^cn:/ { s/^cn:[[:space:]]*//; p; q }' : 0JLQvtCy0LAg0JLQvtCy0LjQvQ== — ровно то, что попало в сообщение об ошибке репортёра. Рядом, в backend3/ldap-users:382-385, чтение атрибутов формы "::" base64 декодирует — забыто только это место. Первая половина (поля ФИО заблокированы, когда CN ≠ логин) — сознательное ограничение: коммит e565d1e (31.08.2017) "Disallow to modify the user full name fields for CN=FullName", backend3/ldap-users:575-581 обнуляет givenname/sn. Переименование через "samba-tool user rename --surname/--given-name" (есть в Samba ≥ 4.9) не реализовано. Примерная правка read_ad_cn (не собирал): read_ad_cn() { assert_netcmdplus || return 1 $netcmdplus user getpassword "$1" --attributes='cn' | while read -r key val; do case "$key" in cn::) printf '%s\n' "$val" | base64 -d; echo; break ;; cn:) printf '%s\n' "$val"; break ;; esac done }