Tìm tệp được tạo bởi một người dùng cụ thể


15

Làm thế nào tôi có thể khám phá tất cả các tệp được tạo bởi một người dùng cụ thể và hiển thị chúng trên màn hình?

Tôi đã bắt đầu một tập lệnh nhắc người dùng hiện tại nhập tên người dùng mà họ muốn xem tất cả các tệp của. Tôi đã nghĩ về việc sử dụng một câu lệnh if xem xét tôi muốn bao gồm kiểm tra lỗi.

echo -e "Option 11: Display all the Files a Particular User Has Created\n\n"
echo -e "Enter Username below\n"
read username

6
findcó một -usertùy chọn để tìm kiếm các tập tin thuộc sở hữu của một người dùng cụ thể. Tuy nhiên, không chắc chắn làm thế nào bạn có thể xác định ai đã tạo một tệp ngoài đó. Quyền sở hữu có thể thay đổi vì vậy tôi không biết nếu đó là điều bạn thực sự muốn.
Bratchley

2
Cách duy nhất tôi thấy để thực hiện điều đó là bằng cách kiểm toán hệ thống tập tin.
BitsOfNix

Câu trả lời:


21

Bạn không thể làm điều đó trên các hệ thống tệp Linux thông thường, vì nó không theo dõi creatortệp, chỉ của chủ sở hữu tệp. Người sáng tạo và chủ sở hữu thường, nhưng không nhất thiết phải giống nhau.

Nếu bạn muốn tìm chủ sở hữu của tệp, bạn có thể, như Bratchley đã chỉ định, sử dụng

find / -type f -user user_name

để tìm những tập tin đó và hiển thị tên

Để hiển thị các tệp bạn sẽ cần một số chương trình có thể hiển thị nội dung cho bất kỳ loại tệp nào bạn có thể tìm thấy theo cách đó. Nếu bạn có một show_filetiện ích như vậy lấy một tên tệp duy nhất làm đối số, bạn có thể làm:

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

0

Sử dụng find:

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

Vì vậy, trong kịch bản của bạn:

echo “Enter Username:”;  
while read -e;do find / -type f -user $REPLY -print 2>/dev/null;done
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.