LDAPを使用してユーザーを認証し、そのホームディレクトリをサーバーのNFSディレクトリに保持するようにサーバーを構成しようとしています。
例:私のサーバーのディレクトリを共有します。
/nfsexport 10.0.2.0/24(rw,async,no_subtree_check,fsid=0,crossmnt)\
*.em(rw,async,no_subtree_check,fsid=0,crossmnt)
/nfsexport/homes 10.0.2.0/24(rw,async,no_subtree_check)\
*.em(rw,async,no_subtree_check)
以下を編集してクライアントにインストールしました/etc/fstab
。
server1:/homes /home/users nfs4 bg 0 0
ファイルの末尾に次の行を追加/etc/pam.d/login
します/etc/pam.d/lightdm
。
session required pam_mkhomedir.so skel=/etc/skel umask=0022
ログイン時にホームディレクトリを作成する必要があります/home/users/ldapuser
。ところでログインができず、サーバーにホームディレクトリが生成されませんね。私は以下を試しました:
- NFSではなくローカルにホームディレクトリを作成します。動作し、所有者とグループが正しいです。しかし、集中化されていません。
/home/users
サーバーの権限を777に変更します。 NFSでも動作しますが、これは最善の解決策ではありません...後で権限を755に変更しようとしましたが、所有者とグループが「nobody」と「nogroup」に設定されているため、ユーザーは自分のホームディレクトリに書き込めません。
/home/users
それでは、最初のログイン時にユーザーとグループの所有権に基づいてopenLDAPに自動的にホームディレクトリを作成させるにはどうすればよいですか?または、少なくとも権限が777に変更された最初のログイン後に変更しますか?
それとも:集中型のホームディレクトリとユーザー認証を達成する他の方法はありますか?
ベストアンサー1
これは NFS プロトコルのユーザー識別の問題です。どのように機能するかは、使用しているNFSのバージョンによって異なります。
NFSv3では、ユーザー名とパスワードはプロトコルの一部ではなく、代わりにUIDとGID番号が含まれています。 UID = 1000のユーザーがシステムAから呼び出され、bart
同じuidを持つユーザーがシステムBから呼び出されるhomer
と、bart
システムBはユーザーが作成したファイルを読み取ることができますhomer
。これがNFSを使用する場合、通常UID同期が良い理由の1つです。
しかし、NFSv4はこれらすべてを変えます。 NFSv4では、ユーザーとグループは単純なUID番号以上です。名前有線で送信されました。 NFSv4プロトコルは、適切に機能するためにいくつかの点を大幅に変更しました。
- プロトコルを使用するには、すべてのユーザー名がすべてのコンピューターに存在する必要があります。つまり、クライアントにユーザーがいる場合、
bart
サーバーは〜しなければならないユーザーもいますbart
(UIDは異なる場合があります)。これらのユーザーが見つからない場合は、そのnobody
ユーザーnogroup
とグループに戻ります。 - このプロトコルには「ドメイン」という概念があります。デフォルトでは、ドメイン名(つまり、実行しているコンピュータのFQDNからホスト名を引いた値)に基づいていますが、任意の文字列にすることができます。ドメインは、異なるユーザーグループにコンピュータを区別するために使用されます。クライアントのドメインがサーバーのドメインと一致しない場合、システムは
bart
システム a のユーザーがまったく同じであると仮定します。その他bart
bマシンから。
詳細については、rpc.idmapd(8)
IDマッピングプロトコルのLinux実装を説明するマニュアルページを参照してください。
最近まで、ほとんどのLinuxディストリビューションは、明示的に要求されない限り、NFSv3にデフォルト設定されていました。しかし、長年にわたってデフォルトはNFSv4に変更されました。
作業をスムーズに進めるには、次の2つのオプションがあります。
- NFSv3に戻ります。
nfsvers=3
インストールオプションでこれを行うことができます。 rpc.idmapd
期待される効果が表示されない理由を見つけて、効果が表示されるまで変更してください。
当然、抵抗が最も少ない経路は1である。しかし、NFSv3の機能セットと比較すると、NFSv4には放棄すると失われる便利な機能がたくさんあります。