openldap
+を使用してnslcd
LDAPサーバーに接続して、一部のユーザー(パスワードとほとんどの構成を複数のデバイスで共有したいユーザー)を認証します。私はLDAPサーバーを制御しません。
ただし、同期はユーザーが既にデュアルアカウントを持っているために行われるため、ホームフォルダの名前が一致しません(スクリプトにハードコーディングされたパスがある可能性があるため、移動は賢明ではありません)。ディレクトリをハードリンクしようとしているのですが、方法があるかどうか疑問に思います。特定のユーザーのホームフォルダを上書きする、これはよりきれいに見え、一般的なユースケースになるはずです。
私が不快だと思うのは、1nslcd.conf
つのフィルタ(各map = passwd
)だけが許可されているようで、map
ディレクティブが単にhomeを置き換えるということです。みんなすぐにユーザー。
LDAPルックアップ後に個々のエントリを適切に「修正」する方法はありますか?私が検索したのは、ほとんどすべてのユーザーのパターンを置き換えるか、役に立たない答えを提供する答えでした(例:これ以前のフィルタを上書きするだけです。)
私が必要なのは、次のようなものだと思います。
filter passwd (&(objectClass=inetOrgPerson)(<redacted>))
# the last part is wishful thinking, not actual syntax
map passwd homeDirectory "<redacted>" if (uid=<redacted>)
私は最初にLDAPに触れたので、トランザクションが発生する順序とPAMまたはnslcdがこれを行う必要があるかどうかを完全に理解できない可能性があります。これがこの状況を適切に処理する最善の方法ではないことを知っていますが、それでもできることを知りたいです。
答え1
私はあなたが別の上書きを達成できないと思います。地図ガイドラインnslcd.conf(5)。これらのマッピングは passwd マッピング全体に適用されます。ただし、モジュール名の順に/etc/nsswitch.conf
ローカルに設定できます。パスワード異なるホームディレクトリを持つエントリは、ファイルでより高い優先順位を持ちます。/etc/パスワード。
ライン例/etc/nsswitch.conf
:
passwd: files ldap
残りの属性が一貫していることを確認してください。
IIRC 新バージョンSSDCLIツールがありますsss_カバー(8)特定のユーザーに個別の値を設定できます。
しかし、自分に聞いてみてください。本当にこの混乱を維持したいですか?
$HOME
まず、ユーザーにスクリプトでenv varを使用する必要があることを伝えたいと思います。