- PR -

LDAPユーザでのpublic_html公開に関して

1
投稿者投稿内容
未記入
会議室デビュー日: 2007/07/30
投稿数: 7
投稿日時: 2007-07-30 17:10
apacheでユーザのホームディレクトリ以下のpublic_htmlを公開しようとしています。
サーバローカルに登録してあるユーザは問題ないのですが、LDAPに登録しているユーザに関してうまくいきません。

・環境
 apacheサーバ
 ・CentOS5.0
 ・Apache/2.2.3
 
 LDAPサーバ
 ・Solaris9
 ・Sun Java Directory Server 5.2

apacheサーバの/etc/pam.d/system-authにLDAPサーバへの記述をしています。

  • 「localuser」はローカルの/etc/passwdに記述があるユーザ
  • 「ldapuser」はLDAPサーバに登録してあるユーザ
とすると、どちらのユーザともにtelnetおよびftpでログインできることは確認しております。

また、apacheのBasic認証にLDAPを利用することも可能でした。
ldapsearchでも正常に情報を取得できるので、apacheサーバ−LDAPサーバ間でLDAPの通信は問題ないと思います。(LDAPのobjectclassにはposixAccountも含まれています)

ホームディレクトリ、public_htmlのパーミッションは両方のユーザで同じように設定してあります。


・現象

  • ローカルユーザ
     /home/localuser/public_html/index.html に関しては
     http://example.com/~localuser/index.html で問題なく閲覧可能です。

  • LDAP登録ユーザ
    /export/home/ldapuser/public_html に関して
     http://example.com/~ldapuser/index.html にアクセスすると以下がerror_logに吐かれます。ブラウザにはNotFoundが表示されます。

    [Mon Jul 30 16:30:11 2007] [error] [client 172.16.XX.XX] File does not exist: /var/www/html/~ldapuser

LDAPユーザもローカルユーザと同様にpublic_html以下を公開できるようにしたいのですが、どなたかお知恵を貸して頂けないでしょうか?


参考としてsystem-authとhttpd.confの当該部分を添付します。
コード:
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_ldap.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore service_err=ignore system_err=igno
re authinfo_unavail=ignore] pam_ldap.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    sufficient    pam_ldap.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_ldap.so



コード:
<IfModule mod_userdir.c>
    UserDir public_html
</IfModule>

<Directory /home/*/public_html>
#<Directory /export/home/*/public_html>でも同じ記述をしています
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    <Limit GET POST OPTIONS>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>

うっちー
常連さん
会議室デビュー日: 2004/08/12
投稿数: 32
投稿日時: 2007-07-31 11:44
LDAPユーザでの userdir を有効化させるには
userdir /export/home/*/public_html
みたく書くといいらしいです。

参考
www.openldap.org

[ メッセージ編集済み 編集者: うっちー 編集日時 2007-07-31 11:45 ]

[ メッセージ編集済み 編集者: うっちー 編集日時 2007-07-31 11:46 ]
未記入
会議室デビュー日: 2007/07/30
投稿数: 7
投稿日時: 2007-07-31 12:43
うっちー様

ご返信ありがとう御座います。

教えて頂いた通り「UserDir public_html」ではなく
「UserDir /export/home/*/public_html」と記述することでldapuserのpublic_htmlを公開出来ました。
#ローカルユーザの方(/home/localuser)が閲覧できなくなりましたが、リンク等により対処できると思います。

検索していたところ、pam.dの下をいじっていたら出来るようになったという記述を見つけたので、すっかりそちらを疑っていました。UserDirについてもう少し調べていれば・・・、と思います。お恥ずかしい限りです。

どうもありがとう御座いました。

1

スキルアップ/キャリアアップ(JOB@IT)