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第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 # 限制只有wheel組用戶才可以切換到root# auth required /lib/security/pam_wheel.so use_uid chmod -G10 bjecadm 另外,每當用戶試圖使用su命令進入系統用戶時,命令將在/usr/adm/sulog文件中寫一條信息,若該文件記錄了大量試圖用su進入root的無效操作信息,則表明了可能有人企圖破譯root口令。 Linux命令有著強大的功能。對於Linux系統管理員來說,往往只需要通過各種安全命令技巧,組合構成安全防線。從計算機安全的角度看,世界上沒有絕對安全的計算機系統,Linux系統也不例外。