Понадобилось мне вести учёт всех операций доступа к расшаренным файлам на Samba сервере. Как оказалось, сделать это очень просто.
Добавляем в конфигурационный файл /etc/samba/smb.conf следующие строки:
[Incoming]
path = /media/disk1/Incoming
vfs objects = full_audit
full_audit:prefix = %u|%I|%m|%s
full_audit:success = open opendir read pwrite unlink
full_audit:failure = all
full_audit:facility = LOCAL7
full_audit:priority = ALERT
Эта конструкция будет записывать в лог операции открытия файла, открытия каталогов, чтения, удаления и записи файлов.
Теперь нужно добавить в файл /etc/rsyslog.conf строчку:
local7.* /var/log/samba/audit.log
Рестарт samba и rsyslogd:
warehouse:~# /etc/init.d/samba restart && /etc/init.d/rsyslogd restart
Вуаля — в файле /var/log/samba/audit.log будут появляться логи операций. Полный список переменных в full_audit:prefix можно посмотреть здесь . Список доступных к логированию операций — тут .