lsof
關(guān)鍵選項
- 默認(rèn) : 沒有選項,lsof列出活躍進(jìn)程的所有打開文件
- 組合 : 可以將選項組合到一起寺擂,如-abc,但要當(dāng)心哪些選項需要參數(shù)
- -a : 結(jié)果進(jìn)行“與”運算(而不是“或”)
- -l : 在輸出顯示用戶ID而不是用戶名
- -h : 獲得幫助
- -t : 僅獲取進(jìn)程ID
- -U : 獲取UNIX套接口地址
- -F : 格式化輸出結(jié)果,用于其它命令。可以通過多種方式格式化踩娘,如-F pcfn(用于進(jìn)程id刮刑、命令名、文件描述符养渴、文件名雷绢,并以空終止)
獲取網(wǎng)絡(luò)信息
使用 -i
顯示所有連接
# lsof -i
使用 -i 6
僅獲取IPv6流量
# lsof -i 6
僅顯示 TCP
連接(同理可獲得UDP連接)
# lsof -iTCP
使用 -i:port
來顯示與指定端口相關(guān)的網(wǎng)絡(luò)信息
# lsof -i :22
使用 @host
來顯示指定到指定主機的連接
在檢查是否開放連接到網(wǎng)絡(luò)中或互聯(lián)網(wǎng)上某個指定主機的連接時十分有用。
# lsof -i@172.16.12.5
使用 @host:port
顯示基于主機與端口的連接
組合主機與端口的顯示信息理卑。
# lsof -i@172.16.12.5:22
找出監(jiān)聽端口
找出正等候連接的端口翘紊。
# lsof -i -sTCP:LISTEN
# lsof -i | grep -i LISTEN
找出已建立的連接
顯示任何已經(jīng)連接的連接。
# lsof -i -sTCP:ESTABLISHED
# lsof -i | grep -i ESTABLISHED
用戶信息
獲取各種用戶的信息藐唠,以及它們在系統(tǒng)上正干著的事情帆疟,包括它們的網(wǎng)絡(luò)活動、對文件的操作等宇立。
使用-u顯示指定用戶打開了什么
# lsof -u daniel
使用 -u user
來顯示除指定用戶以外的其它所有用戶所做的事情
# lsof -u ^daniel
殺死指定用戶所做的一切事情
消滅指定用戶運行的所有東西
# kill -9 `lsof -t -u daniel`
命令和進(jìn)程
查看指定程序或進(jìn)程由什么啟動踪宠,使用lsof通過名稱或進(jìn)程ID過濾來完成這個任務(wù)
使用 -c
查看指定的命令正在使用的文件和網(wǎng)絡(luò)連接
# lsof -c syslog-ng
使用-p查看指定進(jìn)程ID已打開的內(nèi)容
# lsof -p 10075
-t
選項只返回 PID
# lsof -t -c Mail
文件和目錄
通過查看指定文件或目錄,可以看到系統(tǒng)上所有正與其交互的資源——包括用戶妈嘹、進(jìn)程等柳琢。
顯示與指定目錄交互的所有一切
# lsof /var/log/messages/
顯示與指定文件交互的所有一切
# lsof /home/daniel/firewall_whitelist.txt
高級用法
當(dāng)開始組合查詢時,它就顯示了它強大的功能。
顯示 daniel
連接到 1.1.1.1
所做的一切
# lsof -u daniel -i @1.1.1.1
同時使用 -t
和 -c
選項以給進(jìn)程發(fā)送 HUP
信號
# kill -HUP `lsof -t -c sshd`
lsof +L1
顯示所有打開的鏈接數(shù)小于1的文件
這通常(當(dāng)不總是)表示某個攻擊者正嘗試通過刪除文件入口來隱藏文件內(nèi)容柬脸。
# lsof +L1
顯示某個端口范圍的打開的連接
# lsof -i @fw.google.com:2150=2180