Назад | Перейти на главную страницу

Веб-приложение RHEL 6.5 PAM AUTH pam_oddjob_mkhomedir

У меня есть 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