The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Pam: Pam_exec и пароль юзера, введённый"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Разное)
Изначальное сообщение [ Отслеживать ]

"Pam: Pam_exec и пароль юзера, введённый"  +/
Сообщение от SCIF (ok), 23-Окт-08, 07:42 
День добрый.
Не нашёл ничего более подходящего, чем тут написать. В общем очень хочется мне проводить некоторые манипуляции на стадии логина, для этого хочу засунуть в стек пама модуль pam_exec и в аргументах указать ему /bin/bash -c /path/to/script. Всё работает за исключением одной мелочи - самой главной ;) Я не понимаю как получить пароль в этом скрипте и имя юзверя. В скрипте писал set>/tmp/pam_exec, и разглядывал переменные, пам ведь обычно в переменные суёт значения вводимые. Нифига интересного не нашёл. Не подскажите как всё-таки получить пароль и логин для использвания в скрипте. Вытянул сурсы, глянул и нифига интересного не нарыл в modules/pam_exec/* (я бы даже сказал точнее - смотрел как баран на новые ворота на этот один небольшой сишник, который в моём разумении является тем, что нужно). Подскажите может кто уже ковырялся с этим, а то ведь пам создан для перехвата и использования паролей во время логина, но вот что-то как-то совсем не то, чего ожидал получается.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Pam: Pam_exec и пароль юзера, введённый"  +/
Сообщение от mikra (?), 23-Окт-08, 15:15 
>День добрый.
>Не нашёл ничего более подходящего, чем тут написать. В общем очень хочется мне проводить некоторые манипуляции на стадии логина, для этого хочу засунуть в стек пама модуль pam_exec и в аргументах указать ему /bin/bash -c /path/to/script. Всё работает за исключением одной мелочи - самой главной ;) Я не понимаю как получить пароль в этом скрипте и имя юзверя. В скрипте писал set>/tmp/pam_exec, и разглядывал переменные, пам ведь обычно в переменные суёт значения вводимые. Нифига интересного не нашёл. Не подскажите как всё-таки получить пароль и логин для использвания в скрипте. Вытянул сурсы, глянул и нифига интересного не нарыл в modules/pam_exec/* (я бы даже сказал точнее - смотрел как баран на новые ворота на этот один небольшой сишник, который в моём разумении является тем, что нужно). Подскажите может кто уже ковырялся с этим, а то ведь пам создан для перехвата и использования паролей во время логина, но вот что-то как-то совсем не то, чего ожидал получается.

В ридми к pam_exec говорится какие переменные передаются исполняемому скрипту. Логин передается, пароль - нет. Для аутентификации по своему сценарию придется писать модуль к паму.

Если переенной с логином не видно в окружении, то я бы попробовал параметром указать /path/to/script, без баша

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Pam: Pam_exec и пароль юзера, введённый"  +1 +/
Сообщение от POOH (?), 15-Мрт-11, 19:25 
>[оверквотинг удален]
> ;) Я не понимаю как получить пароль в этом скрипте и
> имя юзверя. В скрипте писал set>/tmp/pam_exec, и разглядывал переменные, пам ведь
> обычно в переменные суёт значения вводимые. Нифига интересного не нашёл. Не
> подскажите как всё-таки получить пароль и логин для использвания в скрипте.
> Вытянул сурсы, глянул и нифига интересного не нарыл в modules/pam_exec/* (я
> бы даже сказал точнее - смотрел как баран на новые ворота
> на этот один небольшой сишник, который в моём разумении является тем,
> что нужно). Подскажите может кто уже ковырялся с этим, а то
> ведь пам создан для перехвата и использования паролей во время логина,
> но вот что-то как-то совсем не то, чего ожидал получается.

(если кому будет актуально)
Пароль в pam_exec можно получить из STDIN. Для этого служит параметр expose_authtok. У меня - так:

auth required   pam_exec.so expose_authtok /opt/test_pam_exec.pl

Сам скрипт:


#!/usr/bin/perl

open F, ">>/opt/auth.txt";
$pass='';
$pass=<STDIN>;
chop($pass);
print F "Okay! ".join(', ', @ARGV)." --- ".join(', ', keys(%ENV))." --- $pass\n";
close F;

В переменной $pass оказывается введённый зверём пароль

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Pam: Pam_exec и пароль юзера, введённый"  +/
Сообщение от metallerko (?), 10-Янв-19, 01:43 
>[оверквотинг удален]
> auth required   pam_exec.so expose_authtok /opt/test_pam_exec.pl
> Сам скрипт:
> #!/usr/bin/perl
> open F, ">>/opt/auth.txt";
> $pass='';
> $pass=<STDIN>;
> chop($pass);
> print F "Okay! ".join(', ', @ARGV)." --- ".join(', ', keys(%ENV))." --- $pass\n";
> close F;
> В переменной $pass оказывается введённый зверём пароль

Так же можно использовать:
#!/bin/bash

PAM_PASS=`cat /dev/stdin`
и тогда echo ${PASS} выведет пароль введеный юзером.


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Pam: Pam_exec и пароль юзера, введённый"  +/
Сообщение от metallerko (?), 10-Янв-19, 01:45 

> Так же можно использовать:
> #!/bin/bash
> PAM_PASS=`cat /dev/stdin`

и тогда echo ${PAM_PASS} выведет пароль введеный юзером.

быстрофикс

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру