<div dir="ltr"><div>Доброй ночи.</div><div><br></div><div>Сборка проверена в различных конфигурациях и отправлена на одобрение:</div><div>#240988 EPERM #8 sisyphus pam-config.git=1.8.0-alt1</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">чт, 21 нояб. 2019 г. в 02:45, Evgeny Sinelnikov &lt;<a href="mailto:sin@altlinux.org">sin@altlinux.org</a>&gt;:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Здравствуйте,<br>
<br>
Хочу напомнить об актуальной до сих пор теме нелокальных вариантов<br>
настроек PAM. С момента последнего обсуждения появились дополнительные<br>
вопросы, задачи и проблемы. А, между тем, с тех пор ничего не<br>
изменилось:<br>
<a href="https://lists.altlinux.org/pipermail/devel/2017-April/202654.html" rel="noreferrer" target="_blank">https://lists.altlinux.org/pipermail/devel/2017-April/202654.html</a><br>
<br>
Отмечу, что условие uid &gt;= 500 для любых глобальных пользователей. И<br>
настройку этой политики с помощью control я пока оставил - это<br>
отдельная не столь актуальная проблема (осталась текущая схема).<br>
<br>
Текущие изменения, которые я хочу предложить протестировать и<br>
внедрить, включают в себя следующие проблемы и решения:<br>
- &quot;путаница при наличии совпадающих логинов&quot;. По умолчанию вводится<br>
строгий контроль на уровне стека PAM-модулей с помощью модуля<br>
pam_localuser для методов krb5, krb5_ccreds и winbind (для sss это уже<br>
внедрено);<br>
- Для сохранения возможностей логики с использованием &quot;путаницы&quot;, как<br>
фичи (а такие варианты использования существуют) вводится метод<br>
krb5_local;<br>
- Для управления политиками настройки сессии вводится новый control -<br>
system-policy.<br>
<br>
Тестовая сборка готова и сейчас находится на стадии отладки (основные<br>
тесты успешно завершены, требуются добровольцы для участия в<br>
расширенной проверке):<br>
#240988 EPERM #7 [test-only] sisyphus pam-config.git=1.8.0-alt1<br>
<br>
<br>
PS: На текущем этапе всё зависит от мейнтенера pam-config:<br>
$ ssh girar acl sisyphus pam-config show<br>
pam-config      ldv<br>
<br>
PPS: Я не стал трогать три метода pkcs11 (выглядит прилично для своих<br>
задач), ldap и multi (pam-модули на базе ldap не понимаю как<br>
отлаживать - предпочитаю не трогать, как наследие).<br>
<br>
________________________________________<br>
<br>
О последнем подробнее:<br>
<br>
sin@xpi pam-config $ ls -1 /etc/pam.d/system-*<br>
/etc/pam.d/system-auth -&gt; system-auth-krb5_local<br>
/etc/pam.d/system-auth-krb5<br>
/etc/pam.d/system-auth-krb5_ccreds<br>
/etc/pam.d/system-auth-krb5_local<br>
/etc/pam.d/system-auth-ldap<br>
/etc/pam.d/system-auth-local<br>
/etc/pam.d/system-auth-multi<br>
/etc/pam.d/system-auth-pkcs11<br>
/etc/pam.d/system-auth-sss<br>
/etc/pam.d/system-auth-use_first_pass -&gt; system-auth-use_first_pass-krb5_local<br>
/etc/pam.d/system-auth-use_first_pass-krb5<br>
/etc/pam.d/system-auth-use_first_pass-krb5_ccreds<br>
/etc/pam.d/system-auth-use_first_pass-krb5_local<br>
/etc/pam.d/system-auth-use_first_pass-ldap<br>
/etc/pam.d/system-auth-use_first_pass-local<br>
/etc/pam.d/system-auth-use_first_pass-multi<br>
/etc/pam.d/system-auth-use_first_pass-pkcs11<br>
/etc/pam.d/system-auth-use_first_pass-sss<br>
/etc/pam.d/system-auth-use_first_pass-winbind<br>
/etc/pam.d/system-auth-winbind<br>
/etc/pam.d/system-policy -&gt; system-policy-global<br>
/etc/pam.d/system-policy-global<br>
/etc/pam.d/system-policy-local<br>
<br>
Настройка system-policy расширяемая и включает в себя, по умолчанию,<br>
две политики - local и global.<br>
<br>
~ # control system-policy help<br>
global: global session policy with mkhomedir<br>
local: local session policy<br>
~ # control system-policy summary<br>
system session policy type<br>
~ # control system-policy help<br>
global: global session policy with mkhomedir<br>
local: local session policy<br>
~ # control system-policy<br>
local<br>
<br>
По сути, первая от второй отличается только одним - наличием модуля<br>
pam_mkhomedir.so<br>
<br>
~ # cat /etc/pam.d/system-policy-local<br>
#%PAM-1.0<br>
session         required        pam_mktemp.so<br>
session         required        pam_limits.so<br>
~ # cat /etc/pam.d/system-policy-global<br>
#%PAM-1.0<br>
session         required        pam_mktemp.so<br>
session         required        pam_mkhomedir.so silent<br>
session         required        pam_limits.so<br>
<br>
Ещё одна особенность - при переключении system-auth с local на любую<br>
другую - system-policy автоматически переключается на global и<br>
обратно:<br>
~ # control system-auth local<br>
~ # control system-policy<br>
local<br>
~ # control system-auth sss<br>
~ # control system-policy<br>
global<br>
<br>
Это делает поведение по умолчанию аналогичным тому, которое было<br>
раньше. При этом, если system-policy задано, то system-auth возвращает<br>
system-policy в исходное только при переключении на local, но не<br>
наоборот:<br>
~ # control system-auth<br>
sss<br>
~ # control system-policy<br>
global<br>
~ # control system-auth local<br>
~ # control system-policy<br>
local<br>
<br>
~ # control system-policy test<br>
~ # control system-policy<br>
test<br>
~ # control system-auth krb5<br>
~ # control system-policy<br>
test<br>
~ # control system-auth sss<br>
~ # control system-policy<br>
test<br>
~ # control system-auth local<br>
~ # control system-policy<br>
local<br>
<br>
Для конфигураций, где вместо pam_mkhomedir.so нужно использовать<br>
pam_oddjob_mkhomedir (а это SELinux конфигурации, в первую очередь), а<br>
также для применения так называемых групповых политик, модули<br>
system-policy планируется устанавливать дополнительно (аналогично<br>
тому, как это делается для system-auth):<br>
~ # rpm -qf /etc/pam.d/system-auth-local<br>
pam-config-1.8.0-alt1.noarch<br>
~ # rpm -qf /etc/pam.d/system-auth-sss<br>
sssd-client-2.2.2-alt2.x86_64<br>
<br>
<br>
-- <br>
Sin (Sinelnikov Evgeny)<br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature">Sin (Sinelnikov Evgeny)</div></div>