last login wordpress貴港seo關(guān)鍵詞整站優(yōu)化
16.4.1 具有 SUID/SGID 權(quán)限的指令執(zhí)行狀態(tài)
SUID 的權(quán)限其實(shí)與程序的相關(guān)性非常的大!為什么呢?先來看看 SUID 的程序是如何被一般使用者執(zhí)行,且具有什么特色呢?
SUID 權(quán)限僅對(duì)二進(jìn)制程序(binary program)有效;
執(zhí)行者對(duì)于該程序需要具有 x 的可執(zhí)行權(quán)限;
本權(quán)限僅在執(zhí)行該程序的過程中有效 (run-time);
執(zhí)行者將具有該程序擁有者 (owner) 的權(quán)限。
從上表的結(jié)果我們可以發(fā)現(xiàn),底線的部分是屬于 dmtsai 這個(gè)一般帳號(hào)的權(quán)限,特殊字體的則是 root 的權(quán)限! 但你看到了, passwd 確實(shí)是由 bash 衍生出來的!不過就是權(quán)限不一樣!
16.4.2 /proc/* 代表的意義
之前提到的所謂的程序都是在內(nèi)存當(dāng)中。而內(nèi)存當(dāng)中的數(shù)據(jù)又都是寫入到/proc/* 這個(gè)目錄下的,我們當(dāng)然可以直接觀察 /proc 這個(gè)目錄當(dāng)中的文件。如果你觀察過 /proc 這個(gè)目錄的話,應(yīng)該會(huì)發(fā)現(xiàn)他有點(diǎn)像這樣:
基本上,目前主機(jī)上面的各個(gè)程序的 PID 都是以目錄的型態(tài)存在于 /proc 當(dāng)中。 舉例來說,我們開機(jī)所執(zhí)行的第一支程序 systemd 他的 PID 是 1 , 這個(gè) PID 的所有相關(guān)信息都寫入在/proc/1/* 當(dāng)中!若我們直接觀察 PID 為 1 的數(shù)據(jù)好了,他有點(diǎn)像這樣:
cmdline:這個(gè)程序被啟動(dòng)的指令串;
environ:這個(gè)程序的環(huán)境變量?jī)?nèi)容。
如果你查閱一下 cmdline 的話,就會(huì)發(fā)現(xiàn):
就是這個(gè)指令、選項(xiàng)與參數(shù)啟動(dòng) systemd。如果是針對(duì)整個(gè) Linux 系統(tǒng)相關(guān)的參數(shù)呢?那就是在 /proc 目錄下面的文件。相關(guān)的文件與對(duì)應(yīng)的內(nèi)容是這樣的:
16.4.3. 查詢已打開文件或已執(zhí)行程序打開之文件
fuser:借由文件(或文件系統(tǒng))找出正在使用該文件的程序
有的時(shí)候我想要知道我的程序到底在這次啟動(dòng)過程中打開了多少文件,可以利用 fuser 來觀察。
下面有兩個(gè) PID 分別為 13888, 31743 的程序,該程序?qū)儆?root且指令為 bash 。 比較有趣的是那個(gè) ACCESS 的項(xiàng)目,那個(gè)項(xiàng)目代表的意義為:
c :此程序在當(dāng)前的目錄下(非次目錄);
e :可被觸發(fā)為執(zhí)行狀態(tài);
f :是一個(gè)被打開的文件;
r :代表頂層目錄 (root directory);
F :該文件被打開了,不過在等待回應(yīng)中;
m :可能為分享的動(dòng)態(tài)函數(shù)庫(kù);
通過這個(gè) fuser 我們可以找出使用該文件、目錄的程序,借以觀察。他的重點(diǎn)與 ps, pstree 不同。 fuser 可以讓我們了解到某個(gè)文件 (或文件系統(tǒng)) 目前正在被哪些程序所利用。
lsof :列出被程序所打開的文件文件名
pidof :找出某支正在執(zhí)行的程序的 PID