Πώς να μάθετε ποιος χρησιμοποιεί ένα αρχείο στο Linux
Σε αυτό το άρθρο, θα εξηγήσουμε πώς μπορείτε να μάθετε ποιος χρησιμοποιεί ένα συγκεκριμένο αρχείο στο Linux. Αυτό θα σας βοηθήσει να γνωρίζετε τον χρήστη του συστήματος ή τη διαδικασία που χρησιμοποιεί ένα ανοιχτό αρχείο.
Μπορούμε να χρησιμοποιήσουμε την εντολή lsof για να γνωρίζουμε αν κάποιος χρησιμοποιεί ένα αρχείο και αν χρησιμοποιεί, ποιος. Διαβάζει τη μνήμη του πυρήνα στην αναζήτησή του για ανοιχτά αρχεία και σας βοηθά να παραθέσετε όλα τα ανοιχτά αρχεία. Σε αυτήν την περίπτωση, ένα ανοιχτό αρχείο μπορεί να είναι ένα κανονικό αρχείο, ένας κατάλογος, ένα ειδικό αρχείο μπλοκ, ένα ειδικό αρχείο χαρακτήρων, μια ροή, ένα αρχείο δικτύου και πολλά άλλα – γιατί στο Linux όλα είναι ένα αρχείο.
Το Lsof χρησιμοποιείται σε ένα σύστημα αρχείων για να προσδιορίσει ποιος χρησιμοποιεί αρχεία σε αυτό το σύστημα αρχείων. Μπορείτε να εκτελέσετε την εντολή lsof στο σύστημα αρχείων Linux και η έξοδος προσδιορίζει τον ιδιοκτήτη και τις πληροφορίες διεργασίας για διεργασίες που χρησιμοποιούν το αρχείο, όπως φαίνεται στην ακόλουθη έξοδο.
lsof /dev/null
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1480 tecmint 0r CHR 1,3 0t0 6 /dev/null
sh 1501 tecmint 0r CHR 1,3 0t0 6 /dev/null
sh 1501 tecmint 1w CHR 1,3 0t0 6 /dev/null
dbus-daem 1530 tecmint 0u CHR 1,3 0t0 6 /dev/null
xfce4-ses 1603 tecmint 0r CHR 1,3 0t0 6 /dev/null
xfce4-ses 1603 tecmint 1w CHR 1,3 0t0 6 /dev/null
at-spi-bu 1604 tecmint 0r CHR 1,3 0t0 6 /dev/null
dbus-daem 1609 tecmint 0u CHR 1,3 0t0 6 /dev/null
at-spi2-r 1611 tecmint 0u CHR 1,3 0t0 6 /dev/null
xfconfd 1615 tecmint 0u CHR 1,3 0t0 6 /dev/null
xfwm4 1624 tecmint 0r CHR 1,3 0t0 6 /dev/null
xfwm4 1624 tecmint 1w CHR 1,3 0t0 6 /dev/null
xfce4-pan 1628 tecmint 0r CHR 1,3 0t0 6 /dev/null
xfce4-pan 1628 tecmint 1w CHR 1,3 0t0 6 /dev/null
Thunar 1630 tecmint 0r CHR 1,3 0t0 6 /dev/null
Thunar 1630 tecmint 1w CHR 1,3 0t0 6 /dev/null
xfdesktop 1632 tecmint 0r CHR 1,3 0t0 6 /dev/null
xfdesktop 1632 tecmint 1w CHR 1,3 0t0 6 /dev/null
....
Για να παραθέσετε ανοιγμένα αρχεία για συγκεκριμένο χρήστη, εκτελέστε την ακόλουθη εντολή αντικαταστήστε το tecmint
με το πραγματικό όνομα χρήστη.
lsof -u tecmint
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1480 tecmint cwd DIR 8,3 4096 2 /
systemd 1480 tecmint rtd DIR 8,3 4096 2 /
systemd 1480 tecmint txt REG 8,3 1595792 3147496 /lib/systemd/systemd
systemd 1480 tecmint mem REG 8,3 1700792 3150525 /lib/x86_64-linux-gnu/libm-2.27.so
systemd 1480 tecmint mem REG 8,3 121016 3146329 /lib/x86_64-linux-gnu/libudev.so.1.6.9
systemd 1480 tecmint mem REG 8,3 84032 3150503 /lib/x86_64-linux-gnu/libgpg-error.so.0.22.0
systemd 1480 tecmint mem REG 8,3 43304 3150514 /lib/x86_64-linux-gnu/libjson-c.so.3.0.1
systemd 1480 tecmint mem REG 8,3 34872 2497970 /usr/lib/x86_64-linux-gnu/libargon2.so.0
systemd 1480 tecmint mem REG 8,3 432640 3150484 /lib/x86_64-linux-gnu/libdevmapper.so.1.02.1
systemd 1480 tecmint mem REG 8,3 18680 3150450 /lib/x86_64-linux-gnu/libattr.so.1.1.0
systemd 1480 tecmint mem REG 8,3 18712 3150465 /lib/x86_64-linux-gnu/libcap-ng.so.0.0.0
systemd 1480 tecmint mem REG 8,3 27112 3150489 /lib/x86_64-linux-gnu/libuuid.so.1.3.0
systemd 1480 tecmint mem REG 8,3 14560 3150485 /lib/x86_64-linux-gnu/libdl-2.27.so
...
Μια άλλη σημαντική χρήση του lsof είναι να μάθετε τη διαδικασία ακρόασης σε μια συγκεκριμένη θύρα. Για παράδειγμα, προσδιορίστε τη διαδικασία ακρόασης στη θύρα 80 χρησιμοποιώντας την ακόλουθη εντολή.
sudo lsof -i TCP:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 903 root 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 1320 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 1481 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 1482 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 1493 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 1763 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 2027 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 2029 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 2044 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 3199 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 3201 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
Σημείωση: Εφόσον το lsof διαβάζει τη μνήμη του πυρήνα στην αναζήτησή του για ανοιχτά αρχεία, οι γρήγορες αλλαγές στη μνήμη του πυρήνα μπορεί να οδηγήσουν σε απρόβλεπτες εξόδους. Αυτό είναι ένα από τα σημαντικότερα μειονεκτήματα της χρήσης της εντολής lsof.
Για περισσότερες πληροφορίες, ανατρέξτε στη σελίδα ανθρώπου lsof:
man lsof
Αυτό είναι όλο! Σε αυτό το άρθρο, εξηγήσαμε πώς να γνωρίζετε ποιος χρησιμοποιεί ένα συγκεκριμένο αρχείο στο Linux. Δείξαμε πώς να αναγνωρίζουμε τον ιδιοκτήτη και τις πληροφορίες επεξεργασίας για διεργασίες χρησιμοποιώντας ένα ανοιχτό αρχείο. Χρησιμοποιήστε την παρακάτω φόρμα σχολίων για να επικοινωνήσετε μαζί μας για τυχόν ερωτήσεις ή σχόλια.