Encontre arquivos criados por um usuário específico

15

Como eu iria descobrir todos os arquivos criados por um usuário em particular e exibi-los na tela?

Eu iniciei um script que solicita ao usuário atual que digite o nome de usuário de quem ele deseja exibir todos os arquivos. Pensei em usar uma instrução if, considerando que gostaria de incluir a verificação de erros.

echo -e "Option 11: Display all the Files a Particular User Has Created\n\n"
echo -e "Enter Username below\n"
read username
Nathan Rampado
fonte
6
findtem uma -useropção para procurar arquivos pertencentes a um usuário específico. Não tenho certeza de como você seria capaz de determinar quem criou um arquivo além disso. A propriedade pode mudar, então não sei se é isso que você realmente quer.
Bratchley
2
A única maneira de ver isso é fazendo a auditoria do sistema de arquivos.
BitsOfNix

Respostas:

21

Você não pode fazer isso nos sistemas de arquivos Linux habituais, pois ele não controla creatoro arquivo, apenas o proprietário do arquivo. O criador e o proprietário são geralmente, mas não necessariamente os mesmos.

Se você deseja encontrar o proprietário do arquivo, pode, como Bratchley indicou, usar

find / -type f -user user_name

para encontrar esses arquivos e exibir os nomes.

Para exibir os arquivos, você precisará de algum programa que possa mostrar o conteúdo para qualquer tipo de arquivo que você possa encontrar dessa maneira. Se você possui um show_fileutilitário que utiliza um único file_name como argumento, pode:

find / -type f -user user_name -exec show_file {} \;
Anthon
fonte
0

Use find:

find / -type f -user “<SHORTUSERNAME>" -print 2>/dev/null

Então, no seu script:

echo “Enter Username:”;  
while read -e;do find / -type f -user $REPLY -print 2>/dev/null;done
njboot
fonte