Pam: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
Строка 4: | Строка 4: | ||
=Linix PAM= |
=Linix PAM= |
||
Это статья про полную <s>хуйню</s> ерунду - от руководства поставлена задача: заводить пользователя вида user@domain.tld на линукс-боксах. Из ограничений - такой пользователь нужен только один в системе. |
Это статья про полную <s>хуйню</s> ерунду - от руководства поставлена задача: заводить пользователя вида user@domain.tld на линукс-боксах. Из ограничений - такой пользователь нужен только один в системе. |
||
+ | <BR> |
||
⚫ | |||
+ | <BR> |
||
+ | Все написаное относится к CentOS 6.5 - меня интересовала именно эта система и со всякими вашими убунтами я не тестировал :) |
||
⚫ | |||
+ | ===Краткое описание сложностей=== |
||
<BR> |
<BR> |
||
Первое что пришло в голову - использовать PAM и не заморачиваться с хранением пользователя вообще. |
Первое что пришло в голову - использовать PAM и не заморачиваться с хранением пользователя вообще. |
||
− | Сделать что то вроде |
+ | Сделать что то вроде такого в /etc/pam.d.sshd |
<PRE> |
<PRE> |
||
auth sufficient pam_exec.so debug expose_authtok log=/root/pam_exec_debug.log /root/pam_exec.sh |
auth sufficient pam_exec.so debug expose_authtok log=/root/pam_exec_debug.log /root/pam_exec.sh |
||
</PRE> |
</PRE> |
||
+ | Естественно /root/pam_exec.sh для моего пользователя (или для теста - всегда) возвращает "успех". |
||
− | |||
+ | <BR><B>Это не сработало</B> |
||
⚫ | |||
+ | <BR>Т.е. на уровне PAM это конечно же работает- но ssh слишком умный <S>как утка</S> и имеет дополнительную проверку - вызывая системную ф-ю которая ничего не знает про PAM (а использует дедовские методы - /etc/passwd ... ) и не пускает с ошибкой: |
||
⚫ | |||
+ | <PRE> |
||
+ | </PRE> |
||
<BR> |
<BR> |
||
Тут возможно несколько вариантов |
Тут возможно несколько вариантов |
Версия 22:37, 5 марта 2015
Linix PAM
Это статья про полную хуйню ерунду - от руководства поставлена задача: заводить пользователя вида user@domain.tld на линукс-боксах. Из ограничений - такой пользователь нужен только один в системе.
В линуксе нельзя завести пользователя с символом "@" в имени стандартными средствами (--force варианты я не расматриваю). Потому для хранения пользователей нужно использовать какое-то внешнее хранилище.
Все написаное относится к CentOS 6.5 - меня интересовала именно эта система и со всякими вашими убунтами я не тестировал :)
Решение
Краткое описание сложностей
Первое что пришло в голову - использовать PAM и не заморачиваться с хранением пользователя вообще.
Сделать что то вроде такого в /etc/pam.d.sshd
auth sufficient pam_exec.so debug expose_authtok log=/root/pam_exec_debug.log /root/pam_exec.sh
Естественно /root/pam_exec.sh для моего пользователя (или для теста - всегда) возвращает "успех".
Это не сработало
Т.е. на уровне PAM это конечно же работает- но ssh слишком умный как утка и имеет дополнительную проверку - вызывая системную ф-ю которая ничего не знает про PAM (а использует дедовские методы - /etc/passwd ... ) и не пускает с ошибкой:
Тут возможно несколько вариантов
- LDAP
- NIS
- DB
Я остановлюсь