此文涉及的命令:&、 jobs、fg、bg、kill、nohup、ps、top、pstree、free、uname、uptime、netstat、dmesg、 vmstat、fuser、lsof、pidof、getenforce、sestatus、setenforce、ps -z、ll -z、chcon、restorecon、setroubleshoot、auditd、seinfo、sesearch、getsebool、 setsebool、semanage。
概念:
什麼是程式 (process)
程式與程序作個總結:
系統或網路服務:常駐在記憶體的程式
什麼是工作管理?
離線管理問題
程式的觀察
如果你發現在某個程式的 cmd 後面還接上 時,就代表該程式是殭屍程式
s:代表這個程式的狀態 (stat),主要的狀態有:
uid/pid/ppid:代表『此程式被該 uid 所擁有/程式的 pid 號碼/此程式的父程式 pid 號碼』
c:代表 cpu 使用率,單位為百分比;
pri/ni:priority/nice 的縮寫,代表此程式被 cpu 所執行的優先順序,數值越小代表該程式越忚被 cpu 執行。
addr/sz/wchan:都與記憶體有關,addr 是 kernel function,指出該程式在記憶體的哪個部分,如果是個 running 的程式,一般就會顯示『 - 』 / sz 代表此程式用掉多少記憶體 / wchan 表示目前程式是否運作中,同樣的, 若為 - 表示正在運作中。
tty:登入者的終端機位置,若為程序登入則使用動態終端介面 (pts/n);
time:使用掉的 cpu 時間,注意,是此程式實際花費 cpu 運作的時間,而不是系統時間;
cmd:就是 command 的縮寫,造成此程式的觸發程式之指令為何。
ps aux 觀察系統所有程式
top: 動態觀察程式的變化
第二行(tasks...):顯示的是目前程式的總量與個別程式在什麼狀態 (running, sleeping, stopped, zombie)。 比較需要注意的是最後的 zombie 那個數值,如果不是 0 !好好看看到底是那個 process 變成殭屍了吧?
第三行(cpus...):顯示的是 cpu 的整體負載,每個專案可使用 ? 查閱。需要特別注意的是 %wa ,那個專案代表的是 i/o wait, 通常你的系統會變慢都是 i/o 產生的問題比較大!因此這裡得要注意這個專案耗用 cpu 的資源喔! 另外,如果是多核心的裝置,可以按下數字鍵『1』來切換成不同 cpu 的負載率。
第四行與第五行:表示目前的物理記憶體與虛擬記憶體 (mem/swap) 的使用情況。 再次重申,要注意的是 swap的使用量要盡量的少!如果 swap 被用的很大量,表示系統的物理記憶體實在不足!
第六行:這個是當在 top 程式當中輸入指令時,顯示狀態的地方
至於 top 下半部分的畫面,則是每個 process 使用的資源情況。比較需要注意的是:
pstree 找程式之間的相關性
程式的管理
killall -signal 指令名稱
關於程式的執行順序
調整程式的nice值
系統資源的觀察
記憶體字段 (procs) 的專案分別為:
記憶體字段 (memory) 專案分別為:
記憶體置換空間 (swap) 的專案分別為:
磁碟讀寫 (io) 的專案分別為:
系統 (system) 的專案分別為:
cpu 的專案分別為:
特殊檔案與程式
具有 suid/sgid 許可權的指令執行狀態
/proc/* 代表的意義
查詢已開啟檔案或已執行程式開啟之檔案
fuser:藉由檔案(或檔案系統)找出正在使用該檔案的程式
lsof :列出被程式所開啟的檔案檔名
pidof :找出某支正在執行的程式的 pid
selinux ------------------------622
委任式詎問控制, mac------可以針對特定的程式與特定的檔案資源來進行許可權的控管!
selinux 的運作模式
主體 (subject):
目標 (object):
政策 (policy):
selinux 支援三種模式,分別如下:
selinux 的配置檔案 /etc/selinux/config
安全性本文 (security context)
角色 (role):
型別 (type) :(最重要!)
domain 需要與 type 搭配,則該程式才能夠順利的讀取檔案資源啦!
domain 需要與 type 搭配,則該程式才能夠順利的讀取檔案資源啦!這個領域中設定了相關規則,能否讀取什麼型別的檔案。最終能否讀取,還是由檔案的許可權rwx決定。
selinux 的啟動與關閉
重設 selinux 安全性本文
預設的安全性本文來還原
安裝相關查詢工具
auditd --> 詳紳資料寫入 /var/log/audit/audit.log ----------需安裝相關工具
selinux 的政策與規則管理
命令:
直接將指令丟到背景中『執行』的 &
將『目前』的工作丟到背景中『暫停』:[ctrl]-z
觀察目前的背景工作狀態: jobs
將背景工作拿到前景來處理:fg
讓工作在背景下的狀態變成運作中: bg
管理背景當中的工作: kill
kill 後面接的數字缺省會是 pid ,如果想要管理 bash 的工作控制,就得要加上 %數字 了。
離線管理問題
程式的觀察
ps :將某個時間點的程式運作情況摘取下來
top:動態觀察程式的變化
pstree 找程式之間的相關性
程式的管理
kill -signal pid
killall -signal 指令名稱------------ps aux 最後一項
調整程式的nice值
renice :已存在程式的 nice 重新調整
系統資源的觀察
free :觀察記憶體使用情況
uptime:觀察系統啟動時間與工作負載
netstat :追蹤網路或socket檔案
dmesg :分析核心產生的訊息
vmstat :偵測系統資源變化
查詢已開啟檔案或已執行程式開啟之檔案
fuser:藉由檔案(或檔案系統)找出正在使用該檔案的程式
lsof :列出被程式所開啟的檔案檔名
例:lsof -u root | grep bash -------秀出屬亍 root 的 bash 這支程式所開啟的檔案
pidof :找出某支正在執行的程式的 pid
selinux
getenforce----------- 檢視當前selinux的模式
sestatus------------- 檢視selinux 的政策
selinux 模式在 enforcing 與 permissive 之間切換:
ps -z-----------檢視程式的安全性文字
ll -z-----------檢視檔案或目錄的安全性屬性
重設 selinux 安全性本文
預設的安全性本文來還原
selinux排錯
auditd --> 詳紳資料寫入 /var/log/audit/audit.log ----------需安裝相關工具
selinux 的政策與規則管理
seinfo [-atrub] ---------------政策查詢
selinux的詳細規則查詢:
布林值的查詢與修改
setsebool [-p] 布林值=[0|1] 0關1開
預設目錄的安全性本文查詢與修改
Linux程式管理
程式 通常以二進位制放置在儲存媒介中,以物理檔案的形式存在 程序 程式被觸發後,執行者的許可權與屬性 程式的 與所需資料都會被載入到記憶體中,作業系統並給與這個記憶體內的乙個單元識別符號 pid 程序就是正在執行中的程式 程序彼此之間具有相關性 觸發任何乙個事件時,系統都會將他定義成為乙個程序,並且...
程式管理與SELinux
1.什麼是程序 程式 通常是二進位制檔案。程序 觸發任何乙個時間 比如乙個命令系統都會將他定義為乙個程序,並且給程序乙個id,稱為pid。可以說程序就是乙個執行中的程式。父程序 ppid 2.工作管理 將任務放在後台處理 cp file1 file2 將任務放在後台處理,螢幕不輸出任何 tar cz...
linux學習筆記 程式管理
程序與程式 程式 通常為二進位制程式放置在儲存媒介中 如硬碟 光碟 軟盤 磁帶等 以物理檔案的形式存在。程序 程式被觸發後,執行者的許可權與屬性 程式的程式 與所需資料等都會被載入到記憶體中,作業系統並給與這個記憶體中的單元乙個識別符號,可以說,程序就是乙個正在執行的程式。子程序與父程序 fork ...