Вопрос или проблема
Как я могу получить журналы всех действий пользователей с файлами и папками в Samba? Пожалуйста, сообщите, какие изменения необходимо внести в конфигурационный файл Samba /etc/samba/smb.conf
.
Мой /etc/samba/smb.conf
содержит
log level = 3
log file = /var/log/samba/log.%p
max log size = 5000
debug timestamp = yes
На данный момент мой /etc/samba/smb.conf
имеет приведенную выше конфигурацию. Но это не дает корректный журнал.
Я полагаю, что вам нужны следующие настройки;
http://moiristo.wordpress.com/2009/08/10/samba-logging-user-activity/
http://oreilly.com/openbook/samba/book/ch04_08.html
Вы можете увидеть записи, открытия, удаления и т. д., но будьте осторожны: Samba фиксирует ОЧЕНЬ МНОГО!!! информации, когда вы включаете эти параметры, если сервер действительно загружен, удачи!
Я обнаружил, что инструкции в блоге, на который ссылается другой ответ, были немного устаревшими для Samba 4.15 (на моем сервере Ubuntu 22.04). Вот что я сделал:
В smb.conf
[share]
vfs objects = full_audit
full_audit:prefix = %u|%I|%m|%S
full_audit:success = mkdirat renameat unlinkat pwrite
full_audit:failure = none
full_audit:facility = LOCAL7
full_audit:priority = NOTICE
В /etc/rsyslog.d/50-default.conf
я добавил
local7.* /var/log/samba/log.audit
и затем дал разрешение rsyslog (который работает от имени пользователя syslog
) записывать в /var/log/samba/log.audit
sudo usermod -aG adm syslog # Группа папки /var/log/samba - adm
sudo chmod g+rw /var/log/samba
Ответ или решение
Для того чтобы получить логи о всех действиях пользователей с файлами и папками в Samba, необходимо внести некоторые изменения в конфигурационный файл Samba, а также настроить систему ведения журналов. Я расскажу, как это сделать шаг за шагом.
Шаг 1: Настройка smb.conf
Вам нужно отредактировать файл конфигурации Samba, который обычно находится по адресу /etc/samba/smb.conf
. Откройте этот файл для редактирования с помощью текстового редактора, например:
sudo nano /etc/samba/smb.conf
Добавьте следующие параметры в секцию вашей общей папки (например, [share]
):
[share]
vfs objects = full_audit
full_audit:prefix = %u|%I|%m|%S
full_audit:success = mkdirat renameat unlinkat pwrite open close
full_audit:failure = all
full_audit:facility = LOCAL7
full_audit:priority = NOTICE
Объяснение параметров:
vfs objects = full_audit
— включает модуль аудита для отслеживания действий.full_audit:prefix = %u|%I|%m|%S
— формат записи лога, где%u
— пользователь,%I
— IP-адрес клиента,%m
— имя машины, а%S
— имя ресурса.full_audit:success
— действия, для которых будут записываться успешные события (например, создание директорий, переименование, удаление, запись и т.д.).full_audit:failure = all
— записывать все неудачные попытки.full_audit:facility
иfull_audit:priority
— указывают уровень важности для ведения журнала.
Шаг 2: Настройка rsyslog
Теперь нам нужно настроить rsyslog
, чтобы записи журнала отправлялись в нужный файл. Откройте файл конфигурации rsyslog:
sudo nano /etc/rsyslog.d/50-default.conf
Добавьте следующую строку в конец файла:
local7.* /var/log/samba/log.audit
Шаг 3: Настройка прав доступа
Убедитесь, что rsyslog
(который работает от имени пользователя syslog
) имеет доступ на запись в каталог /var/log/samba
. Для этого выполните следующие команды:
sudo usermod -aG adm syslog # Добавляем syslog в группу adm
sudo chmod g+rw /var/log/samba # Права на работу с каталогом
Шаг 4: Перезапуск служб
После внесения всех изменений, перезапустите службы Samba и rsyslog, чтобы новые настройки вступили в силу:
sudo systemctl restart smbd nmbd
sudo systemctl restart rsyslog
Шаг 5: Проверка журналов
Теперь вы можете проверять файл /var/log/samba/log.audit
для просмотра всех действий пользователей. Учтите, что ведение журналов с высокими весами может создавать значительный объем данных, особенно на загруженных серверах.
Заключение
После выполнения всех шагов вы сможете получать логи о действиях пользователей в ваших общих папках Samba. Обязательно следите за размером журналов и при необходимости настраивайте ротацию журналов, чтобы избежать переполнения дискового пространства.