Rechercher des fichiers créés par un utilisateur particulier

15

Comment pourrais-je découvrir tous les fichiers créés par un utilisateur particulier et les afficher à l'écran?

J'ai commencé un script qui invite l'utilisateur actuel à entrer le nom d'utilisateur dont il souhaite voir tous les fichiers. J'ai pensé à utiliser une instruction if, étant donné que j'aimerais inclure la vérification des erreurs.

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
la source
6
finda une -useroption pour rechercher des fichiers appartenant à un utilisateur particulier. Je ne sais pas comment vous pourriez déterminer qui a créé un fichier au-delà de cela, cependant. La propriété peut changer, donc je ne sais pas si c'est ce que vous voulez vraiment.
Bratchley
2
La seule façon que je vois pour effectuer cela est d'avoir l'audit du système de fichiers en place.
BitsOfNix

Réponses:

22

Vous ne pouvez pas faire cela sur les systèmes de fichiers Linux habituels, car il ne garde pas la trace du creatorfichier, seulement du propriétaire du fichier. Le créateur et le propriétaire sont généralement, mais pas nécessairement les mêmes.

Si vous voulez trouver le propriétaire du fichier, vous pouvez, comme l'a indiqué Bratchley, utiliser

find / -type f -user user_name

pour trouver ces fichiers et afficher les noms.

Pour afficher les fichiers, vous auriez besoin d'un programme capable d'afficher le contenu de tout type de fichier que vous pourriez trouver de cette façon. Si vous avez un tel show_fileutilitaire qui prend un seul nom_fichier comme argument, vous pouvez faire:

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

Utilisation find:

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

Donc, dans votre script:

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