GlibC 2.17を使用してCentOSシステムで作業している間、リモートディレクトリでローカルユーザーグループのルックアップを無効にする設定を見つけるのが困難です。
グループルックアップの設計はすべてのディレクトリを検索することですが、追加するとgroup: file [SUCCESS=return]
この問題は解決されると思います。
しかし、そうではないようです:(
それから役に立つかもしれないと思いましたが、役に立たinitgroups
ないようです。initgroups: files [SUCCESS=return] nis ldap
私のものnsswitch.conf
passwd: compat ldap
shadow: files
group: files nis ldap
hosts: files dns nis
protocols: files
rpc: files
services: files
initgroups: files [SUCCESS=return] nis ldap
internal_getgrouplist
これはglibc関数のコードスニペットです。
80 if (__nss_initgroups_database == NULL)
81 {
82 if (__nss_database_lookup2 ("initgroups", NULL, "",
83 &__nss_initgroups_database) < 0)
84 {
85 if (__nss_group_database == NULL)
86 no_more = __nss_database_lookup2 ("group", NULL, DEFAULT_CONFIG,
87 &__nss_group_database);
88
89 __nss_initgroups_database = __nss_group_database;
90 }
91 else
92 use_initgroups_entry = true;
93 }
...
133 /* For compatibility reason we will continue to look for more
134 entries using the next service even though data has already
135 been found if the nsswitch.conf file contained only a 'groups'
136 line and no 'initgroups' line. If the latter is available
137 we always respect the status. This means that the default
138 for successful lookups is to return. */
139 if ((use_initgroups_entry || status != NSS_STATUS_SUCCESS)
140 && nss_next_action (nip, status) == NSS_ACTION_RETURN)
141 break;
142
143 if (nip->next == NULL)
144 no_more = -1;
145 else
146 nip = nip->next;
147 }
構成を尊重する必要があるようですが、initgroups
そうではありません。 nsswitch.confから完全に削除しようとしましたが、group:
成功しませんでした。id
ローカルユーザーへのコマンドはまだ中断されます。
この問題を解決する方法はありますか?
私の場合、リモートディレクトリポートがブロックされているか、リモートディレクトリの応答が遅い場合は、検索を実行するサービスが完全に中断されました。当社の製品には、エンドユーザーが設定できない基本的なnsswitch.confが付属しています。
グループ検索はこのリモート検索サービスに移動するため、ローカルユーザーもログインできません。