Особенности разработки#

Важно

Документация дорабатывается по мере развития продуктов Группы Астра и по пожеланиям пользователей.

Ваши пожелания и замечания направляйте на почту docs@astralinux.ru

Не работает аутентификация Kerberos для доменной службы apache2: ошибка «AM00003: getpwnam(…) failed: user not found»

При работе доменной службы Apache2 в режиме AstraMode on аутентификация Kerberos для доменных пользователей не выполняется, в журнале /var/log/apache2/error.log фиксируется ошибка вида:

AM00003: getpwnam(...) failed: user not found

Рекомендации

Для корректного выполнения аутентификации Kerberos для доменных пользователей в файле /etc/apache2/apache2.conf указать (раскомментировать) параметр IncludeRealm со значением on:

IncludeRealm on

Не работает аутентификация Kerberos для доменной службы apache2: недоступен модуль mod_auth_kerb

Не работает аутентификация Kerberos для доменной службы apache2. Недоступен модуль аутентификации Kerberos mod_auth_kerb (пакет libapache2-mod-auth-kerb).

В Astra Linux Special Edition x.8 пакет libapache2-mod-auth-kerb, предоставляющий модуль libapache2-mod-auth-kerb, исключен как устаревший. Его заменой является пакет libapache2-mod-auth-gssapi (модуль mod_auth_gssapi).

Для устранения проблемы:

Установить пакет libapache2-mod-auth-gssapi:

sudo apt install libapache2-mod-auth-gssapi

В конфигурационных файлах службы apache2 использовать тип аутентификации GSSAPI. Например:

/etc/apache2/conf-available/kerberos-auth.conf
        <Location />
            AuthType GSSAPI
            AuthName "Kerberos Authentication"
            GssapiBasicAuth On
            GssapiLocalName On
            GssapiCredStore keytab:$keytab
            require valid-user
        </Location>

Подробнее см. статью: Настройка аутентификации Kerberos для службы apache2 в Astra Linux.

Не удается подключиться к БД mariadb с использованием Kerberos

Доменным пользователям не удается подключиться к БД mariadb.

Рекомендации

Использовать для подключения полное доменное имя пользователя, включающее имя области (realm) Kerberos. Имя области должно быть указано заглавными буквами. Например: user@IPA.RBT.

В службе apache2 не работает аутентификация Kerberos

В службе apache2 не работает аутентификация Kerberos (GSSAPI).

Рекомендации

Установить в конфигурации службы apache2 параметр:

IncludeRealm on

В БД postgresql не работает аутентификация Kerberos

В базе данных postgresql не работает аутентификация Kerberos (GSSAPI).

Рекомендации

Настроить отображение имен доменных пользователей в имена базы данных.

Пример:

mymap /^(.*)@mydomain\.com$ \1
mymap /^(.*)@otherdomain\.com$ guest

Подробнее см. документацию по базе данных.

Недостаточно прав для изменения схемы public

При работе с базами данных после предоставления пользователю полных прав доступа к базе данных:

GRANT ALL ON DATABASE <имя_базы_данных> TO <имя_пользователя>;

возникают ошибки нехватки прав вида «permission denied for schema public».

Рекомендации

В Astra Linux Special Edition x.8 используется защищенная ЗСУБД соответствующая СУБД postgresql версии 15. В отличие от версий, использовавшихся в более ранних очередных обновлениях, в этой версии права изменения публичных схем баз данных (public и др.) по умолчанию отсутствуют у всех пользователей, кроме владельца базы данных. Рекомендованным способом предотвращения проблемы недостатка прав является создание для каждого пользователя индивидуальной схемы, в которых будут локализоваться вносимые пользователем изменения:

CREATE SCHEMA <имя_схемы> AUTHORIZATION <имя_пользователя>;

Для совместимости с ранее разработанными приложениями возможны следующие решения:

сделать пользователя владельцем базы данных, тем самым предоставив ему все возможные права:

ALTER DATABASE <имя_базы_данных> OWNER TO <имя_пользователя>;

принудительно предоставить необходимые права пользователю:

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA <имя_схемы> TO <имя_пользователя>;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA <имя_схемы> TO <имя_пользователя>;

Имя схемы по умолчанию - public, однако могут использоваться и другие имена схем. Подробнее см. документацию на СУБД postgresql.

Не поддерживаются длинные имена идентификаторов

При использовании длинных идентификаторов (имен) возникают ошибки. Максимальная длина идентификатора составляет:

  • при использовании символов ASCII (в частности, латиницы) — 63 символа;

  • при использовании кириллицы (кодировка utf8) — 31 символ;

  • при использовании других символов максимальная длина идентификатора уменьшается и зависит от использованного набора символов.

Рекомендации

Максимальная допустимая длина идентификатора задается при сборке и не может быть изменена.

В Astra Linux Special Edition x.7 использовалась максимальная длина идентификатора 255 байт (сборка ЗСУБД с параметром NAMEDATALEN = 256).

В Astra Linux Special Edition x.8 в целях оптимизации производительности, улучшения тестирования и повышения устойчивости работы ЗСУБД максимальная длина идентификатора уменьшена до 63 байт (NAMEDATALEN=64).

Прикладное ПО должно быть адаптировано к этим изменениям.