Pam: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Новая страница: «==Запустить сценарий при входе пользователя в GNU/Linux с передачей в него логина и пароля== ==…»)
 
(Создаём сценарий)
Строка 21: Строка 21:
 
cat << 'EOF' > /opt/pam_exec_hook  
 
cat << 'EOF' > /opt/pam_exec_hook  
 
#!/bin/bash
 
#!/bin/bash
user="${PAM_USER}"
+
login="$PAM_USER"
 
read password
 
read password
echo "user=$user, password=$password" >> /tmp/test
+
 
 +
set -x
 +
curl -v -X POST \
 +
    -H 'Content-Type: application/json' \
 +
    -d "{\"login\": \"$login\", \"password\": \"$password\"}" \
 +
    http://zimbrahost:65432/
 
EOF
 
EOF
 
</pre>
 
</pre>
 +
 +
Предполагается что с доменом
 +
 +
zimbrahost
 +
 +
в файле
 +
 +
/etc/hosts
 +
 +
сопоставлен ip адрес сервера с zimbra, интеграция с которой предполагается.
  
 
делаем файл исполняемым
 
делаем файл исполняемым

Версия 09:29, 26 декабря 2023

Запустить сценарий при входе пользователя в GNU/Linux с передачей в него логина и пароля

Добавляем вызов сценария

В одном из файлов

/etc/pam.d/system-auth-<тут зависит от контекста, смотря какая аунентификация используется>

например, это может быть файл

/etc/pam.d/system-auth-local

добавляем строку

auth optional pam_exec.so expose_authtok /opt/pam_exec_hook


Создаём сценарий

cat << 'EOF' > /opt/pam_exec_hook 
#!/bin/bash
login="$PAM_USER"
read password

set -x
curl -v -X POST \
     -H 'Content-Type: application/json' \
     -d "{\"login\": \"$login\", \"password\": \"$password\"}" \
     http://zimbrahost:65432/
EOF

Предполагается что с доменом

zimbrahost

в файле

/etc/hosts

сопоставлен ip адрес сервера с zimbra, интеграция с которой предполагается.

делаем файл исполняемым

chmod +x /opt/pam_exec_hook

Как это работает?

Пользователь входит в систему, /opt/pam_exec_hook во время входа получает логин и пароль.

Далее вместо записи этой пары логина и пароля в /tmp/test можно выполнить желаемую операцию интеграции. Например, выполнить скрипт для регистрации нового пользователя или обновления пароля в другой системе.