Назад | Перейти на главную страницу

Отладка того, как символическая ссылка нарушается в ubuntu?

У меня есть символическая ссылка в форме

ubuntu@platform1:~$ ls -lrt
total 28
drwxr-xr-x  4 ubuntu ubuntu 4096 Mar  2 15:02 deploy
lrwxrwxrwx  1 ubuntu ubuntu   14 May 25 18:27 logs -> /var/log/arkin

Схема диска

ubuntu@platform1:~$ df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/vg-var            853G  3.7G  806G   1% /var
/dev/mapper/vg-var+log         49G  1.1G   45G   3% /var/log
/dev/mapper/vg-var+log+audit   20G   60M   19G   1% /var/log/audit
/dev/mapper/vg-home            30G  6.5G   22G  24% /home

Но много раз я наблюдал, что символическая ссылка меняется на

drwxr-xr-x  6 ubuntu ubuntu 4096 May 31 08:41 logs

Может ли кто-нибудь сообщить мне, есть ли способ включить журналы аудита в папке /home/ubuntu/logs чтобы я мог понять, какая операция разрывает символическую ссылку и создает новую /home/ubuntu/logs или какие-то другие способы отладки этой проблемы?

РЕДАКТИРОВАТЬ

Я выполнил шаги, предложенные в ответе. У меня была следующая символическая ссылка: -

lrwxrwxrwx 1 ubuntu ubuntu 14 Jun 3 07:26 logs -> /var/log/arkin

Добавлено правило ниже в /etc/audit/audit.rules

-a always,exit -F dir=/home/ubuntu/logs -S unlink -S unlinkat -S rename -S renameat -S rmdir -k log_link

Затем перезапустили службу аудита

ubuntu@vrni-platform:~$ sudo service auditd stop
ubuntu@vrni-platform:~$ sudo service auditd start

Выполнил следующую команду

ubuntu@vrni-platform:~$ sudo ln -svf /var/log/arkin /home/ubuntu/logs
'/home/ubuntu/logs/arkin' -> '/var/log/arkin'

Но я не вижу записи аудита

# aureport -k -i | grep log_link

Для аудита вы можете попробовать ниже

$tail -2 /etc/audit/audit.rules 
-a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k delete
-a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k delete

Здесь вы также можете указать каталог

-F dir=<directory or mount point>

Вот описание используемых опций в кадре для более подробной информации, пожалуйста, проверьте http://man7.org/linux/man-pages/man8/auditctl.8.html

 -a [list,action|action,list] 
 -S [Syscall name or number|all]
 -k key Set a filter key on an audit rule.

Еще несколько примеров для разных правил:

## Audit log access
-a always,exit -F dir=/var/log/audit/ -F perm=r -F auid>=1000 -F auid!=unset -F key=access-audit-trail
## Attempts to Alter Process and Session Initiation Information
-a always,exit -F path=/var/run/utmp -F perm=wa -F auid>=1000 -F auid!=unset -F key=session
-a always,exit -F path=/var/log/btmp -F perm=wa -F auid>=1000 -F auid!=unset -F key=session
-a always,exit -F path=/var/log/wtmp -F perm=wa -F auid>=1000 -F auid!=unset -F key=session