Знайдіть файли, створені певним користувачем


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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.