Bạn đã bao giờ cố gắng đóng shell hoặc bỏ mount ổ và gặp lỗi file đang được sử dụng chưa? Hay có lẽ bạn đã cố gắng chỉnh sửa một file và nhận thấy nó bị khóa bởi một chương trình khác?
Có thể bạn đang lo lắng rằng bằng cách nào đó, kẻ xấu đã truy cập trái phép vào hệ thống Linux của bạn. Sử dụng công cụ có tên lsof, bạn có thể xem file nào đang mở, thậm chí qua kết nối mạng.
lsof là gì?
lsof là một tiện ích liệt kê các file đang mở. Victor Abell ban đầu phát triển nó tại Đại học Purdue. Nó có sẵn cho một số triển khai Unix, bao gồm cả Linux. lsof hiện được duy trì bởi nhóm lsof-org trên GitHub. Bạn có thể tham khảo thêm một số cách sử dụng lệnh Isof trên Linux để biết rõ hơn.
Cài đặt lsof trên Linux
Rất có thể bạn đã cài đặt lsof trên hệ thống của mình. Hãy thử gõ lsof tại dòng lệnh. Nếu không, bạn có thể cài đặt nó thông qua trình quản lý gói của bản phân phối.
Trên hệ thống Ubuntu hoặc Debian, hãy nhập:
sudo apt install lsof
Trên các bản phân phối Linux dựa trên Arch:
sudo pacman -S lsof
Và trên RHEL, Rocky Linux và Oracle Linux:
sudo dnf install lsof
Xem file đang mở trên Linux với lsof
Sử dụng lsof rất đơn giản. Bạn chỉ có thể gọi nó tại dòng lệnh để xem bất kỳ file nào đang mở thuộc về bạn:
lsof
lsof có thể liệt kê các tiến trình thuộc quyền root là "Permission denied". Để xem tất cả các file được mở bởi tất cả các tiến trình trên toàn hệ thống, hãy chạy nó dưới dạng root:
sudo lsof
lsof sẽ hiển thị lệnh, PID, người dùng đã gọi nó, trình mô tả file, loại, thiết bị, kích thước, nút và tên đường dẫn tuyệt đối của file đang mở.
Nếu bạn cố gắng bỏ mount một ổ chẳng hạn như ổ quang và gặp lỗi file đang được sử dụng, bạn có thể xem tiến trình nào đang sử dụng file và sau đó thoát hoặc hủy tiến trình đó.
Để xem bất kỳ socket Internet nào hiện đang được sử dụng trên hệ thống của bạn, hãy sử dụng tùy chọn -i:
sudo lsof -i
Bạn có thể phát hiện khả năng xâm nhập nếu bạn nhận thấy điều gì đó đáng ngờ trên hệ thống của mình, nhưng những kẻ tấn công tinh vi hơn có thể che dấu vết của chúng tốt hơn.
Tùy chọn -r đặt lsof vào chế độ repeat, nơi nó sẽ hiển thị kết quả sau một khoảng thời gian nhất định cho đến khi bạn nhấn Ctrl + C. Theo mặc định, nó chạy 15 giây một lần, nhưng bạn có thể thay đổi tùy theo mong muốn. Ví dụ, bạn có thể chạy lệnh sau mỗi 10 giây bằng cách gõ:
lsof -r 10
Cũng như các tiện ích Linux khác, bạn có thể kết hợp lsof với các switch. Giả sử bạn muốn xem kết nối Internet của mình 5 giây một lần. Bạn có thể làm điều đó với lsof bằng cách gõ:
lsof -i -r 5
Với lsof, bạn có thể theo dõi quá trình nào có file đang mở và khắc phục bất kỳ sự cố nào mà chúng có thể gây ra.
Các file mở chỉ là một khía cạnh của những tiến trình Linux. Có rất nhiều cách để quản lý các tiến trình trên Linux. Thật dễ dàng để bắt đầu, dừng và kiểm tra các tiến trình trong Linux để bạn có thể khai thác tối đa hệ thống của mình.