3

一連のマシンでの認証にNISを使用しようとしています。NIS サーバー上のユーザー アカウントのユーザー ID 番号の 1 つを変更する必要がありました (usernameクライアント上の ID 500 のローカル ユーザー アカウントとの競合を避けるために、ユーザー ID を 500 から 509 に変更しました)。問題は、クライアントで正しく更新されていないことです。

特に、私が行うypcat passwd | grep usernameと、最新の情報が得られます:

username:*hidden*:509:509:User Name:/home/username:/bin/bash

しかし、そうすると、次のようにypmatch username passwd表示されます。

username:*hidden*:500:500:User Name:/home/username:/bin/bash

これは、ユーザーがクライアントの 1 つにログオンすると、間違ったユーザー ID を持つことを意味し、あらゆる種類の問題を引き起こします。"cd /var/yp; make"サーバーとクライアントで実行しまし"service ypbind restart"たが、問題は解決していません。これを引き起こしている原因と、どうにかしてクライアントを強制的に更新する方法を知っている人はいますか? (クライアントとサーバーの両方で Fedora 8 を実行しています)。

4

5 に答える 5

6

ジョンOは私を正しい方向に向けました。

彼は正しい。/etc/ypserv.confで「files:0」を設定すると、ypservがファイルをキャッシュしないようにすることができます。各メイクの後にypservを再起動する必要がある場合、これが問題です。

実際の解決策は、/ var / log/messagesでこのエラーを探すことです。

ypserv[]: refused connect from 127.0.0.1 to procedure ypproc_clear (,;0)

makedbm -cは、YPPROC_CLEARをローカルのypservに送信することを意味します。ログのエラーメッセージは、CLEARメッセージが拒否されていることを意味します。/ var / yp/securenetsに127.0.0.1を追加する必要があります。

于 2012-10-15T17:18:27.053 に答える
2

同じ問題が発生しました-RHEL5.5。(任意の)ソースマップを変更してから、makeを実行します。ypcatは変更された情報を表示しますが、ypmatchは表示しません。新しいマップを実際に使用する必要があるものはすべて失敗します。前回の投稿によると、ypservを再起動するとすべてOKになります。数日間のテスト、straceの実行などの後、ypservには/etc/ypserv.confの「file:」エントリによって制御される「ファイルハンドルキャッシュ」があることがわかりました。デフォルト値は30です。これを0に変更してmakeに続いてすべてが機能します。

これを行う必要はありません---ypserv.confのマンページごとに...

「ypserv1.1とypserv1.2の間で大きな変更が1つありました。バージョン1.2以降、ファイルハンドルはキャッシュされます。つまり、新しいマップを作成する場合は、常に-cオプションを指定してmakedbmを呼び出す必要があります。必ず新しいマップを使用してください。 ypserv1.2以降の/var/ yp / Makefile、またはMakefileのmakedbmに-cフラグを追加します。これを行わないと、ypservは更新されたマップではなく、古いマップを引き続き使用します。」

makefileは「 makedbm -c」を使用しますが、それでもypservは古い(キャッシュされた)マップを使用します。

回答:ファイルハンドルをキャッシュしないでください。たとえば、ypserv.confに「files:0」を設定します。

于 2010-09-10T19:34:21.593 に答える
1

OK、問題が見つかりました。また、サーバーの NIS サービスを再起動して、すべてを更新する必要がありました ( "service ypserv restart")

于 2008-08-28T16:45:06.817 に答える
0

うーん、更新を有効にするために ypserver を再起動する必要はありません。/var/ypのmakeでうまくいくはずです。/var/yp の Makefile をチェックして、正しい条件でトリガーされていることを確認することをお勧めします (つまり、passwd.by* は、現在のテーブルに対して、何らかの方法で /etc/passwd のタイムスタンプをチェックする必要があります。暗黒時代に私が実行した NIS サーバーで passwd.time ルールを実行します)。nis サーバーを強制終了して再起動すると、(特に Linux 以外の) クライアントにファンキーな影響を与える可能性があるため、気まぐれに実行するように注意してください。

于 2008-08-28T21:20:26.560 に答える
0

これは、nscd デーモンが原因です。/etc/nscd.conf で passwd セッションの有効期限の値を 60 に設定します。それが動作します

于 2017-01-03T22:57:30.437 に答える