Linux

即時監控 Linux 使用者執行指令的方法

這裡介紹如何在 Linux 系統上以管理者權限即時監控一般使用者所執行的任何指令。

Linux 的 root 管理者可對系統進行任何的管理與操作,如果想要即時監控特定使用者在主機上所執行的指令,可以使用以下介紹的幾種方式。

Bash 歷史指令

目前大部分的 Linux 預設的 shell 都是 bash,而 bash 會將使用者執行過的歷史指令都儲存在 .bash_history 這個檔案中,所以只要查看這個檔案,就可以知道使用者執行了那一些指令:

sudo cat /home/gtwang/.bash_history

不過由於 bash 並不會即時將新的指令寫入 .bash_history,所以這個只能查看使用者過去執行過的指令。

w 指令

w 指令可以列出 Linux 系統上目前有哪些使用者登入,並且顯示每個使用者正在執行的指令。

w
 17:34:23 up 35 min,  2 users,  load average: 0.49, 0.62, 0.77
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
gtwang   tty7     :0               16:58   35:40   2:17   0.12s /sbin/upstart -
gtwang   tty2                      17:33    5.00s  0.10s  0.05s -bash

Sysdig 指令

Sydig 是一個功能強大的系統監控工具,可透過 Linux 系統核心取得即時的資訊,它的使用者監控功能可以顯示每個使用者所執行的指令。

使用前要先安裝,Ubuntu Linux 可用 apt 安裝:

sudo apt-get install sysdig

使用 Sydig 即時監控使用者的任何動作:

sudo sysdig -c spy_users

sysdig 監控使用者

Sysdig 的輸出包含使用者的 shell 行程 ID、執行的指令與執行時間,最重要的是這些訊息都是直接從 Linux 核心模組上取得的,所以非常即時,當使用者一執行新的指令時,我們馬上就可以從 Sysdig 的輸出報表中看到。

參考資料:Tecmint

G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Share
Published by
G. T. Wang
標籤: 指令

Recent Posts

光陽 KYMCO GP 125 機車接電發動、更換電瓶記錄

本篇記錄我的光陽 KYMCO ...

1 年 ago

[開箱] YubiKey 5C NFC 實體金鑰

本篇是 YubiKey 5C ...

2 年 ago

[DIY] 自製竹火把

本篇記錄我拿竹子加上過期的苦茶...

2 年 ago