LINUX.ORG.RU
ФорумAdmin

Не обрабатывается ошибка pam_mount.so

 ,


0

1

OS: REDOS+GDM Требуется, чтобы при ошибке монтирования через модуль pam_mount запрещался логин пользователя в GUI. В ./etc/pam.d/gdm-password я в строке session optional pam_mount.so disable_interactive заменил optional на required и requisite, вставлял эту строку в разные блоки, в начало блоков, пробовал вставлять в system-auth, ничего не помогает, даже если mount не состоялся, логин разрешается. Будто модуль не передаёт код ошибки. Что я делаю не так? Панамку приготовил.



Последнее исправление: dataman (всего исправлений: 2)

Что я делаю не так? Панамку приготовил.

В который раз не добавляешь тег redos.

dataman ★★★★★
()
Ответ на: комментарий от Aceler

Я писал, что в файле gdm-password вставлял это в разные блоки, в том числе в начало блока password с признаком requisite - поведение то же самое. Вернее даже иначе - при вставке в блок password mount не отрабатывает вообще - ни ошибок нет, не результата.

Deepdig
() автор топика
Последнее исправление: Deepdig (всего исправлений: 1)
Ответ на: комментарий от Deepdig

Блок password используется для работы с паролем пользователя(например смены). Тебе нужен блок auth.

Включи отладку в конфиге pam_mount (опция debug). Также можешь повключать отладку в других модулях pam (man соответствующего модуля в помощь) - и смотри на лог в journalctl. Скорее всего ты делаешь что-то не так - например правишь не тот конфиг pam (какой надо править конкретно в RedOS - я хз)

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Дебаг попробую включить, но по поводу не того конфига pam - сам pam_mount ведь отрабатывает, значит он как минимум в том конфиге, который отрабатывает. А вот почему он, будучи requisite не прерывает цепочку при неудачной попытке примаунтить - вот вопрос.

Deepdig
() автор топика

Не знаю, тот ли я исходник pam_mount смотрел, но там ошибка возвращалась только из-за конфига. А если код дошёл до попытки монтирования, то там всегда возвращался PAM_SUCCESS, и такой комментарий:

	/*
	 * If mounting something failed, e.g. ret = %PAM_SERVICE_ERR, we have
	 * to unravel everything and umount all volumes. But *only* if
	 * pam_mount was configured as a "required" module. How can this info
	 * be obtained?
	 * For now, always assume "optional", so that the volumes are
	 * definitely unmounted when the user logs out again.
	 */
	ret = PAM_SUCCESS;

То есть, как я понимают, pam_mount может быть сконфигурирован монтировать несколько каталогов и если один из них не получилось смонтировать и модуль required, то нужно отмонтировать удачно смонтированные перед возвратом ошибки. Но, так как модуль не знает required он или нет, то такое поведение не получится реализовать, значит и не будем пробовать, не будем сообщать об ошибках монтирования...

mky ★★★★★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария