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