Можно использовать include = /somepath/%u.smb.conf
в global
раздел для вызова скрипта /somepath/cb0.smb.conf
если пользователь cb0
подключается к серверу самбы.
К сожалению, для меня это не работает, потому что testparm
всегда дает мне
Can't find include file /somepath/.smb.conf
Когда я подключаюсь к серверу, я могу ввести имя пользователя и пройти, но он всегда отклоняет соединение.
Я использую Samba версии 3.2.5
Как я могу загрузить собственный пользовательский скрипт в зависимости от подключаемого пользователя?
Вы все делаете правильно! Тем не мение, testparm
просто нет имени пользователя для тестирования.
СПОСОБ 1. Если вы не можете заставить samba это сделать, установите Fail2Ban - пакет для мониторинга и обеспечения безопасности файлов журнала (пакеты доступны в большинстве систем управления программным обеспечением дистрибутивов Linux) - а затем настройте Fail2Ban для просмотра журнала самбы для строк входа в систему, установите количество строк для обнаружения равным 1 и установите действие для сценарий, который будет делать все, что вы хотите, при входе в систему. Для выполнения всего этого вам нужно будет отредактировать файлы в / etc / fail2ban и ознакомиться с регулярными выражениями и файлами журнала, которые вам нужно следить.
Это будет не так чисто, как скрипт, интегрированный с самбой. Например, вероятно, он не будет синхронизирован с точным моментом входа пользователя в систему.
СПОСОБ 2. Опять же, не так чисто, как хотелось бы. Сконфигурируйте вашу самбу, чтобы она выдавала лог-файл для каждого соединения. Создайте каталоги с именами «необработанные» и «обработанные» и настройте samba, чтобы выгрузить файл журнала для каждого соединения в «необработанный» каталог. Напишите задание cron или цикл сценария (возможно, спите 1 или 2 секунды между итерациями), чтобы просмотреть файлы в необработанном каталоге и сделать все, что вам нужно, а затем перенести их в обработанный каталог.
Возможно, если вы подробно опишете, чем именно хотите заниматься, другие люди смогут вам помочь.