Я хочу запускать сценарий bash каждый раз, когда кто-то открывает сеанс FTP в Linux. В идеале решение должно быть совместимо с любым FTP-сервером. Возможно, способ определить, когда учетные данные принимаются на определенном порту. Любые идеи?
Вы можете написать сценарий, который анализирует файл журнала, скажем, демонов ftp, таких как vsftpd и proftpd, и что-то делать, как только он найдет строку, которая соответствует тому, что вы хотите. Однако для каждого демона он будет разным, поскольку у каждого свой стиль журнала. Вдобавок к этому будет задержка, так как вам, вероятно, придется опросить файл, чтобы узнать, изменился ли он.
Возможно, более портативным решением и лучшим временем отклика было бы создание модуля PAM (ДОПОЛНИТЕЛЬНАЯ РАБОТА). Многие демоны имеют встроенную поддержку PAM. Поэтому, когда кто-то входит, например, в ssh, он будет запрашивать PAM, и конфигурация PAM выберет для входа в систему, будь то файл LDAP или UNIX. тогда у него есть такие же модули паролей, как cracklib, чтобы проверить, работает ли он.
Короче говоря, вы можете добавить эту строку в конфигурацию pam конкретной службы после создания модуля pam. требуется сеанс /lib/security/pam_yourmodule.so
http://www.linux.com/archive/feature/113567 для быстрого ознакомления с PAM.