Pam: различия между версиями
Перейти к навигации
Перейти к поиску
Vovan (обсуждение | вклад) (Новая страница: «==Запустить сценарий при входе пользователя в GNU/Linux с передачей в него логина и пароля== ==…») |
Vovan (обсуждение | вклад) (→Создаём сценарий) |
||
| Строка 21: | Строка 21: | ||
cat << 'EOF' > /opt/pam_exec_hook | cat << 'EOF' > /opt/pam_exec_hook | ||
#!/bin/bash | #!/bin/bash | ||
| − | + | login="$PAM_USER" | |
read password | read password | ||
| − | + | ||
| + | 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 можно выполнить желаемую операцию интеграции. Например, выполнить скрипт для регистрации нового пользователя или обновления пароля в другой системе.