Linux安全Linux命令
4.說明
chown將指定文件的擁有者改為指定的用戶或組,用戶可以是用戶名或用戶ID;組可以是組名或組ID;文件是以空格分開的要改變權限的文件列表,支持通配符。系統管理員經常使用chown命令,在將文件拷貝到另一個用戶的目錄下以後,讓用戶擁有使用該文件的權限。
5.應用實例
1.把文件shiyan.c的所有者改為wan
$ chown wan shiyan.c
2.把目錄/hi及其下的所有文件和子目錄的屬主改成wan,屬組改成users。
$ chown - R wan.users /hi
chattr 1.作用
修改ext2和ext3文件系統屬性(attribute),使用權限超級用戶。
2.格式
chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目錄
3.主要參數
-R:遞歸處理所有的文件及子目錄。
-V:詳細顯示修改內容,並打印輸出。
-:失效屬性。
+:激活屬性。
= :指定屬性。
A:Atime,告訴系統不要修改對這個文件的最後訪問時間。
S:Sync,一旦應用程序對這個文件執行了寫操作,使系統立刻把修改的結果寫到磁盤。
a:Append Only,系統只允許在這個文件之後追加數據,不允許任何進程覆蓋或截斷這個文件。如果目錄具有這個屬性,系統將只允許在這個目錄下建立和修改文件,而不允許刪除任何文件。
i:Immutable,系統不允許對這個文件進行任何的修改。如果目錄具有這個屬性,那麼任何的進程只能修改目錄之下的文件,不允許建立和刪除文件。
D:檢查壓縮文件中的錯誤。
d:No dump,在進行文件系統備份時,dump程序將忽略這個文件。
C:Compress,系統以透明的方式壓縮這個文件。從這個文件讀取時,返回的是解壓之後的數據;而向這個文件中寫入數據時,數據首先被壓縮之後才寫入磁盤。
:Secure Delete,讓系統在刪除這個文件時,使用0填充文件所在的區域。
u:Undelete,當一個應用程序請求刪除這個文件,系統會保留其數據塊以便以後能夠恢復刪除這個文件。
4.說明
chattr命令的作用很大,其中一些功能是由Linux內核版本來支持的,如果Linux內核版本低於2.2,那麼許多功能不能實現。同樣-D檢查壓縮文件中的錯誤的功能,需要2.5.19以上內核才能支持。另外,通過chattr命令修改屬性能夠提高系統的安全性,但是它並不適合所有的目錄。chattr命令不能保護/、/dev、/tmp、/var目錄。
5.應用實例
1.恢復/root目錄,即子目錄的所有文件
# chattr -R +u/root
2.用chattr命令防止系統中某個關鍵文件被修改
在Linux下,有些配置文件(passwd ,fatab)是不允許任何人修改的,為了防止被誤刪除或修改,可以設定該文件的“不可修改位(immutable)”,命令如下:
# chattr +i /etc/fstab
sudo 1.作用
udo是一種以限制配置文件中的命令為基礎,在有限時間內給用戶使用,並且記錄到日志中的命令,權限是所有用戶。
2.格式
sudo [-bhHpV] [-s
] [-u <用戶>] [指令]
sudo [-klv]
3.主要參數
-b:在後台執行命令。
-h:顯示幫助。
-H:將HOME環境變量設為新身份的HOME環境變量。
-k:結束密碼的有效期,即下次將需要輸入密碼。
-l:列出當前用戶可以使用的命令。
-p:改變詢問密碼的提示符號。
-s :執行指定的Shell。
-u <用戶>:以指定的用戶為新身份,不使用時默認為root。
-v:延長密碼有效期5分鐘。
4.說明
udo命令的配置在/etc/sudoers文件中。當用戶使用sudo時,需要輸入口令以驗證使用者身份。隨後的一段時間內可以使用定義好的命令,當使用配置文件中沒有的命令時,將會有報警的記錄。sudo是系統管理員用來允許某些用戶以root身份運行部分/全部系統命令的程序。一個明顯的用途是增強了站點的安全性,如果需要每天以超級用戶的身份做一些日常工作,經常執行一些固定的幾個只有超級用戶身份才能執行的命令,那麼用sudo是非常適合的。
ps
1.作用
顯示瞬間進程 (process) 的動態,使用權限是所有使用者。
2.格式
[options] [--help]
3.主要參數
的參數非常多, 此出僅列出幾個常用的參數。
-A:列出所有的進程。
-l:顯示長列表。
-m:顯示內存信息。
-w:顯示加寬可以顯示較多的信息。
-e:顯示所有進程。
a:顯示終端上的所有進程,包括其它用戶的進程。
-au:顯示較詳細的信息。
-aux:顯示所有包含其它使用者的進程。
4.說明
要對進程進行監測和控制,首先要了解當前進程的情況,也就是需要查看當前進程。ps命令就是最基本、也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行、運行的狀態、進程是否結束、進程有沒有僵屍、哪些進程占用了過多的資源等。圖2給出了ps-aux命令詳解。大部分信息都可以通過執行該命令得到。最常用的三個參數是u、a、x。下面就結合這三個參數詳細說明ps命令的作用:ps aux
圖2 ps-aux命令詳解
圖2第2行代碼中,USER表示進程擁有者;PID表示進程標示符;%CPU表示占用的CPU使用率;%MEM占用的物理內存使用率;VSZ表示占用的虛擬內存大小;RSS為進程占用的物理內存值;TTY為終端的次要裝置號碼。
STAT表示進程的狀態,其中D為不可中斷的靜止(I/O動作);R正在執行中;S靜止狀態;T暫停執行;Z不存在,但暫時無法消除;W沒有足夠的內存分頁可分配;高優先序的進程;N低優先序的進程;L有內存分頁分配並鎖在內存體內 (實時系統或 I/O)。START為進程開始時間。TIME為執行的時間。COMMAND是所執行的指令。
4.應用實例
在進行系統維護時,經常會出現內存使用量驚人,而又不知道是哪一個進程占用了大量進程的情況。除了可以使用top命令查看內存使用情況之外,還可以使用下面的命令:
aux | sort +5n
who
1.作用
who顯示系統中有哪些用戶登陸系統,顯示的資料包含了使用者ID、使用的登陸終端、上線時間、呆滯時間、CPU占用,以及做了些什麼。 使用權限為所有用戶。
2.格式
who - [husfV] [user]
3.主要參數
-h:不要顯示標題列。
-u:不要顯示使用者的動作/工作。
-s:使用簡短的格式來顯示。
-f:不要顯示使用者的上線位置。
-V:顯示程序版本。
4.說明
該命令主要用於查看當前在線上的用戶情況。如果用戶想和其它用戶建立即時通信,比如使用talk命令,那麼首先要確定的就是該用戶確實在線上,不然talk進程就無法建立起來。又如,系統管理員希望監視每個登錄的用戶此時此刻的所作所為,也要使用who命令。who命令應用起來非常簡單,可以比較准確地掌握用戶的情況,所以使用非常廣泛。
動手練習
1.使用Linux命令檢測系統入侵者
安裝過Mandrake Linux和Red Hat Linux的用戶都會知道,Linux系統會內置三種不同級別(標准、高、更高)的防火牆,當進行了Linux服務器的安裝和一些基本的設置後,服務器應該說是比較安全的,但是也會有黑客通過各種方法利用系統管理員的疏忽侵入系統。如何快速查找黑客非常重要。一般來說,可以使用命令查詢黑客是否入侵,見表1。
表1 查詢黑客入侵現象的命令對應表
舉例說明,如果黑客嗅探網絡,那麼它必須使網卡接口處於混雜模式,使用下面命令進行查詢:
#ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:00:E8:A0:25:86
inet addr:192.168.1.7 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISCUOUS MTU:1500 Metric:1
......
從這個命令的輸出中,可以看到上面講到的這些概念。第一行的00:00:E8:A0:25:86是mac地址,第二行的192.168.1.7是IP地址,第四行講的是接收數據狀態,這時正在被黑客嗅探。一般而言,網卡有幾種接收數據幀的狀態,如Broadcast、Multicast、Promiscuous等。Broadcast是指接收所有類型為廣播報文的數據幀;Multicast是指接收特定的組播報文;Promiscuous則是通常說的混雜模式,是指對報文中的目的硬件地址不加任何檢查、全部接收的工作模式。
2.限制su命令的濫用
我們知道,超級用戶在Linux中有最大的權利,幾乎所有黑客都想得到這個目標。Linux可以增加對切換到超級用戶的限制。使用PAM(Pluggable Authentication Modules)可以禁止除在wheel組以外的任何人su成root,修改/etc/pam.d/su文件,除去屏蔽標識#。使用/usr/sbin/usermod G10 bjecadm將bjecadm這個賬號加入gid為10的組,就是wheel組。命令如下:
/etc/pam.d/su # 使用密碼驗證#
auth sufficient /lib/security/pam_wheel.so debug