Fra*_*tle 5 active-directory redhat ldap pam pam-ldap
我有一个针对 AD 服务器进行身份验证的 RHEL 6.5,该端工作正常。
该机器还运行使用 PAM 模块进行身份验证的 Web 应用程序。
我复制了登录名来制作一个供 web 应用程序使用的 pam 模块。(rstudio-server) 并且登录工作正常。
但是,如果用户之前未登录,则 pam_oddjob_mkhomedir 不会通过 pam_oddjob_mkhomedir 创建他们的主目录,如果我 SU 到该用户,则会立即创建主目录。
我已将 selinux 设置为宽松,直到我对此进行排序,并且我正在尝试 pam_mkhomedir.so 和 pam_oddjob_mkhomedir.so(两者都已就位并且oddjob 服务正在运行)
我认为没有问题..它不是开始会话,它只是从 PAM 进行身份验证,所以我尝试将调用 mkhomedir 的行放入身份验证中,但它不起作用。
使用 pamtester 进行测试:
# pamtester rstudio 00064742 "authenticate"
Password:
pamtester: successfully authenticated
# pamtester rstudio 00064742 "open_session"
Creating home directory for 00064742.
pamtester: sucessfully opened a session
Run Code Online (Sandbox Code Playgroud)
如您所见,如果打开了一个会话,则会创建主目录,但不会在 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
Run Code Online (Sandbox Code Playgroud)
在打开会话之前,我一生都看不到任何方法来让 oddjob 创建用户主目录。
谁能建议一种方法来使这项工作?
我原以为只是: auth optional pam_oddjob_mkhomedir.so
本来可以做到的。但没有那么多。
一些验证:
# 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
Run Code Online (Sandbox Code Playgroud)
我正在尝试的另一个想法是使用 pam_script。
我已将此添加到 pam rstudio 文件中:
auth required pam_script.so onerr=success dir=/etc/pam-script.d
Run Code Online (Sandbox Code Playgroud)
我在 /etc/pam-script.d 中创建了一个文件并将其放入其中:
#!/bin/sh
dbus-send --system --dest=com.redhat.oddjob_mkhomedir --print-reply / com.redhat.oddjob_mkhomedir.mkhomedirfor string:"$PAM_USER"
Run Code Online (Sandbox Code Playgroud)
从理论上讲,这应该可以解决问题。不过我不太喜欢这样做。它以某种方式冒犯了我。
如果您希望在 su 以及登录时创建该目录,那么可能值得测试/将以下行添加到 /etc/pam.d/su 中:
session optional pam_oddjob_mkhomedir.so
| 归档时间: |
|
| 查看次数: |
2478 次 |
| 最近记录: |