Como as alterações de auditoria no dir via symlink?

1

O uso do sistema auditd para assistir a um diretório por meio de um symlink dificilmente aciona qualquer registro. Aqui está a situação:

# pwd
/home/root/serverfault

# ls -l 
total 4
drwxr-xr-x 2 root root 4096 Sep  1 15:12 dir
lrwxrwxrwx 1 root root    3 Sep  1 15:12 p -> dir

# auditctl -w /home/root/serverfault/p -p rwxa -k PX

Tive a impressão ingênua de que, sempre que eu lesse / escrevesse um arquivo dentro do diretório /home/root/serverfault/p , os registros apareceriam em /var/log/audit/audit.log . Mas eles não fazem isso.

Além disso, não há log de auditoria se eu o fizer:

# echo hello > /home/root/serverfault/p/hello.txt

Eu fiz algumas experiências usando strace para executar ls em alguns diretórios e avaliei os resultados com as informações na página auditctl(8) man. Uma linha interessante de strace output que me faz pensar que os logs de auditoria deveriam ter sido gerados é:

open("/home/root/serverfault/p/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3

Pode não ser porque open(2) segue os links simbólicos por padrão. Os logs são gerados somente quando a execução de ls no diretório pai ( /home/root/serverfault em nosso caso) do caminho (argumento dado à -w switch em auditctl ) está sendo assistida.

Eu percebo que /home/root/serverfault/p não é realmente um diretório, mas um symlink. Mas as ligações simbólicas não deveriam ser usadas de forma que elas parecessem não existir? No geral, parece que as alterações no diretório de auditoria por meio de um link simbólico não devem ser feitas. Este é realmente o caso?

    
por pdp 01.09.2015 / 17:52

1 resposta

1

Hmm,

   -w path
          Insert  a  watch  for the file system object at path. You cannot
          insert a watch to the top level directory. This is prohibited by
          the kernel. Wildcards are not supported either and will generate
          a warning. The way that watches work is by  tracking  the  inode
          internally.

Não há alterações ocorrendo no inode do arquivo de link simbólico, já que isso é meramente um arquivo que aponta para outro lugar. Adicione o relógio ao diretório para o qual o link simbólico aponta, ou experimente com as opções relacionadas -F path , mas, novamente, não há mudanças acontecendo com o inode do symlink.

    
por 01.09.2015 / 19:29

Tags