Bug 38655

Summary: Не блокируется tty в /etc/security/access.conf
Product: Sisyphus Reporter: underwit <underwit>
Component: loginAssignee: Dmitry V. Levin <ldv>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P5 CC: ldv, lepata, mcpain, placeholder, rider, underwit, zerg
Version: unstable   
Hardware: x86_64   
OS: Linux   
Bug Depends on:    
Bug Blocks: 38056    

Description underwit 2020-06-30 12:12:29 MSK
Подключил модуль pam_access
добавил в /etc/pam.d/common-login
account required pam_access.so

В /etc/security/access.conf
добавляю правило
-:username:tty4

Попытка входа на tty4 для username проходит успешно.

Например если поменять правило на
-:username:localhost
вход блокируется, т.е. неработают правила только для tty.

Аналогично и в P9

На сторонних дистрибутивах ubuntu, fedora при аналогичных действия всё отрабатывает нормально.
Comment 1 Dmitry V. Levin 2020-06-30 12:26:05 MSK
(In reply to underwit from comment #0)
> Попытка входа на tty4 для username проходит успешно.

Чем осуществляется попытка входа?
Comment 2 underwit 2020-06-30 12:31:54 MSK
(Ответ для Dmitry V. Levin на комментарий #1)
> Чем осуществляется попытка входа?

ctrl+alt+f4
или
chvt 4
Comment 3 Anton Farygin 2020-06-30 12:56:02 MSK
навернякак systemd-logind.
Comment 4 Dmitry V. Levin 2020-06-30 13:00:42 MSK
(In reply to Anton Farygin from comment #3)
> навернякак systemd-logind.

Тогда попробуйте выяснить, выставляет ли он PAM_TTY, и если да, то в какое значение.
Comment 5 Anton Farygin 2020-06-30 13:05:59 MSK
agetty, а не systemd-logind. А как выяснить ?
Вижу процессы:
/sbin/agetty -o -p -- \u --noclear tty5 linux
Comment 6 Dmitry V. Levin 2020-06-30 13:16:32 MSK
(In reply to Anton Farygin from comment #5)
> agetty, а не systemd-logind. А как выяснить ?

agetty всё-таки не осуществляет login.
Выяснить просто: залогиниться и посмотреть в лог.

> Вижу процессы:
> /sbin/agetty -o -p -- \u --noclear tty5 linux

Ещё можно chvt 5, дождаться приглашения, и посмотреть ps ещё раз.
Comment 7 Anton Farygin 2020-06-30 14:46:58 MSK
audit пишет что запускается /bin/login, в моём случае это login-0.60-alt35.x86_64
Comment 8 Sergey V Turchin 2020-07-02 10:29:38 MSK
*** Bug 38056 has been marked as a duplicate of this bug. ***
Comment 9 Олег Соловьев 2020-07-03 16:04:12 MSK
В SimplePAMApps: pamapps/login/login.c:118
Для login_remote_host устанавливается значение по умолчанию - "localhost", которое модифицируется в parse_args() только при передаче в качестве аргумента имени хоста.

В противном случае эта строка остается без изменений и устанавливается в PAM_RHOST.

В linux-pam: modules/pam_access/pam_access.c:846
идёт получение через pam_get_item сожержимого PAM_RHOST, а в строке 853 идет проверка на то, что это содержимое либо нулевой указатель, либо пустая строка.

А у нас там "localhost" -> условие не выполняется, проверки на tty нет и, следовательно, программа разрешает вход из-под tty.
Comment 10 Dmitry V. Levin 2020-07-03 16:14:29 MSK
Так было с 2001 года.  Я уберу PAM_RUSER и PAM_RHOST, это починит pam_access, а вы попробуйте выяснить, как это повлияет на весь остальной софт.
Comment 11 Олег Соловьев 2020-07-03 16:29:26 MSK
(Ответ для Dmitry V. Levin на комментарий #10)
> Так было с 2001 года.  Я уберу PAM_RUSER и PAM_RHOST, это починит
> pam_access, а вы попробуйте выяснить, как это повлияет на весь остальной
> софт.

Как минимум повлияет на то, что при указании правила "-:USER:localhost" вход через tty будет разрешён, а я так понял, что его необходимо запрещать.
Comment 12 Sergey V Turchin 2020-07-03 16:54:08 MSK
Предлагаю "localhost" починить позже, а то прям горит.
Comment 13 Олег Соловьев 2020-07-03 17:24:58 MSK
(Ответ для Sergey V Turchin на комментарий #12)
> Предлагаю "localhost" починить позже, а то прям горит.

Ссылка на огнетушитель:
http://git.altlinux.org/tasks/254422/
Comment 14 underwit 2020-07-03 17:26:00 MSK
Проверил в fedora Если указать localhost то он не блокируется.
Comment 15 Dmitry V. Levin 2020-07-03 17:33:31 MSK
Не надо проверять pam_access в Федоре, в этом нет смысла.
Проверьте, пожалуйста, как наш софт отреагирует на отсутствие PAM_RUSER и PAM_RHOST.
Comment 16 Олег Соловьев 2020-07-03 17:36:01 MSK
(Ответ для Dmitry V. Levin на комментарий #15)
> Проверьте, пожалуйста, как наш софт отреагирует на отсутствие PAM_RUSER и
> PAM_RHOST.

"наш" - это какой?
Где взять версию, где PAM_RUSER и PAM_RHOST отсутствуют?
Comment 17 Dmitry V. Levin 2020-07-03 17:48:04 MSK
(In reply to Олег Соловьев from comment #16)
> (Ответ для Dmitry V. Levin на комментарий #15)
> > Проверьте, пожалуйста, как наш софт отреагирует на отсутствие PAM_RUSER и
> > PAM_RHOST.
> 
> "наш" - это какой?

Хотя бы тот, который входит в наши дистрибутивы.
Могут быть побочные эффекты.

> Где взять версию, где PAM_RUSER и PAM_RHOST отсутствуют?

#254330
Comment 18 Олег Соловьев 2020-07-03 18:15:16 MSK
Вход локальным пользователем под sddm работает.
Вход локальным пользователем с tty работает.
Comment 19 Repository Robot 2020-07-03 18:57:03 MSK
SimplePAMApps-0.60-alt36 -> sisyphus:

 Fri Jul 03 2020 Dmitry V. Levin <ldv@altlinux> 0.60-alt36
 - login: do not set PAM_RUSER and PAM_RHOST unnecessarily (closes: #38655).