SSSD работает, но UID/GID неверны?

В коде две ошибки:

  1. При использовании [... ]для тестов разделите тесты на несколько [... ]логическими операторами в -между:

    while [ expression ] && [ expression ]; do
    

    Вы можете использовать свой способ построения теста, если используете bashи его[[... ]]:

    while [[ expression && expression ]]; do
    

    ... но, вероятно, он все равно будет более читабельным, если он будет разделен как

    while [[ expression ]] && [[ expression ]]; do
    

    по крайней мере, для более длинных или большего количества выражений. Только для арифметического теста -вы можете использовать ((... ))в bashи других оболочках, которые его поддерживают, например. (( arithmetic expression )) && (( arithmetic expression )). В ((... ))вы также должны использовать <, >и т. д. вместо -lt, -gtи т. д.

  2. Предполагая, что вы используете массивы bash, индекс в массиве оценивается в арифметическом контексте. Это означает, что ${a[$d]}можно записать как ${a[d]}. Что еще более важно, ${a[$(d-1)]}, вероятно, является ошибкой, поскольку он попытается запустить команду с именем d-1. Вероятно, это должно быть ${a[d - 1]}.

0
15.01.2020, 01:42
1 ответ

Судя по статье , найденной здесь, кажется, проблема устранена, файл sssd.conf теперь выглядит так...

[sssd]
domains = ucera.local
config_file_version = 2
services = nss, pam

[domain/ucera.local]
ad_domain = co.local
krb5_realm = CO.LOCAL
realmd_tags = manages-system joined-with-samba
cache_credentials = False
id_provider = ad
krb5_store_password_if_offline = False
default_shell = /bin/bash
ldap_id_mapping = False
ldap_user_uid_number = uidNumber
ldap_user_gid_number = gidNumber
ldap_group_gid_number = gidNumber
use_fully_qualified_names = False
fallback_homedir = /home/%u
access_provider = ad
default_domain_suffix = co.local

Изменения:

  1. ldap_id_mapping = False— это, я думаю, основное исправление, которое позволяет использовать идентификаторы AD posix ID, а не вычислять их на основе атрибута пользователей AD objectSID
  2. Я также добавил настройки ldap_..._...id_number =...и установил их в соответствующие поля атрибутов в AD для пользователей. После выполнения части (1 )UID на машине не изменились. По сравнению с другими sssd -, использующими серверы, у которых не было этой проблемы, единственным отличием в sssd.conf было изменение (1 ). Я думаю, что на других машинах уже было ldap_id_mapping = False, поэтому, когда пользователи AD впервые вошли в систему на этих машинах, они автоматически получили свои идентификаторы AD posix UID. На этом запутанном сервере идентификаторы UID уже были установлены неправильно, поэтому необходимо явно принудительно использовать атрибуты AD uidNumberи gidNumber.

Затем перезапустите службу sssd.


Не очень хорошо разбираюсь в AD и SSSD, поэтому, если я что-то неправильно истолковал, оставьте комментарий, чтобы сообщить мне об этом.

0
28.01.2020, 02:56

Теги

Похожие вопросы