Думаю, что у каждого админа случается ситуация, когда звонит пользователь и заявляет, что у него “пропал файл”… Понятное дело, что сам он пропасть не может. Поэтому лучше заранее побеспокоиться о логировании действий клиентов Samba сервера, чтобы наверняка знать, кто удалил / переместил / переименовал / изменил файл.В конфигурационном файле smb.conf нам необходимо добавить всего несколько строк. Есть логирование необходимо включить для всех шар, то добавляем это в глобальную секцию:
[global]
...
vfs objects = full_audit
# Audit settings
full_audit:prefix = %u|%I|%m|%S
full_audit:failure = all ; Можно убрать эту опцию, если не нужна
full_audit:success = connect opendir mkdir rmdir open read pread write pwrite rename unlink chmod fchmod chown fchown ftruncate ; Лишнее можно убрать или поставить all
full_audit:facility = local5
full_audit:priority = notice
...
Если же необходимо для конкретной шары, тогда параметр vfs objects вписываем в секцию с шарой, а из глобальной убираем.
Далее необходимо настроить syslog. Установим, если его еще нет.
# apt install rsyslog
Правим конфигурации syslog’a
# vi /etc/rsyslog.d/00-samba-audit.conf
local5.notice /var/log/samba/audit.log
&~
# vi /etc/rsyslog.d/50-default.conf
*.*;local5,auth,authpriv.none -/var/log/syslog
local5.notice /var/log/samba/audit.log
Настроим ротацию логов (зависит от активности на Вашем файловом сервере)
# vi /etc/logrotate.d/samba
/var/log/samba/audit.log {
weekly
missingok
rotate 7
postrotate
/etc/init.d/syslog-ng reload > /dev/null 2>&1 || true
endscript
compress
notifempty
}"
Перезапустим службы
# /etc/init.d/rsyslog restart
# /etc/init.d/smb restart
Теперь можем смотреть, кто и что делает
# tail -f /var/log/samba/audit.log