É certamente possível descobrir a última vez que um arquivo foi acessado a partir de seu atributo 'atime' e há algumas maneiras de fazer isso. Para determinar qual usuário fez isso, é mais complicado e depende do contexto, por exemplo foi acessado via shell? foi acessado através de um aplicativo GUI?
Para ver o tempo de um arquivo, use ls
com a opção -u:
$ ls -lu some_file
Para, por exemplo, localizar todos os arquivos no diretório / home que foram acessados na última hora, você pode usar o comando find
$ sudo find /home/ -amin -60
Você também pode obter informações mais detalhadas sobre um arquivo com o comando stat
:
$ stat some_file
Na verdade, aqui é um link para um script que verifica atime (usando stat
) para arquivos em um diretório especificado.
Ao reler sua pergunta, percebo que você está interessado em 'quantas vezes' um arquivo foi acessado. Não existe um comando específico * nix para determinar esta informação, por isso você terá que verificar o acesso ao arquivo através de um dos métodos mencionados abaixo.
Em relação à sua pergunta sobre como determinar quais usuários acessaram um arquivo, o * nix não registra isso especificamente. A suposição é que os sysadmins controlarão o acesso a arquivos e diretórios por meio de permissões. No entanto, existem algumas opções que você pode tentar:
- use
ps
e fuser
para ver quais usuários estão acessando arquivos no momento
- forçar os usuários a usar
sudo
para acessar arquivos - logs do sudo para o arquivo /var/log/auth.log - embora essa opção possa ser um grande assassino de produtividade (e confiança)
- examine as ACLs do SElinux e o registro em log
- modificar (com aliases) o perfil de shell de todo o sistema ( / etc / profile ) para registrar o tempo e as informações do usuário em um arquivo de log dedicado
- como sugerido em um comentário à sua pergunta, escreva um script de shell para registrar as informações do usuário e do atime e usar esse script para agrupar os aplicativos GUI (isto é, modificar a entrada 'command' no iniciador
Note que para que o atime seja gravado no disco cada vez que um usuário ou processo o acessa, você deve ter a opção atime
incluída na entrada / etc / fstab do sistema de arquivos (discutido aqui )