Znajdź pliki utworzone przez określonego użytkownika

15

Jak powinienem odkryć wszystkie pliki utworzone przez konkretnego użytkownika i wyświetlić je na ekranie?

Uruchomiłem skrypt, który zachęca bieżącego użytkownika do podania nazwy użytkownika, którego chce wyświetlić wszystkie pliki. Zastanawiałem się nad użyciem instrukcji if, biorąc pod uwagę, że chciałbym włączyć sprawdzanie błędów.

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
źródło
6
findma -useropcję wyszukiwania plików należących do konkretnego użytkownika. Nie jestem jednak pewien, jak można ustalić, kto utworzył plik poza tym. Własność może się zmienić, więc nie wiem, czy tego naprawdę chcesz.
Bratchley,
2
Jedyny sposób, jaki widzę w tym zakresie, to przeprowadzenie audytu systemu plików.
BitsOfNix

Odpowiedzi:

22

Nie można tego zrobić w zwykłych systemach plików Linux, ponieważ nie śledzi creatoron pliku, tylko właściciela pliku. Twórca i właściciel są zwykle, ale niekoniecznie tacy sami.

Jeśli chcesz znaleźć właściciela pliku, możesz, jak wskazał Bratchley, użyć

find / -type f -user user_name

znaleźć te pliki i wyświetlić nazwy.

Aby wyświetlić pliki, potrzebujesz programu, który może wyświetlać zawartość dla każdego typu pliku, jaki możesz znaleźć w ten sposób. Jeśli masz takie show_filenarzędzie, które przyjmuje jako argument jedną nazwę pliku, możesz:

find / -type f -user user_name -exec show_file {} \;
Anthon
źródło
0

Użyj find:

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

Zatem w twoim skrypcie:

echo “Enter Username:”;  
while read -e;do find / -type f -user $REPLY -print 2>/dev/null;done
njboot
źródło