У меня есть RHEL 6.5, который выполняет аутентификацию на сервере AD, эта сторона работает нормально.
На машине также запущено веб-приложение, которое использует модуль PAM для аутентификации.
Я скопировал логин, чтобы сделать модуль pam для использования в веб-приложении. (rstudio-server) и логин работает отлично.
Однако, если пользователь не входил в систему раньше, его домашний каталог не создается pam_oddjob_mkhomedir, если я отправляю запрос этому пользователю, домашний каталог создается мгновенно.
Я установил для selinux разрешающую способность, пока не получу это отсортировано, и я пробую как pam_mkhomedir.so, так и pam_oddjob_mkhomedir.so (оба из которых находятся на месте, и служба oddjob работает)
нет проблем, я думаю ... он не запускает сеанс, он просто авторизуется из PAM, поэтому я пытаюсь поместить строку, вызывающую mkhomedir, в auth, но это не работает.
тестирование с помощью pamtester:
# pamtester rstudio 00064742 "authenticate"
Password:
pamtester: successfully authenticated
# pamtester rstudio 00064742 "open_session"
Creating home directory for 00064742.
pamtester: sucessfully opened a session
Как видите, если сеанс открыт, домашний каталог создается, но не под авторизацией.
Вот соответствующий файл 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
Я не могу, хоть убей, увидеть способ получить лишнюю работу для создания домашнего адреса пользователей, пока не будет открыт сеанс.
Может ли кто-нибудь предложить способ заставить эту работу?
Я бы подумал, что просто: 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
Еще я пытаюсь использовать pam_script.
Я добавил это в файл pam rstudio:
auth required pam_script.so onerr=success dir=/etc/pam-script.d
И я создал файл в /etc/pam-script.d и поместил в него следующее:
#!/bin/sh
dbus-send --system --dest=com.redhat.oddjob_mkhomedir --print-reply / com.redhat.oddjob_mkhomedir.mkhomedirfor string:"$PAM_USER"
Теоретически это должно сработать ... Хотя мне не очень нравится делать это таким образом. это как-то меня обижает.
На ubuntu 18 у меня была аналогичная проблема, похоже, что версия сообщества R-Studio уважает только "auth", а не "session"
Обходной путь состоял в том, чтобы ввести /etc/pam.d/rstudio следующим образом:
auth [success=ok new_authtok_reqd=ok ignore=ignore user_unknown=bad default=die] pam_exec.so /etc/pam.d/mkhome.sh
@include common-auth
@include common-account
@include common-password
@include common-session
с /etc/pam.d/mkhome.sh просто / bin / su -l $ PAM_USER -c exit 2> / dev / null
Если вы хотите, чтобы каталог создавался при su, а также при входе в систему, возможно, стоит протестировать / добавить следующую строку в /etc/pam.d/su:
session optional pam_oddjob_mkhomedir.so