linux 程式管理與SElinux

2021-09-08 12:09:04 字數 3908 閱讀 6751

此文涉及的命令:&、 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 ...