web-dev-qa-db-ja.com

OpenLdapはクライアントとサーバー間でホームディレクトリを同期します

私は最近、karmicおよびlucidデスクトップクライアントでUbuntu ldap client authenticationをセットアップし、LDAPサーバーは10.04 LTSサーバーで実行されています this は、クライアントのセットアップでたどったリンクであり、おそらく11.04でも機能します。 LDAPユーザーアカウントを使用してクライアントにログインできました。また、クライアントでは、pam.d/session required pam_mkhomedir.so umask=0022 skel=/etc/skelのエントリcommon-sessionを使用して、ユーザーが初めてログインしたときにクライアントコンピュータにホームディレクトリを自動的に作成しました。私は、ホームディレクトリをクライアントからサーバーに、またはその逆に同期して、ユーザーがログインしたクライアントのドキュメントをユーザーが使用できるようにする方法があると思います。

以下のタスクを実行する必要があります。

  1. クライアントとサーバー間でホームディレクトリを同期します(Windowsのローミングプロファイルのように)。

私はautofsを試しましたが、問題は、クライアントコンピューターのローカルユーザーアカウント(admin、guest)にあり、エントリ* server:/ldaphome/&を挿入すると、同期または上書き(マウントされたくない)します。 /etc/auto.homeを使用して、LDAPユーザーのホームディレクトリを同期化します(/home /etc/autofs.homeのエントリ/etc/autofs.masterを含めます)。

誰かがこれを行う、または他の方法で行うトリックがあるため、LDAPとローカルユーザーの両方の資格情報を使用してクライアントにログインし、LDAPユーザーのホームディレクトリを同期させることができます。私は多くのマスターがここにいることを知っています、彼らのスタイルでこれをどのように行うのですか?.

更新:1

クライアントでautofs以外の異なるディレクトリ(ldaphome)のhome自動マウントを試み、同じクライアントでldaphome/$USERhome/$USERをリ​​ンクして、サーバーのldaphomeがクライアントにldaphomeをマウントするようにしました、ユーザーのホームディレクトリhome/$ USERはシンボリックリンクのために同期されます。そのため、/etc/profile.d/custom.shファイルを編集し、ln -sf "/ldaphome/$USER" "/home/$USER"を配置して、ログイン時にこれらのディレクトリをリンクしました。/home/$ USER/$ USERの下にリンク名を作成しているため、シンボリックリンクがディレクトリに対して期待どおりに機能しないことに気付きました。

DROPPED THIS SYMLINK METHOD!

更新:2

クライアント上のローカルユーザーのホームディレクトリを変更し、home内のautofsディレクトリを自動マウントする以外に方法はありませんが、セキュリティを確保しようとしているクライアント上の同じローカル管理ユーザーも使用できますサーバー(admin、guest)のユーザーアカウントとして...

更新:3

既存のローカルユーザーアカウントを別のホームディレクトリに移動(usermod -m -d /local-home/admin admin)しただけで、クライアントでhomeの自動マウントをセットアップしました。もう一度問題に遭遇しました。クライアントがLDAPによって認証されると、サーバーからホームドキュメントを取得せず、クライアントに手動でマウントした場合にのみ機能します(mount ldapserver:/ldaphome/test /home/test)。クライアントはkarmic...です.

クライアント構成

vim /etc/nsswitch.conf:

# pre_auth-client-config # passwd:         compat
passwd: files ldap
# pre_auth-client-config # group:          compat
group: files ldap
# pre_auth-client-config # shadow:         compat
shadow: files ldap

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

# pre_auth-client-config # netgroup:       nis
netgroup: nis

vim /etc/ldap.conf:

base dc=mydomain,dc=net
uri ldap://192.168.1.2
ldap_version 3
rootbinddn cn=admin,dc=mydomain,dc=net
bind_policy soft
pam_password md5
nss_initgroups_ignoreusers avahi,avahi-autoipd,backup,bin,colord,daemon,games,gdm,gnats,hplip,irc,kernoops,libuuid,lightdm,list,lp,mail,man,messagebus,news,proxy,Pulse,root,rtkit,saned,speech-dispatcher,sshd,statd,sync,sys,syslog,usbmux,uucp,vboxadd,www-data

vim /etc/ldap/ldap.conf:

BASE    dc=mydomain,dc=net
URI     ldap://192.168.1.2

SIZELIMIT       0
TIMELIMIT       0
DEREF           never

