[英]Detect use of su command in bash
我想知道一旦有人嘗試使用su -
, su
或su root
,是否仍然可以發送郵件。 我知道mail命令,並且我正在嘗試編寫腳本,但是我很困惑
.bashrc
還是/etc/process
su
調用郵件 我已經嘗試了通常的Google搜索等,但是獲得了有關su
用法,禁用它,保護ssh等的鏈接-沒有一個回答了這個問題。
提前致謝
我想您的基本要求是您擁有一群擁有root特權的人,但您並不完全信任他們,因此您要關注他們。 您的解決方案是在成為根用戶時讓自己發送郵件。
該解決方案的問題在於,root用戶具有無限的特權,因此沒有什么可以阻止他們抵消這種機制。 例如,他們可以在一個會話中編輯/etc/login.defs文件,做您想讓他們做的好事,然后稍后扎根並做您擔心的壞事,然后在該會議結束時,將/etc/login.defs文件編輯回其原始狀態,您再也不明智了。 另外,他們可以只復制/ usr / bin / bash並將其復制為suid文件,以便在運行它們時賦予他們特權。
您也許可以關閉我剛剛建議的任何漏洞,但還會有很多很多。 因此,您要么信任他們,要么根本不使用su,並授予他們sudo權限,使其僅運行他們需要執行的命令。
根據su的手冊頁,在/etc/login.defs中,您可以設置SULOG_FILE file
或SYSLOG_SU_ENABLE yes
來記錄所有su活動。 然后,您只需要諸如inotifywait之類的功能即可監視日志文件中的su事件。
有一個名為/var/log/secure
的日志文件,該文件在執行su
會收到一個條目。 它也會在其他條件下獲得條目。 《 Linux管理員的安全性指南》中對此進行了描述。
如果用戶“ fred”執行su -
,則會出現一個類似於以下內容的條目:
Jul 27 08:57:41 MyPC su: pam_unix(su-l:session): session opened for user root by fred(uid=500)
su
或su root
將出現類似的條目。
因此,您可以設置一個腳本來監視/var/log/secure
,如下所示:
#!/bin/sh
while inotifywait -e modify /var/log/secure; do
if tail -n1 /var/log/secure | grep " su: "; then
tail -n1 /var/log/secure | grep " su: " | mail -s "su occurred" you@email.com
fi
done
請注意,您需要安裝inotify-tool
軟件包才能使用inotifywait
。
如果此腳本在后台運行,則you@email.com
出現su
條目,它都應將電子郵件發送至you@email.com
。
現在在哪里運行腳本。 一種方法是將其放入可執行腳本文件(例如watchsu
),然后從rc.local
文件中調用它:
nohup /path/to/watchsu 2>&1 &
我敢肯定還有其他想法從哪里開始。 我不熟悉CentOS。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.