2008-08-28 3 views
3

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

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

しかし、私がしなければ、ypmatch username passwdは、それは言う:これは時にあることを意味

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

私はypcat passwd | grep usernameを行う場合は特に

は、私は、最新の情報を取得しますユーザーがいずれかのクライアントにログオンすると、間違ったユーザーIDが発生し、さまざまな問題が発生します。私はサーバー上で "cd /var/yp; make"を実行し、クライアント上では "service ypbind restart"を実行しましたが、これは問題を修正していません。誰がこれを引き起こしているのか、どういうふうにクライアントのリフレッシュを強制できるのかを知っていますか? (私はFedora 8をクライアントとサーバーの両方で実行しています)。

答えて

1

OK、私は問題を発見し、私もそれがすべてをリフレッシュするために取得するには、サーバー上のNISサービスを再起動する必要がありました("service ypserv restart"

0

うーん、あなたが持っているypserverを再起動する必要がすることになっていません更新が有効になります。/var/yp内のを作成すると、このトリックを行う必要があります。/var/ypのMakefileをチェックして、正しい条件でトリガされていることを確認することができます(passwd.by *は/ etc/passwdのタイムスタンプを現在のテーブルと比較して調べる必要があります。私が走ったNISサーバー上のpasswd.timeルールを通り、暗黒の時代に戻る)。 nisサーバを強制終了して再起動すると、(特にLinux以外の)クライアントにはファンキーな影響が生じる可能性がありますので、気をつけてください。

2

同じ問題が発生しました - RHEL 5.5。ソースマップを変更してから、makeを実行します。 ypcatは変更された情報を表示しますが、ypmatchは変更されません。実際に使用する必要があるものはすべて、新しいマップが失敗します。最後の投稿ごとに、ypservを再起動するとすべてOKになります。テストの日、straceの実行後、私はypservが/etc/ypserv.confの "file:"エントリによって制御される "ファイルハンドルキャッシュ"を持っていることを発見しました---デフォルト値は30です。これを0に変更し、すべてはmakeの後に働く。

は、バージョン1.2、ファイルハンドルがキャッシュされているので

は「。ypservの1.1と1.2をypservの間に1つの大きな変更がありました...これを行うには--- ypserv.confのマンページごとの必要はありませんこれは、新しいマップを作成する場合は、必ず-cオプションを指定してmakedbmを呼び出さなければならないことを意味します。ypserv 1.2以降の新しい/ var/yp/Makefileを使用しているか、-cフラグをmakedbmに追加してください。 Makefile。これをしないと、ypservは更新されたマップではなく古いマップを使い続けます。 "

メイクファイルDOESは "makedbm -c"を使用しますが、ypservは古い(キャッシュされた)マップを使用します。

回答:ファイルハンドルをキャッシュしないでください。 ypserv.confで "files:0"を設定してください。

+0

私の答えをチェックしてください。あなたの答えは神からのものでしたが、私はなぜmakedbm -cが動作しないのかを考え出しました。 –

5

John Oが正しい方向に私を指摘しました。

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

真の解決策は、このエラーのためには/ var/log/messagesに見ることである。

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

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

+1

+1あなたはスターです - ypservを再起動する必要があったのはなぜですか? –

0

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

関連する問題