# TLS certificates (needed for GnuTLS)
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt

vim /etc/auto.master:

+auto.master

/home   /etc/auto.home

vim /etc/auto.home:

*               192.168.1.2:/ldaphome/&

サーバー(192.168.1.2)でldaphomeを共有しました。ここでの問題は、クライアント上の個別のパーティションとして/homeがあり、それをfstabでマウント解除して、autofs設定で確認できるldaphomeでマウントしたことです。 LDAPでログインしようとすると、認証が成功した後、再びログイン画面が表示されます。 autofsサービスを停止すると、pam.d/common-sessionでsession required pam_mkhomedir.so umask=0022を使用したため、通常はログインしてホームディレクトリが作成されます。

新しいLDAPアカウントで初めてログインしようとすると、次のエラーが発生します。

    Creating directory '/home/user3'.
    Unable to create and initialize directory '/home/user3'.
    No directory, logging in with HOME=/


vim /var/log/auth.log:
lucid mkhomedir_helper: PAM unable to create directory /home/user3: No such file or directory
7
user53864

サーバー上でnfsを介して共有したldaphomeの下にhome directoryのldapユーザーを作成またはコピーする必要があり、これが原因であるとはまったく思っていませんでした。ユーザーがクライアントに初めてログインしたときに、ユーザーのホームディレクトリがldaphomeの下に自動的に作成されると思いました。私は次のことを行いました。すべてのユーザーは簡単に認証され、エラーメッセージが表示されることなくホームディレクトリを自動化しました。エントリsession required pam_mkhomedir.so umask=0022はまったく必要ないと思います。

サーバーでは、

cp -a /home/* /ldaphome/

または、/ homeの下のldapユーザーがホームディレクトリを使用できない場合、ディレクトリの作成は機能しました。

mkdir /ldaphome/ldapuser
chown -R ldapuser:ldapuser /ldaphome/ldapuser

クライアントでは、

  • ローカルユーザーアカウントを任意のディレクトリに移動して、/local-homeと言います。

    mkdir /local-home

usermod -m -d /local-home/username username

  • ホームディレクトリが別のパーティションである場合は、/homeファイルのマウントされた/etc/fstabディレクトリのコメントを外して、autofsが/homeをマウントできるようにします。

クライアントでLDAP資格情報を使用してログを記録してみてください...動作しました!

私はリアルタイムで使用するLinuxベースのこのセットアップの初心者なので、一度に多くのユーザーがログインしてマウントすると、サーバーでNFSを使用した場合のパフォーマンスがどうなるか非常に心配です。サーバーへの負荷が少ないか、パフォーマンスが最高であることが判明した場合、これを行う他の方法はわかりません。何かあれば、誰からも聞きたいです。

1
user53864

ローカルアカウントと集中アカウントの混合を処理する一般的な方法は2つあります(LDAPまたはNISなど)。 3回目の更新では、そのうちの1つをカバーしています。

  1. ローカルアカウントは、ホームに_/home_以外のベースディレクトリを使用します
  2. LDAP/centralは、ホームに_/home_以外のベースディレクトリを使用します

私は通常、オプション#1を使用して_/local_を作成し、次に_/local/admin_、_/local/sysadmin_、_/local/joe_などのホームディレクトリをローカルアカウントに設定します。次に、autofsを使用して「Update 3」で説明したのと同じ方法で、_/home_の下の集中型/リモートホームディレクトリのマウントを制御します。

サーバーがNFSを使用してホームディレクトリをエクスポートしていると思いますか?クライアントにNFSエクスポートを手動でマウントすることは期待どおりに機能するがautofsが機能しない場合、問題はほぼ間違いなくautofs構成にあります。

Autofsの問題についてサポートが必要な場合は、_/etc/nsswitch.conf_、/etc/(open)ldap/ldap.conf、_/etc/ldap.conf_および_/etc/auto.master_および_/etc/auto.home_(または関連するもの/どこでも)の内容を投稿してくださいautofs構成は)。

5
rthomson

pam_mount を見ましたか?私のユースケースはあなたのものとは少し異なりますが、それは私が現在使用しているものです。 このブログ投稿 はプロセスのかなり良い概要を提供し、SAMBAサーバーを対象としていますが、Sambaの特定の部分を無視すると、NFSで動作し(私が使用しているものです)、10.04で動作します。 11.04は試していません。

1
kaptk2