Найти файлы, созданные конкретным пользователем

15

Как мне найти все файлы, созданные конкретным пользователем, и отобразить их на экране?

Я запустил скрипт, который предлагает текущему пользователю ввести имя пользователя, для которого он хочет просмотреть все файлы. Я подумал об использовании оператора if, учитывая, что хотел бы включить проверку ошибок.

echo -e "Option 11: Display all the Files a Particular User Has Created\n\n"
echo -e "Enter Username below\n"
read username
Натан Рампадо
источник
6
findимеет -userвозможность поиска файлов, принадлежащих конкретному пользователю. Не уверен, как вы сможете определить, кто создал файл, кроме этого. Собственность может измениться, поэтому я не знаю, действительно ли вы этого хотите.
Братчли
2
Единственный способ сделать это - провести аудит файловой системы.
BitsOfNix

Ответы:

22

Вы не можете сделать это на обычных файловых системах Linux, так как он не отслеживает creatorфайл, а только его владельца. Создатель и владелец обычно, но не обязательно совпадают.

Если вы хотите найти владельца файла, вы можете, как указал Братчли, использовать

find / -type f -user user_name

чтобы найти эти файлы и отобразить имена.

Для отображения файлов вам понадобится какая-нибудь программа, которая может показать содержимое для любого типа файла, который вы можете найти таким образом. Если у вас есть такая show_fileутилита, которая принимает одно имя файла в качестве аргумента, вы можете сделать:

find / -type f -user user_name -exec show_file {} \;
Энтон
источник
0

Используйте find:

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

Итак, в вашем сценарии:

echo “Enter Username:”;  
while read -e;do find / -type f -user $REPLY -print 2>/dev/null;done
njboot
источник