RHEL 6.5 web应用程序PAM AUTH pam_oddjob_mkhomedir

我有一个RHEL 6.5,AD服务器authenicates,那边工作正常。

该机器还运行使用PAM模块进行身份validation的Web应用程序。

我复制login,使一个pam模块供web应用程序使用。 (rstudio-server)和login正常工作。

但是,如果用户以前没有login过,那么他们的主目录并不是由pam_oddjob_mkhomedir创build的,如果我是该用户,那么将立即创build主目录。

我已经设置了selinux宽容,直到我得到这个sorting,我正在尝试pam_mkhomedir.so和pam_oddjob_mkhomedir.so(这两个都到位,oddjob服务正在运行)

没有概率,我想..它不是开始一个会话,它只是从PAM自动化,所以我尝试把线路调用mkhomedir到auth,但它不工作。

用pamtestertesting:

# pamtester rstudio 00064742 "authenticate" Password: pamtester: successfully authenticated # pamtester rstudio 00064742 "open_session" Creating home directory for 00064742. pamtester: sucessfully opened a session 

正如你所看到的,如果一个会话被打开,主目录是创build的,但不是在auth下。

这是相关的pam文件。

 pam.d]# cat rstudio #%PAM-1.0 auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so auth required pam_warn.so auth include system-auth #auth optional pam_mkhomedir.so skel=/etc/skel/ umask=0077 auth optional pam_oddjob_mkhomedir.so account required pam_nologin.so account include system-auth password include system-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close session required pam_oddjob_mkhomedir.so debug session optional pam_mkhomedir.so skel=/etc/skel/ umask=0077 session required pam_loginuid.so session optional pam_console.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open session required pam_namespace.so session optional pam_keyinit.so force revoke session include system-auth #-session optional pam_ck_connector.so 

我不能为我的生活看到任何方式让oddjob创build用户homedir,直到打开一个会话。

任何人都可以提出一个方法来使这项工作?

我以为只是:auth可选pam_oddjob_mkhomedir.so

会做到这一点。 但不是那么多。

一些validation:

 # service oddjobd status oddjobd (pid 2427) is running... # rpm -qa | grep oddjob oddjob-0.30-5.el6.x86_64 oddjob-mkhomedir-0.30-5.el6.x86_64 # getenforce Permissive 

我正在尝试的另一个想法是使用pam_script。

我已经将这添加到pam rstudio文件中:

 auth required pam_script.so onerr=success dir=/etc/pam-script.d 

我在/etc/pam-script.d中创build了一个文件,并把它放在里面:

 #!/bin/sh dbus-send --system --dest=com.redhat.oddjob_mkhomedir --print-reply / com.redhat.oddjob_mkhomedir.mkhomedirfor string:"$PAM_USER" 

从理论上讲,这应该是诀窍..虽然我不太喜欢这样做。 它以某种方式冒犯了我

如果您希望在su和login时创build目录,则可能需要在/etc/pam.d/su中testing/添加以下行:

session optional pam_oddjob_mkhomedir.so