2006-01-12, 01:52 PM | #1 |
榮譽會員
|
RedHat伺服器組態完美教學
第一章 基本要求
第一節 基礎知識 linux和unix都是通過一系列的文本文件來進行管理。Linux系統管理員通常不使用圖形編輯器來管理這些組態文件。各種流行的編輯器的格式例如: word、startoffice等等,linux都無法識別。Linux常用的文本編輯器有這麼幾種:vi、pico、joe、emacs。儘管 emacs可能是linux世界最流行的編輯器,但是系統管理員仍然必須懂得vi的基本使用。Emacs更加靈活更加流行,vi可以說明 你恢復系統。如果你要使用緊急起始碟來恢復一個重要的文件,vi是唯一可用的編輯器。 實際上,RHEL 3 使用增強版本的vi,即vim.它增加了顏色來對重要的文件進行區分。所有的vi 指令都是在vim編輯器,你可以通過在vim編輯其中使用:nohl指令來去掉顏色,這並不會對你管理系統帶來任何影響。 Vi的基本用法:vi filename 基本指令:i 插入 o 插入新行 :w儲存 :q結束 :wq!儲存並強制結束 :q!不儲存強行結束 練習1:使用vi來增加新用戶 1、#vi /etc/passwd,使用指令yy拷貝當前行,使用指令p複製出一新行,然後修改。改變用戶名,用戶id用戶組id,以及home目錄。更改完成後使用指令:wq!儲存結束。 2、更改新用戶的密碼:passwd username 3、建立用戶的主目錄:mkdir /home/username 第二節 文件系統的層次結構 linux中的任何事情都可以歸結為一個文件。分區和文件系統設備節點關聯,例如:/dev/hda1。硬體元件對應於節點文件如:/dev/modem。檢測到的設備在/proc目錄中存檔。FHS是用來組織linux和unix文件的方法。 基本文件系統層次結構: / 根目錄,linux的最進階目錄 /bin 基本的指令行工具,不應該單獨掛接。 /boot 啟始目錄,包含linux的啟動檔案,其中有linux內核。預設大小 為100M /dev 所有軟硬體設備的驅動,不要將此目錄單獨掛接在一個分區上 /etc 存放大多數的基本組態文件 /home 存放大多數用戶的主目錄 /lib 內核程序庫以及各種指令行工具。不要將此目錄掛接在單獨的分區上 /mnt 可移動設備的掛接點,包括軟碟,光碟等 /opt 存放應用程式,如wordperfect、openoffice套件等 /proc 當前執行的和內核相關的工作,包括IRQ ports,I/O位址,DMA通道 /root root用戶的主目錄 /sbin 系統管理指令,不要單獨掛接 /tmp 臨時資料夾 /usr 對所有用戶可用的小程序,包括一些系統管理指令和功能 /var 可變的資料包括日誌文件,列印池 文件系統的格式及檢驗 用來對不同的文件系統進行管理的工具有如下幾種:fdisk、mkfs、fsck fdisk:該指令功能強大,但使用該指令,你必須知道你需要對那個硬碟進行更改,即必須指定對應的設備。如果你要管理第一個scsi硬碟輸入如下指令:fdisk /dev/sda fdisk指令:a 指定啟始分區 l 列出已知分區的檔案類型 n 增加新的分區 q不儲存結束 t 改變分區的文件系統 mkfs:格式化一個linux文件系統,使用mkfs指令,例如: mkfs –t ext3 /dev/hda1 fsck:磁牒檢查指令,類似於windows 2000的chkdsk,使用該指令之前應將所要檢查的磁牒卸載,例如要檢查掛接在/var目錄下的hda7分區:#umount /var #fsck –t ext3 /dev/hda7 #mount /dev/hda7 /var 練習:新增新的lvm分區 1、 增加一個新的硬碟 2、 新增了一個新的分區,使用fdisk工具將該分區設為lvm文件系統。 3、 制作備份/home目錄 4、 使用vgscan指令,掃瞄lvm文件系統,為其他的lvm指令新增資料庫 5、 使用pvcresate /dev/partition新增磁碟區 6、 使用vgcreate groupname /dev/partition1 /dev/partition2指令新增磁碟區組 7、 使用lvcreate –L –xyM –n volname groupname groupname新增邏輯磁碟區,xy是磁碟區的大小。 8、 最後使用mkfs指令來格式化邏輯磁碟區 9、 將邏輯磁碟區掛接在/home目錄下,修改/etc/fstab使得系統自動掛載/home目錄 第三節 基本指令工具 作為unix的變體,linux用不同的程式碼實現了和unix相同的功能。這兩種系統都是關於指令行的,使用指令來對系統進行維護 基本文件*作 每一個用戶都會有一個主目錄,~表示用戶的主目錄。 路徑:分為絕對路徑和相對路徑,以/目錄開始的路徑表示絕對路徑,相對於當前目錄的路徑是相對路徑。 顯示當前所處目錄:pwd指令顯示尼當前相對於根目錄的路徑。 進入其他目錄:cd 使用指令cd可以進入其他的目錄,例如:cd /boot 顯示目錄中的文件和子目錄:ls 搜尋:find,例如搜尋文件qq find / -name 顯示文件內容:cat filename、less filename、more filename head:顯示文件的前n行 tail: 顯示文件的後n行 cp:拷貝文件 mv:移動文件 ln:新增符號連接文件 sort:排序指令,例如:sort /etc/passwd grep and egrep:搜尋文件,例如:grep 『zhao』 /etc/passwd wc:對文本文件進行統計,得出其中的字元數、行數等訊息 sed:用於取代文件中指定的字元,例如:使用linux取代windows sed 『s/windows/linux』 filename > newfile 取代第一個符合的項 sed 『s/windows/linux』 filename >newfile 取代所有符合的項 awk:資料庫管理指令,可以讀出指定的列從某行,例:找出含有zhao 的行 awk 『/zhao/ {print $1}』 /etc/passwd ps:顯示現用的工作 who and w:顯示當前登入的用戶,可以看到誰登入在那個終端上,登入的時間執行的工作 萬用字元:*可以匹配任意字元 ?可以匹配任意單字元 [] 例:ls abc[123],若文件存在則顯示abc1、abc2、abc3 shells shell是一種用戶界面,你可以通過shell使用各種各樣的指令來和計 算機進行交互,通過正確的權限,你可以把指令方在指令碼文 件中在指定的時間執行,甚至是在深夜。Linux執行指令的 順序,取決於你對每個指令的輸入於輸出的安排。 在各種shell中指令的執行方式很大程度上取決於該指令的參數和選項。部分變數對於各種shell是通用的。 linux預設的shell是bash,在用戶中流行的其它很多shell也是可用的,如:c shell、k shell 增加path到自己的路徑: #PATH=$PATH:/sbin #export PATH 檢視自己現用的path: #echo $PATH 檢視文本文件的內容: #cat filename 重轉發IP把一個文件的輸出作為另外一個的輸入,例: #database filenam把輸出結果重轉發IP到文件filename #cat /etc/group >>filename 將輸出的內容追加到filename 檢視啟動訊息: #dmesg | less :分平顯示啟動日誌 重轉發IP錯誤訊息: #redhat-config-network 2>error 如果執行正常則無輸出,若有錯誤則將錯誤訊息重轉發IP到文件error 第四節 基本安全 linux的安全性是關於文件的權限管理。預設的權限通過umask變數來進行設定。Suid和sgid權限賦予每一個指定的文件。對權限和屬主進行更改分別使用指令:chmod chown chgrp umask: 用於設定預設的文件權限,例:umask=123,則預設的權限為777-123=654,但實際上不論umask的最後一位是什麼,預設的權限最後一位一定是0,即不具有可執行權限。 Suid and sgid: 為了防止賦予每一個用戶完全的權限導致的潛在的威脅,可以設定suid和sgid來減小風險,詳情件後續章節 shadow passwords 檢視/etc/passwd文件的時候,你會發現有這麼一列:x.舊版本的linux在這個位置將密碼加密。由於/etc/passwd對所有的用戶都是可以訪問的,所以就會有黑客將這個檔案拷貝之後進行破解以次得到該電腦的密碼。這個問題導致了shadow passwords suite的出現。 Shadow password suite Shadow password suite為密碼提供了更進一步的保護,它把加密後的密碼存放在shadow文件中(/etc/shadow、/etc/gshadow)。此文件只有root用戶可以讀取。 Shadow password command Pwconv: 將/etc/passwd轉化為/etc/shadow Pwunconv:將/etc/shadow轉化為/etc/passwd Grpconv:將/etc/group轉化為/etc/gshadow Grpunconv:將/etc/gshadow轉化為/etc/group 第五節 系統管理 大多數管理工作需要root或者超級用戶權限。你應該已經對一部分基本的linux系統管理指令和文件非常熟悉。標準用戶文件儲存於在/etc/skel文件中。守護工作在後台執行並且執行各種不同的服務。Cron是一種特殊的守護工作,它可以在指定的場合執行指定的指令碼文件。對於午夜執行的制作備份工作,這項功能非常有用。 總體來說,作為系統管理員可以執行普通用戶的任何工作。僅僅當需要的時候才使用超級用戶是一個很好的主意。好的系統管理員再工作完成以後會返回普通用戶的身份。管理員的錯誤可能會給系統帶來很大的傷害。 Su :superuser指令,su –c 只對一個特定的指令設定根用戶權限。 Su – root:切換到根用戶 Sudo:該指令允許/etc/sudoers種的用戶執行管理員的指令 /etc/skel:對個體用戶可用的組態文件存在於/etc/skel/目錄中 tar czvf home.tar.gz /home 制作備份/home目錄為home.tar.gz tar xzvf home.tar.gz /home 將home.tar.gz 解壓縮 gzip hello.jpg 壓縮hello.jpg文件 gunzip hello.jpg.zip 解壓縮hello.jpg.zip 第六節 tcp/ip基礎知識 tcp/ip是分層組織的一系列傳輸協定,稱之為傳輸協定族。它是從unix上發展而來最終成為英特網上的通信標準。你可以使用ip位址來組織你的網路。有一系列的工具可以說明 你來組態你的網路。 基本工具: ping:用來測試網路連接是否有故障。例:ping 127.0.0.1 ifconfig:最重要的網路組態指令,例:ifconfig eth0 192.168.0.1 netmask 255.255.255.0 分配ip位址。Ifconfig eth1 irq 10 分配中斷號。Ifconfig eth0 up/down啟用或停止指定的網路卡 netstat:檢視和網路相關的訊息,例:netstat –r 檢視路由表 /etc/hosts: ip位址和主機名的對應表 /etc/resolv.conf: 該檔案指定了網域名服務器 /etc/host.conf: 該檔案指定了以何種順序查詢主機名 第七節 基礎硬體知識 redhat雖然可以套用於各種硬體平台,諸如:alpha、itanium、s/390,但RHCE和RHCT考試是關於intel32位架構的電腦的。Pc機的架構決定了它所使用的元件和它可以使用的設備。所有的軟體都是為特定架構的電腦寫出來的。但並不是所有關於intel的軟體都可以執行在 linux的電腦上。因此我們有必要瞭解基本的intel電腦的架構。 IRQ Settings Irq是由外圍設備傳送給處理器要求處理時間的信號。連線到電腦的每一個設備都需要一個irq連接阜。正常情況下,每一個設備需要一個專用的irq。 Intel架構的電腦只有十六個irq(0-15),現在這些irq連接阜號常常會顯得不夠用。通過共享連接阜號可以支持更多的設備。2000年以後生產的電腦大多都支持該功能。可以共享irq的主要是Pci、usb接頭的設備。 DMA: Dma設備之間可以直接通信而不經過cpu,但是dma設備仍然需要irq連接阜號,以共有八個標準dma通道(0-7),其中dma4屬於保留號碼,不能用於任何設備。 記憶體需求 對於as3.0最少需要256m記憶體,實際上我的記憶體少於256執行的也還算正常,只是慢了點。系統所需的最大記憶體是你同時執行所有程式所需要的記憶體容量,這難於計算,所以你應該盡量購買大一點的記憶體,這樣可以讓你的系統執行的更好。As3.0支持的最大記憶體是64g。如果你的記憶體大於16g,你需要安裝hugemenm內核,詳情容後介紹。 關於硬碟: 在你的電腦將linux載如系統之前,bios一定要能夠認出包含啟始文件的主分區。這樣硬碟上的linux才能啟動,你應該知道下面這些關於硬碟的知識。 標準intel架構支持4個ide硬碟 最多支持31一個不通的scsi硬碟 linux可以安裝在前兩個硬碟上,否則你就需要一張啟動軟碟來啟始系統了 儘管你可以使用usb硬碟或1394硬碟但是你不應該將系統安裝在這兩種設備上,因為既不能從這兩種硬碟啟始,也不能使用軟碟來啟始著兩種硬碟上的系統。 |
__________________ |
|
送花文章: 3,
|
2006-01-12, 01:54 PM | #2 (permalink) |
榮譽會員
|
第二章 磁牒管理
第一節 磁牒分區 磁牒使用之前必須進行格式化成某種格式才能夠使用,linux支持多種文件系統。每一個硬碟最多可以劃分為16個分區。 磁牒分區:推薦使用fdisk。舉例說明: #fdisk /dev/hda hda指第一塊ide硬碟,scsi硬碟為sda或sdb等 command(m for help): n增加磁牒分區 command action e extended p primary partition (1-4) p 增加主分區 Partition number (1-4):1 First cylinder (1-512, default 1): Using default value 1 Last cylinder or +size or +sizeM +sizeK(1-512,default512):+200M Command (m for help) 檢視當前磁牒訊息 Device Boot Start End Blocks Id System /dev/sdb1 1 192 196592 83 Linux Command (m for help):w 儲存結束 Mount:顯示當前掛接的目錄 Df:檢視磁牒訊息 Du: 檢視資料夾的空間使用效率 磁牒格式化:mkfs ,例:格式化/dev/sda1: mkfs –t ext3 /dev/sda1 第二節 增強磁牒空間 現有的磁牒的空間可能會隨著時間的增長而變得越來越不夠用。在這種情況下就需要增加新的磁牒來對原先的硬碟進行增強。方法如下: 1、 將新的硬碟接好,進入系統後使用fdisk進行分區,然後格式化。 2、 建立一個空目錄,例如:mkdir /mnt/newdisk. 3、 掛接新的硬碟到新增的空目錄:mount /dev/sda1 /mnt/newdisk 4、 修改/etc/fstab使該分區自動掛載 第三節 邏輯磁碟區管理(lvm) 磁牒上的某一個目錄儲存於的文件增長迅速空間日漸不夠使用 這時候你可以使用lvm來解決這個問題。實現方法如下:假設要增加/home目錄的空間。 1、 增加新的硬碟,分區、格式化,假定要增加的新的分區為/dev/sdb2,/home目錄的分區為:/dev/sda7 2、 制作備份/home資料夾的內容 3、 #umount home 4、 #vgscan 進行掃瞄並新增相關的文件 5、 #pvcreate /dev/sda7 /dev/sdb2 新增物理磁碟區 6、 #vgcreate vgtest /dev/sda7 /dev/sdb2 新增磁碟區組 7、 #lvcreate vgtest –L 2000M –nlvtest 8、 #mkfs –t ext3 /dev/vgtest/lvtest 9、 #mount /dev/vgtest/lvtest /home 10、 #vi /etc/fstab,移除和home 相關的行,並增加如下行:/dev/vgtest/lvtest /home ext3 defaults 0 0 11、 #reboot 第四節 磁牒陣列 磁牒陣列可以有效的提高資料的讀寫速度和資料的可靠性。具體分類如下:raid 0、raid 1、raid 2、raid 3、raid 4、raid5其中常用的是:raid 0、raid 1、raid 5,簡介如下: raid 0:使用兩張硬碟,資料分別存放在兩張硬碟上,讀寫速度較快,但不提供資料冗余。 Raid 1: 也稱為磁牒映射,在兩張硬碟上同時儲存於完全相同的 資料,寫入速度一般,但讀取速度增加一倍。任意 一塊硬碟損壞不會對資料造成損害。 Raid 5: 也稱為帶奇偶校驗的磁牒條帶化,最少需要3塊硬 盤,最多支持32塊硬碟,可用磁牒數量為n –1塊硬 盤。讀取速度和寫入速度都有一定程度的提高。為 最常用的陣列形式。 實現方法:假定增加了四塊硬碟到電腦,分別為/dev/sdb、 /dev/sdc、/dev/sdd、/dev/sde,實現步驟如下: 1、 分別進行分區格式化 2、 更改分區檔案類型:fdisk /dev/sdb1 t fd p w 對每一塊硬碟進行如上*作,把分區檔案類型 改為raid 3、 新增/etc/raitab #vi /etc/raidtab如下內容: raiddev /dev/md0 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 persistent-superblock 1 chunk-size 4 device /dev/sdb1 raid-disk 0 device dev/sdc1 raid-disk 1 儲存結束。 #mkdir /dev/md0 新增陣列md0 #mkfs -t ext3 /dev/md0 對陣列進行格式化 第五節 增加交換分區 #mkswap /dev/sdb1 新增交換分區 #swapon /dev/sdb1 開啟新增的交換分區 #cat /proc/swaps 檢視現用的交換分區 第六節 增加交換文件 #dd if=/dev/zero of=/swapfile bs=1024 count=8192 #mkswap /swapfile #swapon /swapfile 交換文件最多8個,每個最大容量為16M 第七節 讀取windows的文件 #mkdir /mnt/windows 建立一個空目錄 #mount –t vfat /dev/hda4 /mnt/windows 掛接windows 的fat分區 #mount –t ntfs /dev/hda5 /mnt/windows 掛接ntfs分區,linux內和預設不支持ntfs分區,要讓linux識別ntfs分區必須要重 新編譯內核加入對ntfs的支持。 |
送花文章: 3,
|
2006-01-12, 01:55 PM | #3 (permalink) |
榮譽會員
|
第三章 基本組態和管理
第一節 用戶管理 1、增加用戶:方法1:#useradd username –p password 例:增加用戶kk,密碼kk #useradd kk –p kk 方法2:直接修改/etc/passwd文件,然後手動式創 建相應的用戶主目錄 2、修改用戶:#usermod –l newusername –c 「comment」 –d /home/newusername oldusername 例:把test 用戶名改為test2,主目錄改為:/home/test2 usermod –l test2 /home/test2 test(test2目錄要手動式建) -p:修改密碼 -e:設定帳號過期時間 -s: 設定shell -p: 設定密碼 3、 改密碼:passwd username 4、 移除用戶:userdel username 5、 限定可以執行:su 指令的用戶:普通的用戶如果知道root 的密碼,就可以通過su指令取得根用戶的權限。黑客也有可能通過暴力破解的辦法,獲得超級權限,因此有必要對可以執行su指令的用戶進行限制。具體方法如下: #vi /etc/pam.d/su,修改其中一行: #auth required /lib/security/$ISA/pam_wheel.so use_uid 將行首#去掉,這樣就只有wheel組中的用戶可以使用su指令了。然後將選定的用戶加入到wheel用戶組即可。 第二節 基本用戶環境 當我們使用userdd指令或redhat-config-users工具來新增一個新的用戶的時候,會自動產生用戶的主目錄和一些預設的文件設定一些組態,即所謂的用戶環境。這些預設的組態和文件儲存於在/etc/skel資料夾中。預設文件有以下這些:.bash_logout、. bash_profile、.bashrc、.kde、.zshrc,不同的版本的linux預設文件可能也會有一些差別 第三節 文件系統管理及自動掛接 1、 掛接軟碟:mount –t vfat /dev/fd0 /mnt/floppy 或者:mount /mnt/floppy 或者:mount /dev/fd0 2、自動掛在軟碟:修改/etc/fstab 增加如下一行: /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0 3、卸載軟碟:umount /mnt/floppy 卸載光碟:umount /mnt/cdrom 第四節 RPM的使用簡介 所謂rpm是指redhat package manager即紅帽軟體包管理器,是有redhat公司新增的一種軟體發行髮式,rpm格式發行的軟體易於安裝,相比其他的發行方式有很大的優越性。在此簡介其基本用法。 1、rpm –i penguin-3.4.5.-26.i386rp安裝以rpm形式發行的軟體 2、rpm –U penguin-3.4.5-26.i386.rpm 昇級軟體包 3、rpm –e penguin-3.4.5.26 移除軟體 4http://download.fedora.redhat.com/pub/fedora/linux/core/update/i386/kernel-smp-2.6.7-1.494.2.2.i686.rpm安裝遠端rpm包 5、rpm –import /usr/share/rhn/RPM_GPG_KEY 匯入gpg公鑰 6、 rpm –checksig /mnt/cdrom/RedaHat/pxe-0.1-36.i386.rpm匯入公鑰以後對文件的完整性進行驗證 7、 rpm –verify –p /mnt/cdrom/RedaHat/pxe-0.1-36.i386.rpm進行md5校驗和的驗證 8、 rpm --redhatprovides /etc/group搜尋某個文件對應的rpm包 9、 rpm –q samba 查詢samba是否安裝,以及版本 10、 rpm –qf /etc/passwd 查詢/etc/passwd屬於哪個軟體包 第五節 關於rpm 源碼包 1、 通過rpm 源碼包新增和設定rpm rpm –ivh rpm-build-4.2.3-10.i386.rpm:安裝rpmbuild工具 rpm –ivh modutils-2.4.21-22.src.rpm:安裝源碼包 這時在/usr/src/redhat/SPECS資料夾內可以看到modutils.spec,/usr/src/redhat/SOURCES資料夾內可以看到以下的文件:modutils-2.4.21.tar.gz、modutils-2.4.21.tar.gz cd /usr/src/redhat/SPECS/ 進入該檔案夾 rpmbuild –ba modutils.spec 重新編譯建立rpm包,執行結束後, cd /usr/src/redhat/RPMS可以看到如下文件:modutils-2.4.21.i386.rpm modutils-debuginfo-2.4.21-22.i386.rpm 至此rpm包成功建立,使用rpmbuild指令的時候,使用參數-bb也同樣可以產生rpm包 第六節 基本網路組態 大多數情況下,在系統的安裝程序中,網路的相關設定就已經設好了,但是如果你碰到了問題,你可能就會需要診斷網路的故障,特別是排除網路故障的時候,就更需要瞭解網路組態的知識。 1、和網路相關的組態文件大多數都儲存於在/etc/sysconfig資料夾裡。/etc/syscofig/network是比較重要的一個,其設定簡介如下: networking:可以設定為yes或者no 以此來決定電腦是否~連網。 Nisdomain: 如果你使用nis網路,你應該在這個文件中指定nis域的名字 Hostname:設定電腦的名字 Gateway:設定網路閘道的ip位址 Gatewaydev:設定網路設備,例如eth0,如果你只有一個網路卡那麼你應該看不到這個選項。 2、/etc/syscofnig/network-scripts/ 指令即組態文件介紹 ifconfig-eth0:和第一塊網路卡有關的設定,如ip位址、子網路遮罩、網路位址、網路閘道等等。最後一位的0代表第一塊網路卡,如有第二塊網路卡,就會有ifconfig-eth1文件,依此類推。 Ifconfig-lo:組態lookback 設備的相關資訊,內容與ifconfig-eth0類似 Network-functions:包含其他的網路指令碼所使用的啟動網路卡、禁止網路卡等功能 Ifup-* and ifdown-*:用於啟動或者禁止相關的傳輸協定 Ifup eth0:啟動eth0 Ifdown eth0:禁止eth0 Ifconfig:主要的網路組態指令 2、 ifconfig 用法介紹 ifconfig:顯示現用的網路組態 ifconfig eth0 192.168.0.1 netmask 255.255.255.0 設定ip地 址和子網路遮罩。該指令只在當前生效 ifconfig eth0 down:禁用網路卡eth0 ifconfig eth0 up:啟動網路卡eth0 3、netstat –r:顯示現用的路由表 第七節 基本啟動程序 理解系統的啟動及關閉程序將對你的系統管理工作帶來極大的益處。Redhat使用的啟動程序稱之為:System V init。一旦內核被安裝載入,它啟動一個程序:init,由init來啟動其餘所有的相關程序。我們將對linux如何將自己啟始為一個可用的系統有一個大致的瞭解。Redhat提供兩個工具來管理隨系統啟動服務:redhat-config-services(圖形化工具)、chkconfig(指令行工具)。首先我們要瞭解redhat runlevels。 1、runlevel 0 :關閉系統 2、runlevel 1: 單用戶模式,用於對系統進行維護 3、runlevel 2: 多用戶模式,但不能使用網路 4、runlevel 3: 多用戶模式,具有網路功能 5、runlevel 4: 未使用 6、runlevel 5: 重新啟動 系統啟動程序:電腦通電以後由bios會檢查你的系統尋找啟始安裝載入程序(grub、lilo)。然後再由啟始安裝載入程序尋找linux內核。這樣就開始安裝你組態好的服務。內核總是通過使用init來啟動。Init工作立刻執行/etc/rc.d/rc.sysinit,由其執行一系列的工作,例如網路組態、鍵盤映射、分區掛接等等。Init工作通過檢視/etc/inittab來決定將系統啟始至哪個執行等級。/etc/inittab中有類似這樣的一行:id:5:initdefault:其中數位5代表系統的預設等級為runlevel 5,通過簡單的更改這裡的數位即可改變系統啟動時自動執行的等級。 /etc/rc.d/目錄中包含如下子目錄: init.d、rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d、rc6.d 除init.d之外的每一個目錄都對應一個執行等級,其中包含該執行等級啟動和關閉的服務,標有k的服務是該執行等級預設關閉的服務,標有s的服務為該執行等級預設啟動的服務。 /etc/rc.d/init.d目錄包含所有服務的啟動指令碼,手動式啟動一個服務即可在該目錄?蔥校???etc/rc.d/init.d/smb stop 第八節 虛擬控制台 linux作為多用戶*作系統,你可以使用相同的身份同時等錄到不同的終端。使用ALT+功能鍵在不同的終端視窗之間進行切換。例:切換到終端2:ALT+F2。在圖形界面下切換使用:ctrl+alt+功能鍵 虛擬控制台在/etc/inittab文件中組態,可以看到有如下行: 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 根據官方的說法,最多只有6個終端,實際試驗的結果是在這裡修改組態文件增加終端數量以後,重新啟動。終端的數量增加了,但是可用的仍然只有6個 第九節 其他組態工具 1、 clock:顯示現用的系統時間設定 2、 redhat-config-date:圖形化的時間組態工具 3、 redhat-config-keyboard:圖形化的鍵盤組態工具 4、 redhat-config-mouse:圖形化的滑鼠組態工具 5、 redhat-config-services:圖形化的服務組態工具,決定哪些服務歲系統啟動 6、 redhat-config-network:圖形化的網路組態工具 7、 chkconfig:確定某服務預設在哪個等級執行 |
送花文章: 3,
|
2006-01-12, 01:56 PM | #4 (permalink) |
榮譽會員
|
第四章 內核、用戶管理和工作自動化
第一節 shell組態文件 1、所有的shell組態文件都儲存在/etc目錄中,包括:bashrc、profile以及/etc/profile目錄中的指令碼文件。簡介如下: /etc/bashrc:設定別名和一些其它的功能,你可以使用文本編輯器來檢視該檔案,該檔案設定了umask的數值該參數決定了新新增的文件的預設權限,另外還設定了指令行下的提示號。 /etc/profile:用於設定系統環境,設定PATH、USER、 LOGINNAME、MAIL、HOSTNAME、HISTSIZE以及INPUTRC變數。以及最後執行/etc/profile.d目錄中的指令碼文件。 /etc/profile.d:一個包含若干用於bash shell指令碼文件的目錄,這些指令碼文件由/etc/profile啟動執行。 第二節 實現磁牒配額 1、 檢視現用的內核是否支持磁牒配額: #grep CONFIG_QUOTA /boot/config-2.4.21-4.EL 如果輸出的內容如下則內核支持磁牒配額: CONFIG_QUOTA=y 如果你看到的輸出如下,則你需要自行編譯內核: CONFIG_QUOTA=n 2、 檢視相關軟體包是否已安裝: rpm –q quota 3、 舉例說明磁牒配額的實現方法: #useradd linux 增加用戶linux #passwd linux 修改用戶linux的密碼 #mkdir /www/linux 建立新資料夾 #chown linux.linux /www/linux 更改資料夾的屬主 #vi /etc/fstab 增加如下行: /dev/hda7 /www ext3 defaults,usrquota 0 0 #mkfs –t ext3 /dev/sdb1 格式化分區 #quotacheck -cu /www 產生aquota.user 文件 #quotacheck -vu /www 產生相關的訊息 #repquota –au 顯示所有的磁牒配額訊息 #edquota -u linux 對用戶linux設定配額 #edquota -t 設定寬限期 #edquotaon /www 開啟/www目錄上的磁牒配額 第三節 內核基礎知識 內核是整個*作系統的核心部分。它管理硬體之間的通訊,決定哪個工作執行,提供每一個工作執行所需的相對隔離的虛擬的位址空間。內核由啟始程序(grub、lilo)裝入系統。內核負責將驅動程式,模組裝入系統。自行編譯內核以後可以帶來以下方面的好處: 極大的提高核心服務的執行速度 提供用戶服指定的服務的內核直接支持 對適當的服務以模組化的形式動態支持 通過減少不必要的服務可以降低內核的記憶體需求 組態支持高端硬體,例如大於4G的記憶體,硬碟陣列,對稱式多cpu 編譯內核的建議: 只有在需要的時候才編譯內核,直接編譯進內核的 東西越少系統執行越快。如果你不需要音效卡,你可以從內核移除對音效卡的支持。通過移除你不需要的設備,你可以做到減小內核,在不改變設備的情況下提高系統執行的速度。為其它的硬體留下更多的可用資源。 總體而言將各種硬體的設備的驅動作為模組動態的載入和卸載是一個 較好的辦法。模組是內核的增強,雖然沒有直接編譯進內核,但是可以隨需要載入和卸載。 內核概念: 對於系統管理員而言,對系統的內核應該有一定的瞭解,這樣才能更好的編譯內核。 單內核與模組化內核 單內核:所有的設備模組直接編譯進內核 模組化內核:許多設備已模組的形式單獨載入 單內核與設備的通訊速度快,模組化內核與硬體通信要通過模組列表,不行的是單內核過於龐大。 大內核減少了可用的記憶體。有些系統甚至不能啟動這樣大的內核。Linux過去使用單內核,linux一度在安裝載入模組化內核的時候由於某些硬體而產生問題。 使用單內核則系統安裝完成之後所有的驅動程式就已經裝好了。模組化內核有極大的靈活性。你可以將幾乎所有的驅動程式作為模組編譯,這樣在必要的時候這些模組就會被載入系統。模組化使得內核十分的小,這就減少了啟動所需要的時間提高了系統整體效能。 如果linux安裝載入模組的時候產生問題,你可以使用modprobe或者 insmod指令來手動安裝載入模組。 昇級內核:昇級內合併不像看起來的那麼難。 你應該總是保留久的內核,以免由於新內核的錯誤而導致系統無法啟始。 對grub或者lilo而言新的內核就是一個新的*作系統。 如果使用rpm包安裝了新的內核,啟始程序也自動被昇級。如果你犯了一個比較大的錯誤,導致無法啟始,你可以在重新啟動後選項使用舊的內核。你應該儲存內核組態文件這樣你就可以輕鬆的將其拷貝到新的內核繼續使用。詳情後續部分將詳細介紹。 /boot目錄: linux的內核儲存於在這個目錄裡。 新的內核也必須存放於這個目錄,才能夠使用。該目錄的莫人大小時100M,足夠儲存於現用的內核以及昇級內核的時候的附加內核。 /proc 目錄:這個目錄關於一個虛擬的文件系統。換句話說她不包含任何儲存於在硬碟上的文件,但它是檢視電腦的一個視窗。如果你要檢視現用的記憶體訊息使用該指令:cat /proc/meminfo Ip forwarding:檢視當前狀態:cat /proc/sys/net/ipv4/ip_forward,若輸出為 1,則該功能已開啟,若為0,則未開啟。 開啟ip forward:echo 1 >> /proc/sys/net/ipv4/ip_forward 阻止ping of death攻擊:#echo 1 >> /proc/sys/net/ipv4/tcp_syncookies 理解內核模組: 當你編譯內核的時候,你可以將所有的需要的驅動程式編譯成進內核,成為一個單內核。但是這樣的內核太大了,並且需要很長的時間載入。大多數的系統管理員使用內核模組。內核模組並不直接編譯進內核,而是根據需要動態的進行載入和卸載。 如果和內核模組相關的硬體除了問題,你可以使用kudzu。 這是一個自動檢測和組態工具,一般在系統啟動的時候自動執行,當然了你也可以手動式執行這個工具來排除故障。Kmod是模組載入控制器,負責內核模組的載入和卸載。指定特別的選祥和參數可以修改/etc/modules.conf文件。大多數的硬體都可以自動檢測到,對於未識別到的硬體可以執行:depmod –a 手動式載入模組使用:modprobe例:#modprobe pcnet32 檢視當前載入的模組:#cat /proc/modules或者#lsmod 卸載模組:rmmod –r pcnet32 第四節 昇級內核 1、關於內核版本 內核版本號的形式一般都是這樣的:x.x.x例如:2.4.21 第一個數位表示主版本號,第二個數位表示輔助版本號,第三個號碼代表patch的號碼。主版本號的變更往往意味著很大的改變,可能會有很多程序不能夠在新的內核上使用。輔助版本號有兩個含義:第一主版本內核的第x個版本,第二x若為奇數則表示該版本為正在開發中的版本,不適合生產使用,若為偶數則表示該版本為穩定的可靠版本,可以用於生產。最後一個號碼代表patch即修正檔的版本號。 2、昇級內核 新的內核往往會包含著新的技術,意味著系統可以支持更多的設備,也意味著更好的穩定性和更快的效能。所以系統管理員可能會需要對內核進行昇級。昇級內核主要有兩種方式: 1、 rpm包昇級方式 從網上下載已經編譯好的rpm內核軟體 包,然後進行安裝,例:rpm –ivh kernel-2.4.21-8.i386.rpm 2、 使用內核的源碼包編譯安裝。 這部分較為複雜,在後續章 節進行詳細論述,此處略過。 3、內核修正檔 為了使你的系統執行的更加的穩定、高效,你可能經常要給你的系統打修正檔,例如從2.4.20到2.4.21。內核修正檔可以很容易的從網上下載到。安裝也很容易,例: #zcat pathch-2.4.22.gz | patch –p0 3、 製作起始碟 #mkbootdisk 「當前內核的版本號」 例:mkbootdisk 2.4.20 #dd if=/mnt/cdrom/images/bootnet.img of=/dev/fd0 從光碟新增安裝起始碟 4、 內核資源 linux的優點之一是你可以格局你的需要對內核自 由進行裁減編譯,使之符合自己的需要。要編譯內核就要先瞭解linux的來源碼。一旦安裝了源碼包,你就會在/usr/src目錄中看到如下子目錄: debug、redhat、linux-2.4、linux-2.4.21-4.EL。linux-2.4是linux-2.4.21-4.EL的符號連接文件。安裝內核源碼包使用如下指令 #mount /mnt/cdrom #rpm –Uvh /mnt/cdrom/RedHat/RPMS/kernel-source-* 或者你可以下載linux tar file,即以tar.gz的形式發行的源碼包。 4、 重新編譯內核 將下載好的內核解壓縮到:/usr/src/目錄下 #cd /usr/src/ 進入該目錄 #ln linux-2.4.26 linux-2.4 新增該目錄的符號連接文件 #cd linux-2.4 進入內核目錄 修改Makefile文件,找到包含EXTAVERSION的行將其改為EXTRAVERSION=qun #make mrproper 確保源文件的一致性 #make xconfig 選項需要編譯進內核的功能 #make dep 解決依賴性 #make bzImage 產生內核 #make modules 編譯內核模組 #cp usr/src/linux-2.4/arch/i386/boot/bzImage /boot/vmlinuz-2.4.26qun #make modules_install 安裝內核模組 #mkinitrd /boot/initrd-2.4.26qun.img 2.4.26qun 產生啟動映射文件 # cp /usr/src/linux-2.4/System.map /boot/System.map-2.4.26qun #vi /etc/grub.conf # 在最後部分增加如下行: title Red Hat Linux (2.4.26qun) kernel /vmlinuz-2.4.26qun ro root=LABEL=/ initrd /initrd-2.4.26qun.img :wq! #reboot 重新啟動後就可以看到剛剛安裝好的內核了。 #對於2.6的內核而言,步驟就簡單了很多只需要這幾個指令: make xconfig、make、make install 第五節 工作自動化 linux下實現工作自動化的工具主要有兩個:cron、at, cron的守護工作是crond,在預設的情況下,它每分鍾都檢查一系列的目錄,如果有設定的程序就會在指定的時間內將其啟動。用戶的cron設定位於: /var/spool/cron目錄,電腦的調度工作位於:/etc/crontab和/etc/cron.d目錄。只用當需要執行程序的時候, cron守護工作才會啟動。 Cron的組態方法如下: Crontab –u username -e,例: Crontab –u root –e 對用戶root進行設定 設定的具體格式如下: minute, hour, day of month, month, day of week, command * * * * * command 例:crontab -u root -e 30 23 * * * * reboot 設定每晚23:30重新啟動電腦 檢視cron設定:crontab -l例:crontab -l -u zhao檢視用戶zhao的設定 crontab 參數介紹: -e:編輯設定 -u:指定用戶 -r:移除設定 -u:列出當前設定 使用at實現工作自動化:類似於cron,at也可以實現工作自動在指定的時間執行,不同之處在於cron工作是多次循環反覆執行的,而at工作是一次性的,執行一次之後就不再生效了。設定at工作的方法如下: #at now + 1 hour at> reboot at>ctrl+D 設定一個小時之後重新起始系統 檢視at工作:atq 例:#atq 1 2004-11-01 00:53 a root 2 2004-11-01 01:53 a root 除工作:atrm 例:移除第一個工作:#atrm 1 增強cron、at安全性: 可以通過這兩個文件來對用戶進行權限的控制:/etc/cron.allow、/etc/cron.deny。如果這兩個文件不存在,那麼所有的用戶都可以使用cront、at。如果有/etc/cron.allow文件,則該檔案不包含的用戶將不能使用cron,如果沒有/etc/cron.allow 文件,則只有/etc/cron.deny文件所包含的用戶不能訪問cron. |
送花文章: 3,
|
2006-01-12, 01:57 PM | #5 (permalink) |
榮譽會員
|
第五章 linux網路服務
第一節 samba網路共享服務 共享文件是網路的一項重要服務,在linux中實現類似的功能主要有兩種辦法:samba文件共享,NFS文件共享,本節主要講解samba的網路共享服務。使用samba服務可以實現linux和unix以及windows之間的網路文件共享。並且使用samba服務,linux還可以作為 windows的伺服器,主要有如下幾種: win9x的工作組成員、 nt/2000/xp/2003的域成員、 成員伺服器甚至是域主伺服器。 共享用戶的主目錄。 作為wins伺服器 作為主瀏覽器 提供集中式的身份驗證 組態本機目錄作為共享文件系統 支持microsoft訪問控制列表 1、 samba有兩個守護工作:smbd、nmbd位於/usr/sbin 2、 啟動和關閉samba服務:#service smb start、 #service smb stop 3、 使之隨系統一同啟動: #chkconfig –level 35 smb on 4、samba共享文件實例: 目標:共享本地機上的/home/zhao,使用戶zhao,可以通過網路讀寫,用戶fang可以讀不可以寫。 實現步驟: 1、#vi /etc/samba/smb.conf 編輯[global],增加如下行: netbios name = kodadigital 設定電腦的共享名 workgroup = koda 設定電腦的工作組 valid users = zhao 設定可以訪問這台電腦的用戶 2、增加如下行: [zhao] 共用資料夾的名字 comment = welcome 對該共用資料夾的註釋 path = "/home/zhao" 共用資料夾的路徑 admin users = root 管理員用戶,實際上並沒有權限 valid users = root,zhao,fang 對該共用資料夾有訪問權限的用戶 write list = root,zhao 對該共用資料夾有寫權限的用戶 3、將預設的[homes] 組態文件及其選項全部用#註釋掉 4、#/etc/rc.d/init.d/smb restart 說明:通過網路訪問的時候首先要通過global中設定的valid用戶的身份驗證,然後根據訪問的資料夾的不同, 還要通過各共用資料夾定義的valid用戶身份驗證。 第二節 web服務及虛擬伺服器(apache) 在linux中web服務主要依靠apache來實現。Apache是當今世界上套用最為廣泛,最為可靠的web伺服器。Linux的各種發行版都原有的有發行形時最新版的apache。後續的部分將以一個實例來講解如何組態apache伺服器。 1、 如何安裝軟體大家應該都已經很熟了,就不講了。 2、 #service httpd status 檢視當前是否已執行web服務 3、 #service httpd start 啟動web服務 4、 #使用瀏覽器在位址欄輸入http://127.0.0.1,應該可以 看到apache的測試頁面,如果看不到測試頁面使用該指令:iptables –F 關掉防火牆 5、 #組態apache伺服器 步驟:1、安裝完成後,/etc/rc.d/init.d/httpd start, 關閉防火牆,啟動瀏覽器即可看到預設的頁面,編輯/var/www/html/index.html,重新啟動httpd服務,使生效。 2、實現用戶的個人主頁 #vi /etc/httpd/conf/httpd.conf 移除UserDir disable, 去掉 UserDir public_html 之前的#號,/etc/rc.d/init.d/httpd restart,重新啟動web服務,在瀏覽器位址欄輸入192.168.0.4/~zhao/,來驗證。目標:實現基本的web服務,用戶web和關於名稱、ip位址的虛擬主機服務 3、關於名字的虛擬主機:vi /etc/hosts,增加如下行:192.168.0.4 www.zhao.com zhao vi /etc/httpd/conf/httpd.conf 將最後的部分改為如下: ServerAdmin webmaster@zhao.com DocumentRoot /var/www/zhao ServerName www.zhao.com *實現關於名字的虛擬主機需要實現組態dns伺服器 /etc/rc.d/init.d/network restart /etc/rc.d/init.d/httpd restart 開啟瀏覽器在位址欄輸入www.zhao.com 4、關於ip位址的虛擬主機: ifconfig eth0:0 192.168.0.5 netmask 255.255.255.0 vi /etc/httpd/conf/httpd.conf,增加以下部分: ServerAdmin webmaster@zhao.com DocumentRoot /var/www/hit /etc/rc.d/init.d/httpd restart 開啟瀏覽器在位址欄輸入:192.168.0.5 第三節 實現squid代理伺服器 對於大多數企業而言代理伺服器是必不可少的。在windows世界有各種軟體來實現代理伺服器的功能,如:sygate、wingate、isa等等,在 linux領域中這個功能由squid來實現。Squid是一款功能強大的代理伺服器軟體,培植較為簡潔,效率非常的高。本節以一個世紀的例子來講解如何一步步的組態squid代理伺服器。 1、#vi /etc/squid.conf 編輯squid組態文件,增加如下行: http_port 8080 將代理連接阜設為8080,如不進行設定則預設的代理連接阜為:3128 cache_men 16 MB 設定代理伺服器的高速快取大小 cache_dir ufs /spool/squid 100 16 256 設定代理伺服器的交換空間,/spool/squid表示高速快取的位置,100表示空間為100M,16代表16個目錄,256代表共有256個二級目錄 cache_access_log /var/log/squid/access.log 快取訪問日誌 cache_log /var/log/squid/cache.log 快取日誌 cache_store_log /var/log/squid/store.log 快取儲存於日誌 acl InternetAllow src 10.10.10.0 建立新的訪問控制列表 http_access allow InternetAllow 建立新的規則允許InternetAllow列表中的主機使用代理伺服器 2、#wq! 儲存結束 3、#squid –z 進行啟始化 4、#service squid start 啟動squid 代理服務 5、 squid設定完成,現在就可以使用了。 第四節 Ftp服務 ftp是網際網路上很普遍的服務,再redhat中原有的的ftp軟體是vsftp,該軟體的特點是易於使用,安全性極好。以下一個實際的例子來講解如何實現vsftp伺服器的全程序。 a) 安裝vsftp軟體:把第二張光碟放到光碟,掛接後進入/mnt/cdrom/RedHat/RPMS目錄,使用指令:rpm –ivh vsftd-1.2.0-4.i386.rpm b) #service vsftpd start 啟動服務 c) 常用組態指令:cd、get、mget、put、mput 第五節 郵件伺服器 郵件服務是網際網路上的一項基本服務,絕大多數經常上網的線人都有自己的電子信箱,用於商業的電子信箱也日益普遍,多數公司都會使用電子郵件與客戶進行通信、交流。很多的時候公司內部也會有內部的電子郵件伺服器,在公司內部提供電子郵件服務。在linux/unix平台之上最常用電子郵件系統為: sendmail。該系統功能強大,執行穩定,廣泛的執行於世界各地,是internet上最為流行的電子郵件系統。但是sendmail有一個缺點就是難於組態,培植文件非常難以讀懂。本節的其餘部分一個以實際的例子來對sendmail的組態文件進行修改,希望大家嚴格按照本文的步驟來進行*作,以確保能夠順利的啟動郵件服務: a) 安裝sendmail和bind b) 組態DNS伺服器: 1、#vi /etc/named.conf,增加新的域:test.com zone "test.com" IN { type master; file "test.com.dns"; allow-update { none; }; }; 2、touch /var/named/test.com.dns建立相應的域的組態文件: $TTL 1d 預設的生存週期 @ 1d IN SOA ns.test.com. root.test.com. ( 1 起始序列號 2d 重新整理頻率 1h 重試頻率 1w 失效時間 1h) 最短TTL @ 1d IN NS ns.test.com. 設定網域名服務器位址 1d IN MX 10 mail.test.com. 設定郵件伺服器位址 www IN A 192.168.0.10 設定域名和ip位址的對應關係 ns IN A 192.168.0.10 mail IN A 192.168.0.10 3、儲存結束,service named restart 將dns指向自己 4、測試:host -l test.com c) 修改sendmail的組態文件: 1、#vi /etc/mail/,修改如下行: o DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA 將其中的127.0.0.1更改為sendmail伺服器的位址192.168.0.1,然後儲存。 2、#vi /etc/mail/access,增加如下行: test.com RELAY 192.168.0 RELAY 執行指令,使之生效: makemap –r hash /etc/mail/access.db < /etc/mail/access 3、# vi /etc/mail/local-host-names,增加允許中繼的主機 mail.test.com。儲存結束 d) 重新啟動sendmail服務:#service sendmail restart,現在你就可以使用這個sendmail服務起來收發郵件啦 第六節 DNS伺服器 隨著網路的發展,在公司內部建立自己的郵件伺服器顯得越來越重要,越來越多的服務要依賴於dns服務。Linux原有的的郵件伺服器是:bind 9。以下部分以新增tes.com域名為例講解組態dns的程序。 1、 安裝 2、 #vi /etc/named.conf #修改改組態文件,增加test.com的配置資訊 zone 「tes.com」 IN { #新域的名字 type master; #該伺服器的檔案類型 file 「tes.com.dns」; #該域的組態文件 allow-update {none;}; #是否允許動態更新 }; 3、#touch /var/named/test.com.dns #建立test.com域的組態文件 4、# vi /var/named/test.com.dns #修改組態文件,增加以下內容 $TTL 1d @ 1d IN SOA ns.tes.com. root.test.com ( 1 1d 2d 3d 1h ) @ 1d IN NS ns.test.com. 增加網域名服務器紀錄 1d IN MX 10 mail.test.com. 增加郵件伺服器紀錄 www 1d IN A 192.168.0.1 增加主機紀錄 ns 1d IN A 192.168.0.1 增機主機紀錄 mail 1d IN A 192.168.0.1 增機主機紀錄 5、儲存結束 6、以上部分為正向的域名解析部分,下邊是反向解析的組態辦法 7、# vi /etc/named.conf #增加如下行 zone 「0.168.192.in-addr.arpa」 { type master; file 「0.168.192.in-addr.arpa.dns」; allow-update{none;}; }; 8、#touch /var/named/0.168.192.in-addr.arpa.dns # 新增組態文件 9、# vi /var/named/0.168.192.in-addr.arpa.dns#修改組態文件,增加如下內容 $TTl 1d 0.168.192.in-addr.arpa IN SOA ns.test.com.( 1107274122 10800 3600 604800 38400) 0.168.192.in-addr.arpa. IN NS ns.test.com. 1.0.168.192.in-addr.arpa. IN PTR ns.test.com. 增加機游標紀錄 1.0.168.192.in-addr.arpa. IN PTR mail.test.com. 增加機游標紀錄 10、# service named restart #啟動網域名服務器 # host –l test.com #測試網域名服務器正向解析 # host -l 0.168.192.in-addr.arpa #測試網域名服務器的逆向解析(完) |
送花文章: 3,
|
2006-01-12, 08:29 PM | #6 (permalink) |
榮譽會員
|
製作Linux系統啟動碟的四種通行方法
Linux的啟動軟碟有boot盤和boot/root盤之分,所謂的boot盤只能用來啟動已經安裝在硬碟上的Linux系統,而boot/root盤本身就是一個迷你Linux系統。Linux啟動軟碟是系統修復的必備工具,因此掌握啟動軟碟的製作方法是很有用處的,-下面我就向大家介紹boot盤的四種不同的製作方法: 1.使用mkbootdisk工具為當前系統製作啟動碟 mkbootdisk --device /dev/fd0 `uname -r` 參數說明:--device /dev/fd0是要建立啟動軟碟,也是預設選項,因此也可以省略它;接下來的參數是內核版本號,如2.2.16等,這裡是利用`uname-r`指令來獲得系統的內核版本號。對於更多的參數,請自行參看手冊頁:man mkbootdisk。 此方法將為當前系統製作啟動軟碟,因此必須已經執行Linux系統,並且在系統中安裝有mkbootdisk軟體包(如果沒有的話請安裝該軟體包)。製作出來的-啟動碟與在Linux安裝程序中提示製作的啟動軟碟是一樣的。 2.將lilo安裝在軟碟的啟始扇區中 lilo -b /dev/fd0 參數說明:-b /dev/fd0是將lilo安裝在軟碟上,因為預設時是將lilo安裝在硬碟上的,所以不能省略它;-C config_file參數將允許你使用/etc/lilo.conf以外的組態文件。更多的參數請自行參看手冊頁:man lilo。 這種方法也是為當前系統製作啟動碟。 3.找一個可啟始內核,令它的根設備指向正確的根分區,然後"刻"入軟碟 rdev vmlinuz /dev/hda﹖ dd if=vmlinuz of=/dev/fd0 說明:使用rdev指令將可啟始內核vmlinuz中的根設備指向/dev/hda﹖,請把hda﹖換成你自己的根分區,接下來用dd指令將該內核寫入軟碟。 此方法可以使用任一個可啟始的內核來製作,因此可以借助其它的Linux系統來完成,這在已經無法通過硬碟啟動來進入你的Linux系統時尤為有用。但需注意的-是,如果使用與你系統不同的內核,則在啟動後可能失掉部分功能,比如無法裝入某些模組,無法正確顯示漢字(用外文內核來啟始中文Linux時) 等,如果你還想為你的系統製作專門的啟動碟,可以在啟動完成後再利用方法1或2來製作。 4.利用軟碟上的安裝載入程序和一個可啟始內核啟動系統 首先要製作一個DOS啟動碟(format a?/s),將安裝載入程序loadlin.exe和可啟始內核vmlinuz拷貝到軟碟上,然後建立自動批次處理文件autoexec.bat,其內容如下: loadlin vmlinuz root=/dev/hda﹖ ro 這種方法很簡單,因為在各個版本的Linux安裝光碟上都可以找到loadlin.exe和某個可啟始內核vmlinuz,在DOS或Windows 9x中就可以輕易地拷貝出來。特點與方法3一樣,你可以利用任一個可啟始內核來啟始系統。 以上四種方法在包括RedHat、藍點、Xteam Linux、Turbo Linux、紅旗等在內的發行套件中都驗證通過。 除了上面的幾種方法之外,你還可以利用sxslinux軟體來製作Linux啟動碟,由於各種Linux發行套件都不包含它,所以在此就不多說了 ! |
送花文章: 3,
|
2006-01-15, 09:31 PM | #7 (permalink) |
榮譽會員
|
redhat linux 9.0 samba組態詳解
redhat linux 9.0 samba組態詳解 終於完成了redhat linux9.0的組態,對於大多數老手來說,可能是非常簡單,但對於我們新手來說 我感覺還是有點複雜,所以,我想把我的組態程序詳悉的寫出來,希望對新手能有所說明 . 1.安裝samba 首先驗證您的機器中是否已經安裝samba rpm -qa|grep samba,如果出現 samba-common-2.2.7a-7.9.0 samba-client-2.2.7a-7.9.0 samba-2.2.7a-7.9.0 那麼恭喜你,你已經安裝好了samba,如果沒有以上那些東東,請安裝,安裝方法很簡單,redhat linux 9.0第一張光碟裡就有//cdrom/RedHat/RPMS/ 以下是我的詳細安裝程序 把第一張光碟放進光碟,他會自動掛接的,省得自己動手mount了 #cd /mnt/cdrom/RedHat/RPMS(主意大小寫字母,否則會出現錯誤的啊) #rpm -ivh samba-common-2.2.7a-7.9.0 (這個要先安裝,安裝的時候不一定要把後面的samba-common-2.2.7a-7.9.0全部寫完,比如寫到samba-c的時候,多按幾次Tab鍵,很省事的哦) #rpm -ivh samba-2.2.7a-7.9.0 #rpm -ivh samba-client-2.2.7a-7.9.0(客戶端) 安裝了以上的東西之後,基本上就可以了,但為了組態的方便以及利用REDHAT LINUX9.0新特性,我建議在安裝以下兩個東東redhat-config-samba-1.0.4-1,samba-swat-2.2.7a-7.9.0光碟裡都有,其中redhat-config-samba-1.0.4-1在第一張光碟裡,samba-swat-2.2.7a-7.9.0在第二張光碟裡,安裝方法和上面的一樣了. 通過上面的簡單介紹,我想你已經安裝好了,試驗一下 #rpm -qa|grep samba(這是什麼含義應該知道吧,如果不知道,建議先學學LINUX的基本指令) redhat-config-samba-1.0.4-1 samba-common-2.2.7a-7.9.0 samba-client-2.2.7a-7.9.0 samba-swat-2.2.7a-7.9.0 samba-2.2.7a-7.9.0 OK,安裝成功!(建議,以上東西最好自己安裝一次,系統上如果裝的有,還是先卸載,這樣,才能加深印象,如果卸載以後,安裝出問題,可能是你沒有完全卸載,解決方法要不繼續搜尋卸載,要不強制安裝) 2.組態 (1)方法1 利用我們安裝的redhat-config-samba-1.0.4-1進行組態,方法如下: 開始--->系統設定--->伺服器組態--->samba伺服器 (我是在LINUX寫這個文章,所以圖形的東西我不會剪下,只好用簡單的說一下了) 首選項-->伺服器設定,這裡你可以對samba伺服器進行一些基本的設定裡,應該說比較簡單了,我看沒有必要介紹了,組態好之後,記住重新啟動服務. 重新啟動的方法有兩種: #service smb start或restart #/etc/rc.d/init.d/smb start (2)方法2 利用samba-swat-2.2.7a-7.9.0 首先,你要修改swat的組態文件,預設的情況下是關閉的 service swat { port = 901 (swat用到的連接阜是901) socket_type = stream(類似tcp傳輸協定的東西,哈哈這是我自己的理解) wait = no only_from = 127.0.0.1(只從這個啟動swat,關鍵!) user = root(啟動swat用到的名子) server = /usr/sbin/swat log_on_failure += USERID disable = yes (一定要把yes改成no) } 修改過之後,啟動xinetd就可以了 啟動方法跟剛才我說的一樣 然後在瀏覽器裡些上:http://127.0.0.1:901/重重的按Enter鍵,你發現你成功了 !(注意,這個IP位址要跟你在SWAT組態文件裡的IP位址一樣才形,切記!) 至於如何使用swat,自己摸索一下應該不成問題了,組態完成以後,記得重新啟動服務就可以了.對了,為了使得samba和swat在每次開機的時候啟動,你可以這樣: #setup,然後找到system service,在SMB和SWAT前搞個*,也可以#ntsysv,同樣的效果. (3)方法3 利用samba-2.2.7a-7.9.0,這是最根本的東西,不管用什麼工具,掌握其原理才是最重要的,像網頁製作一樣,雖然工具很多,但一定要熟悉HTML語言,才能編的好的網頁(扯蛋!哈哈) 裝好samba-2.2.7a-7.9.0之後,會在/etc/samba/下形成己個文件 smb.conf smbpasswd smbusers lmhosts,如果沒有其中的一個,你可以touch新增 修改smb.conf文件 我只做簡單的說明:guest ok 和public是一樣的,read only 和writable是相反的,沒什麼區別 workgroup=(工作組名子,填上你目前的LAN的工作組) netbios=(最好是你的機器名,如果把改句注消,預設的是你LINUX機器名,不過,最好還是自己填上) client code page=936(預設是850,936是簡體中文的意思,這個要記住,難道不記得你mount你windows系統下的中文名子都是???,就是因為你沒有加-o iocharset=cp936的原因!) guest account=nobody(guest帳號,這於你定義的共享文件頰有關,其中nobody在smbusers裡有) security = SHARE(有四個等級,不多說) encrypt passwords = Yes(加密的密碼, win98/2000傳送的密碼都是加密的,所以這裡要yes) 以上都是[global]的內容,其實,很多呢,水準有限不多說了. 下面就是你要開的共享的東西,要說明的是,資料夾共享的內容取決於該檔案頰在LINUX裡的權限設定 [myxfc] comment = myxinfc path = /home/xinfc read only = No guest ok = Yes [tmp] path = /home valid users = hehl write list = @staff read only = No guest ok = Yes 共享的設定其實很簡單,主要是路徑和權限的問題,這兩個搞清楚了 ,應該沒問題了 該介紹的我都介紹完了,重新啟動服務! 或許您會發現客戶端無法連接,奶奶的,真讓人生氣,忙了這麼久,還是不能訪問,why? 1)客戶端應安裝tcp/ip netbios ipx(這個東東不太懂) 2lmhosts, IP位址和netbios名子對應. 3)iptables(這個東西最壞,就是因為他,我浪費了兩天時間!我得出一個小小的結論,做各種組態前把iptables給關閉!) 由於我對iptables不太懂,我的解決方式有兩種: 1:#setup 然後選項防火牆,然後關閉 2.修改/etc/sysconfig/iptables -A INPUT -j RH-Lokkit-0-50-INPUT -A FORWARD -j RH-Lokkit-0-50-INPUT -A RH-Lokkit-0-50-INPUT -i lo -j ACCEPT -A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 0:1023 --syn -j ACCEPT -A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 2049 --syn -j REJECT -A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 0:1023 -j ACCEPT -A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 2049 -j REJECT -A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 6000:6009 --syn -j REJECT -A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 7100 --syn -j REJECT COMMIT 把0:1023的兩行的REJECT改成ACCEPT 重新啟動防火牆就可以了 #service iptables start |
送花文章: 3,
|
2006-01-16, 04:11 AM | #8 (permalink) |
榮譽會員
|
如何在 Linux操作系統下 封殺掉非法IP
不久前,一位朋友想把他管理的區域網路出口全部進行IP和MAC位址綁定,以防止非法用戶上網。該區域網路是用Linux實現Internet接入和管理。整個網路包括數棟樓房,分別通過交換機級聯到總的Internet出口。網路使用了10.0.0.x到10.0.3.x/255.255.252.0這樣的子網,總容量應該有1016(254×4)台主機。目前有大約400位合法上網用戶,這些用戶可能會隨時增減。在Linux系統下,想利用MAC原理對IP進行封殺,從而達到對某個IP位址或IP位址段的管理和控制,可以通過Linux系統提供的ARP來實現。 構思 決定使用ARP綁定後,接下來就要考慮ARP的實現方法。ARP(Address Resolution Protocol)傳輸協定是用來向對方的電腦、網路設備通知自己IP對應的MAC位址的。如果所有非法用戶都被賦予了錯誤的MAC位址,那麼他們是無法通過這台伺服器上網的。因此,ARP綁定要求必須將所有可能的IP位址全部與MAC位址綁定,才能夠杜絕非法用戶(當然,用戶修改MAC位址除外)。 經過一番思索,確定了初步的構思。首先,用Linux Shell的循環方法產生一張包含從10.0.0.1到10.0.3.254的無效MAC位址匹配表,稱之為全局表。然後根據DHCP伺服器的資料得到一張合法用戶的IP和MAC位址表,稱之為合法表。接著,讀取合法表中每個用戶的IP,並在全局表中尋找匹配的IP,如果找到的話就用合法用戶的MAC位址取代原來無效的MAC位址。最後,這張全局表中的合法用戶匹配正確MAC位址,而非法用戶匹配無效的MAC位址。只要用戶把這張表寫入系統ARP快取,非法用戶就不能通過簡單的盜取IP方法來通過網路閘道了。 實現 首先產生一張初始的全局表。它包含所有IP位址,每個IP位址與一個非法的MAC位址匹配。它的格式必須是arp指令能夠識別的。啟始化全局表的指令碼為init,內容如下: #!/bin/bash ipprefix=10.0. count1=0 while (( $count1 < 4 )) do count2=1 while (( $count2 < 255 )) do echo「$ipprefix$count1.$count2 00e000000001」 let $count2+=1 done let $count1+=1 done 寫好後存檔,用「chmod +x init」指令使得指令碼可執行。然後執行指令碼init > arp,就可以將結果儲存到當前目錄的arp文件中。該檔案就是10.0.0.1到10.0.3.254所有IP位址與MAC位址00e000000001綁定的ARP表,看上去該檔案類似於下面這樣: 10.0.0.1 00e000000001 10.0.0.2 00e000000001 10.0.0.3 00e000000001 10.0.0.4 00e000000001 10.0.0.5 00e000000001 ... ... 需要注意的是,Shell指令碼語法雖然和C語言類似,但對格式要求很嚴格,有些地方不能加空格,有些地方則必須加空格。比如let $count1+=1就不能寫成let $count1 += 1;相反,while (( $count1 < 4 )) 也不能寫成while (($count1<4)),括號與語句之間必需有空格。 接下來通過DHCP伺服器得到合法用戶的IP與MAC位址匹配表(即合法用戶表),假設是valid.arp文件。編寫一個指令碼一行一行地讀取該表,每得到一個IP位址記錄,就在前面產生的arp文件中搜尋同樣的IP。如果找到的話,那麼就用valid.arp中該IP的MAC位址取代arp文件中該IP的MAC位址。valid.arp文件可能像下面這樣: 10.0.0.2 00e00a0f1d2c ... 10.0.1.25 00e0b2c3d5c1 ... 搜尋取代指令碼為replace,內容如下: #!/bin/bash # 定義並啟始化三個變數,分別是合法用戶表、全局表和作交換用的表 validArp=valid.arp globalArp=arp tmpArp=tmp.arp count=1 # 371是合法用戶的總數,也就是valid.arp表的記錄數,然後加1 while (( count < 371 )) do #「 sed -n『「$count」p』$validArp」指令將每次列印valid.arp文件中的第$count個記錄 # 例如,當$count=1的時候,該指令將列印: 10.0.0.2 00e00a0f1d2c2 # eval $getValid將會執行$getValid變數所包含的語句,並將結果賦給變數$curRec getValid=「sed -n『「$count」p』$validArp」 curRec=『eval $getValid』 # echo $curRec | awk『{print $1}』指令將列印$curRec內容的第一個字段,也就是IP位址 # 然後我們將這個IP位址賦值給$curIP變數 getIP=「echo $curRec|awk『{print \$1}』」 curIP=『eval $getIP』 # 這樣我們就得到了合法用戶的IP及IP和MAC位址對,接下來是最關鍵的一步 # 下面兩條語句在全局表中搜尋與得到的IP匹配的項目,找到後就在該記錄後面增加合法用戶的IP 和MAC位址對,然後移除舊的非法IP和MAC位址對,並將結果存入一個新的文件tmp.arp replace=「sed -e『/$curIP\>/a\ $curRec』 -e『/$curIP\>/d』$globalArp >$tmpArp」 eval $replace然後用新的文件覆蓋全局表文件,並將計數器加1,供下次循環 cp -f $tmpArp $globalArp let count+=1 done 到此指令碼結束。需要注意的地方有兩個:第一,所有包含「eval」指令的語句,使用的都是反引號,也就是通常位於Tab鍵上面的那個引號,這樣變數才能得到語句執行的結果,而非語句本身;第二,如果出現變數和其它字母在一起的情況,用雙引號將變數包含,否則會出現錯誤的變數名,例如下面這條語句: getValid=「sed -n『「$count」p』$validArp」 如果不用雙引號把變數$count包起來,Shell會認為用戶的變數是$countp,而不是$count。 在執行完replace後,再檢視arp文件,會發現其中所有在valid.arp文件中存在的IP和MAC位址對,其中的啟始化MAC位址已被取代為正確的MAC位址。 最後,將得到的arp檔案拷貝為/etc/ethers,在系統啟動時執行「arp -f」,就可以實現IP和MAC位址匹配了。 總結 通過這件事不難發現,Linux繼承了Unix的優秀傳統,具備強大和完善的系統管理方法。只要用戶掌握一些常用的指令與工具,就可以極大地提高系統管理效率,降低管理的工作強度。學習和掌握這些方法,是每個合格的Linux系統管理員都應該做到的。 |
送花文章: 3,
|
2006-01-20, 11:54 PM | #9 (permalink) |
榮譽會員
|
Unix Linux下常用監控和管理指令工具
檢視系統中的工作,Linux中可以使用ps -aux檢視所有工作 參數w表示加寬顯示的指令行,參數w可以寫多次,通常最多寫3次,表示加寬3次,這足以顯示很長的指令行了。例如:ps -auxwww top:顯示系統記憶體、cpu使用情況,並可自動重新整理工作列表 vmstat:顯示現用的記憶體使用情況 netstat:顯示網路狀況,使用參數p可以檢視對應的工作號及程式名稱, 通常使用參數a(顯示所有連接情況)和n(不反查域名和服務名),例如:netstat -anp。 檢視伺服器偵聽情況,使用:netstat -an | grep LISTEN 檢視伺服器已建立的連接,使用:netstat -an | grep ESTABLISHED ifconfig:檢視(或設定)網路設備訊息 ifconfig -a:檢視所有網路設定訊息 last:顯示登入到伺服器的情況以及伺服器重啟情況 df:顯示硬碟空間及使用情況,Linux下可以帶參數h,顯示結果更人性化。例如: df -h 硬碟空間按人性化顯示 df -k 硬碟空間按KB顯示 df -m 硬碟空間按MB顯示 w:顯示登入到伺服器上的用戶列表 以下幾個指令僅針對Linux lsof:顯示當前開啟的文件列表,包括建立的socket連接等。本指令可以用於程序員檢查編寫的程序開啟的文件數。 sysctl:顯示(或設定)系統內核參數 sysctl -a 顯示所有內核參數 sysctl -w 參數名=參數值 例如:sysctl -w fs.file-max=10240 設定系統允許同時開啟的最大文件數為10240。 內核參數fs.file-nr包括三個參數值,第一個參數表示系統中曾經同時開啟過的文件數峰值, 第二個參數表示空閒(分配後已解壓縮)的文件數, 第三個參數表示可以開啟的最大文件數,其值等於fs.file-max。 當前開啟的文件數 = 第一個參數值 - 第二個參數值 例如: fs.file-nr = 977 223 10240 當前開啟的文件數 = 977 - 233 = 744 設定內核參數時務必小心,如果設定不當會導致系統異常,甚至當機。 ulimit:顯示(或設定)用戶可以使用的資源限制 ulimit -a 顯示用戶可以使用的資源限制 ulimit unlimited 不限制用戶可以使用的資源,但本設定對可開啟的最大文件數(max open files) 和可同時執行的最大工作數(max user processes)無效 ulimit -n <可以同時開啟的文件數> 設定用戶可以同時開啟的最大文件數(max open files) 例如:ulimit -n 8192 如果本參數設定過小,對於並發訪問量大的網站,可能會出現too many open files的錯誤 ulimit -u <可以執行的最大並發工作數> 設定用戶可以同時執行的最大工作數(max user processes) 例如:ulimit -u 1024 |
送花文章: 3,
|
2006-01-20, 11:55 PM | #10 (permalink) |
榮譽會員
|
Linux忘了root的密碼怎麼辦
以單用戶方式進入系統,修改root的密碼然後再重新啟動即可。程序如下所顯示。 對於LILO: 當系統啟動到出現LILO啟始畫面時,對於圖形啟始方式按TAB鍵進入文本方式,然後在LILO處 輸入linux singleEnter鍵即可進入免密碼的控制台,進入以後使用passwd指令修改root的密碼 即可。 對於GRUB: 當系統啟動到出現GRUB啟始畫面時,按字母e鍵,進入GRUB編輯狀態。按鍵碟上或下鍵選項相 應的啟始項,在選項了一個啟始項目後接字母e鍵進入指令行編輯。在出現的指令行後增加「 空格single」並按Enter鍵返回編輯狀態,再按字母b即可以單用戶方式啟動系統,進入系統後使 用passwd指令修改root的密碼即可。 那個console是不是不需要login呢?而是直接可以出來ing 反面來說,我們該怎麼防止這種方法呢,比如,有人要物理攻擊 可以加上密碼認證以限制進入單用戶模式。 |
送花文章: 3,
|
2006-01-20, 11:57 PM | #11 (permalink) |
榮譽會員
|
如何制作備份UNIX系統
SCO UNIX系統因其穩定可靠的特點而在金融、保險等行業得到廣泛套用,但它的安裝與維護對於專業技術人員來說也不是一件輕鬆的事。筆者工作所維護的系統,安裝有SCO UNIX操作系統、Informix資料庫和其它應用軟體,安裝後還要調整核心參數、安裝設備和連接核心。安裝一套完整的系統需花費數小時。如果製作出系統的制作備份,那麼當系統出現故障時,就再也不用手忙腳亂地安裝和組態系統了。以下是筆者總結出來的製作UNIX系統制作備份的四種方法。 方法一:利用hdcopy 它是一個真正的硬碟物理拷貝軟體,要求兩張硬碟的物理結構必須相同,hdcopy支持任何文件系統。以下舉例說明: 若待複製的空白目標碟為:clys=4969,heads=16,sec=63,SCO UNIX系統來源碟為:clys=2484,heads=16,sec=63,來源碟中SCO UNIX分區占528M(cly=1024,heads=16,sec=63),那麼: 1.將目標碟與需要制作備份的SCO UNIX系統來源碟在同一台電腦上接好並且目標碟作為第二硬碟。 2.啟動機器,進入CMOS設定將上述兩張硬碟參數均設為:clys=1024,heads=16,sec=63 (注意本例中此處clys值應大於或等於1024)。 3.重新啟動,在用DOS盤啟始後,執行hdcopy,該設定簡單,按照提示輸入clys=1024,heads=16,sec=63後,出現提示行:Please sure cly=1024,sec=63,heads=16 [Y/N],輸入「Y」就開始複製了。 此種方法製作系統制作備份快,上例複製程序只需要4分鍾。 方法二:利用Ghost複製系統 在安裝SCO UNIX操作系統分區時,會把65個軌道保留給啟動和診斷用,而不把它分配給UNIX分區。若採用Ghost「盤對盤複製」,其程序中會自動把這剩餘的65個軌道加入UNIX分區中,這樣就會造成一些應用程式不能正常使用。所以在實際操作中,我們應選用Ghost提供的另一種方法進行複製:分區到分區。方法為: 1.同上先接好SCO UNIX系統來源碟和作為第二硬碟的空白目標碟。 2.首先對目標碟進行分區,使之與來源碟中的分區完全一致,具體做法有兩種: (1)使用aefdisk.exe,它是一個DOS下的磁牒分區程序,支持所有分區格式,使用簡單,能夠新增、移除目前所知的任何分區格式。先用DOS盤啟始系統後執行aefdisk指令行,假設要在第二硬碟建1.2G的SCO UNIX分區並啟動啟始分區,則輸入如下指令: aefdisk 2 /pri:1200:63:1(2表示第二硬碟,63表示Unix分區,1為分區號) aefdisk 2 /activate:1(啟動啟始分區) (2)開機以root身份進入來源碟UNIX系統,按鍵輸入fdisk指令。fdisk將對/dev/rhd00設備也就是來源碟進行操作。按數位1顯示分區表,記下SCO UNIX分區的起始位置和結束位置,然後退到指令狀態,安裝第二塊硬碟。 #mkdev hd 10(安裝第二個IDE接頭上的主硬碟) 這裡會出現三個選項。如果要增加的硬碟是IDE檔案類型,則選項1;如果是SCSI檔案類型,則選項2。然後要求一些硬碟的有關訊息,一般按預設值輸入即可。其間有fdisk表單選項,它是對/dev/rhd10進行操作的,可以對目標硬碟按需要進行分區。此例中應把剛才記下的SCO UNIX分區的起始位置和結束位置輸入新的分區,啟動啟始分區。當出現提示: Hard disk initialization procedure completed. 就完成了對目標碟的安裝和分區。 3.關機。再用DOS盤啟動電腦執行Ghost,選項local下面的Partition to Partition。用滑鼠選項源分區和目標分區,Ghost將指出一個警告提示,驗證一遍,按「yes」按鈕,複製程序開始。 方法三:利用Ghost映像 步驟一:利用Ghost製作.GHO映像文件 將DOS分區的硬碟與需要制作備份的SCO UNIX系統來源碟在同一台電腦上接好。前者作為第二硬碟,用於存放映像文件。啟動機器,用DOS盤啟始後,執行Ghost(5.0以上版本),選項Local→Partion→To Image,再分別指定源分區和映像文件所在盤與檔案名(如Unix.GHO),選定「高度壓縮比」並驗證後,Ghost開始工作。 步驟二:利用Ghost恢復制作備份系統,其操作舉例說明: 1.製作制作備份的系統來源碟中SCO UNIX分區為1.2G(如果不知道大小,在執行Ghost時可以從已產生的映像文件描述中看出其源UNIX分區大小),在目標碟上新增1.2G SCO UNIX分區,啟動啟始分區(做法同方法二相關介紹)。 2.將存放有映像文件(假設名為Unix.GHO)的硬碟與目標碟接好並且目標碟作為第二硬碟。用DOS盤啟始系統後執行Ghost,選項Local→Partion→From Image,指定映像檔案名Unix.GHO和目的分區1.2G,這時Ghost就開始恢復映像文件了。 方法四:利用「dd」指令和「cpio」指令 此方法可以在UNIX分區大小不同的硬碟之間拷貝製作UNIX系統制作備份,而Ghost要求目標碟UNIX分區比來源碟UNIX分區大或者相等,但此方法比使用Ghost速度慢。以下是在SCO OpenServer5.0.4環境下的制作備份程序。 1.同上先接好SCO UNIX系統來源碟和作為第二硬碟的空白目標碟。然後開機,以超級用戶root進入來源碟增加一塊硬碟rhd10,對目標硬碟按需要進行UNIX分區,啟動啟始分區(具體做法在方法二中有介紹)。 2.用「dd」指令將SCO UNIX硬碟自舉程序從來源碟拷入目標碟: #dd if=/dev/hd0a of=/dev/hdla bs=1024 count=40 3.用「divvy」指令在目標碟上建立可安裝的文件系統: #divvy-im/dev/rhdla 該程序提示清楚,一般按預設值輸入即可完成。 4.用「divvy」指令檢視內分區名: #divvy/dev/rhdla 記住0、1、2內分區名d1150、d1151、d1152並輸入「q」結束。 5.將目標碟啟始文件系統安裝到來源碟上,其拷貝其內容: #mount/dev/d1150/mnt #cd/stand #find.-print|cpio-pdumv /mnt #umount/mnt 6.將目標碟根文件系統安裝到來源碟上並其拷貝其內容: # mount/dev/d1152/mnt #find/-mount print|cpio-pdumv/mnt 7.建立目標碟根文件系統中的文件系統安裝點: #cd /mnt #mkdir mnt stand;chmod 755 mnt stand;chgrp bin mnt stand #umount/mnt |
送花文章: 3,
|
2006-01-20, 11:58 PM | #12 (permalink) |
榮譽會員
|
Linux技巧小總結
1、處理特殊的檔案名假設Linux系統中有一個檔案名叫「-aaa」,如果我們想對它進行操作,例如現在要移除它,如果我們按照一般的移除方法在指令行中輸入rm -aaa指令,界面將會提示我們是無效選項(invalid option),原來由於檔案名的第一個字元為 - ,Linux把檔案名當作選項了,我們可以使用「--」符號來解決這個問題,例如我們可以輸入rm -- -aaa指令來移除-aaa文件。如果是其他特殊字元的話可以在特殊字元前加一個「」符號,或者用雙引號把整個檔案名括起來。 2、修復Linux下超級用戶的密碼 如果超級用戶將密碼忘記,就無法進入系統,也無法管理和使用系統。本來這種事不太可能發生,但是在一些Linux單機使用者,尤其是初學者中,卻是比較容易發生。 一般的解決方法就是格式化硬碟來重新安裝系統,但這有點兒小題大作了。準備好bootdisk和rootdisk兩張軟碟,從軟式磁碟機啟動,啟動到 root盤並出現shell提示號。將Linux根目錄分區mount至/mnt目錄,比如你的Linux在硬碟第一分區,就在指令行中輸入mount /dev/hda1 /mnt,然後進入mnt目錄,將其中的etc/passwd文件改名,輸入mv /mnt/etc/passwd /mnt/etc/passwd.bak就可以了;接著使用指令cp /etc/passwd /mnt/etc/passwd將軟碟上的/etc/passwd文件複製到硬碟中的etc目錄下,這樣重新由硬碟啟動,登入時就不會詢問超級密碼;最後使用mv/etc/passwd.bak passwd指令將passwd文件改回,再執行passwd指令重新設定密碼就可以了。 3、直接進行Linux的安裝工作通常我們在安裝某個操作系統軟體時,需要該系統的起始碟啟動才能安裝。但我們在安裝Linux操作系統時,可以利用該系統光碟中的一個名為 loadlin.exe的DOS軟體,將Linux核心直接調入記憶體,並由Linux核心替代當前操作系統來接管電腦,並進入Linux的安裝界面。在安裝Linux時,我們只要在執行對話視窗中輸入loadlin E:imagesvmlinuz root=/dev/ram initrd=E:imagesinitrd.img這個指令就可以直接安裝Linux了;其中E是光碟磁碟代號,E:imagesvmlinuz為 Linux核心名。 4、快速啟動Linux系統隨著個人電腦設定的日益提高,在自己的電腦上安裝Linux系統已經不是什麼新鮮的事了。 假設我們的電腦上同時裝有windows和Linux兩個操作系統,應該如何啟動Linux呢? 是否每次都需要重啟電腦,通過LiLo啟始?其實如果我們在dos下,有一種簡單快速啟動Linux的方法,那就是load Linux。 loadlin.exe是在dos下的可執行程序,它可以在純dos環境下迅速啟動Linux,而且無需重啟電腦,通常我們可以在光碟的 /kernels目錄下可以找到這個程序。 如果不知這個程序被放置於安裝碟的何處,可以使用「find -name loadlin*」指令來尋找。 找到之後將其複製到dos分區中,同時還需要複製一份你所使用的Linux內核文件。 可以通過windows直接從光碟複製,也可在Linux環境下使用mcopy指令將文件copy到dos分區;接著再編寫一個Linux.bat的批次處理文件,文件內容如下: c: loadlin c:vmlinuz root=/dev/hda1 ro 其中我們假設loadlin.exe和vmlinuz這兩個內核文件都在c碟根目錄,而root為Linux根設備,而且Linux處於硬碟第一分區,所以設備名為/dev/hda1,ro意為readonly。 以後在dos下要啟動Linux時,執行Linux.bat就可以了。這樣啟動Linux快速高效,大大的減少了系統自我檢驗時等待的時間。 5、消除Xwindows下的當機現象 如果我們在Xwindows狀態下執行Linux時,由於硬體本身的問題或者自己操作上的不當,有時侯可能會導致系統突然失去回應,也就是我們一般到的一種當機現象,其實此時系統並沒有當機。 我們可以用兩個常用的方法來消除這種現象:第一,用鍵碟上的復合鍵Ctrl+Alt+Backspace來關閉當前正在執行的工作;第二,首先按住鍵碟上的Ctrl+Alt+F2復合鍵,讓系統切換到另一個操作台,然後登入到系統,再執行#ps -ax|grep startx指令,這將會列出你的Xserver的工作標幟(PID),接著在指令行中輸入如下指令就能消除Xwindows下的當機現象:#kill -9 PID_Number,最後通過Alt+F1復合鍵返回原來的平台。 6、快速關閉Linux系統 舊版本的的Linux/UNIX系統必須先執行shutdown指令,然後才能關閉電源,但最新版本的Linux/UNIX系統已經在這個方面作了很大的改進,再也沒有必要像以前那樣關機了。 因為新版本的系統借鑒了大型機的技術,採用了抗掉電的日誌式文件系統,可以自動跟蹤儲存用戶資料、自動同步重新整理文件系統,用戶完全可以隨手關閉電源,從而達到快速關閉系統的目的了。 7、巧妙使用rm指令我們知道在Linux字元界面中,要移除一個文件的話可以使用rm指令,移除一個目錄可以使用rmdir指令。 但由於rmdir指令只能移除空白的目錄,假使某個目錄下面有文件,就只能先用rm指令來把目錄中的文件移除掉才可以,所以通常需要rmdir與rm這兩個指令配合使用才能徹底移除一個完整的目錄。 但用這種方法來對付幾級子目錄還能湊合,如果一個目錄中含有若干個子目錄,而且這若干子目錄中又包含了若干級子目錄,再使用這種方法不把你累死才怪。 現在我們可以使用帶-r參數的rm指令來移除一個非空目錄,例如我們在指令行中輸入rm -r bbb這樣的指令,表示系統將把bbb目錄中包含的所有文件和子目錄全部移除掉。 8、善用虛擬操作台 當我們登入進Linux系統後,如果再按一下鍵碟上的Alt+F2鍵,這時我們又可以看到一個Shell提示號,其實這個就是第二個虛擬操作台。通常,新安裝的Linux系統共有四個虛擬操作台,我們可以分別用復合鍵Alt+F1、Alt+F2、Alt+F3、Alt+F4來訪問它們。 使用虛擬操作台頻率最多的地方就是,當某一個程式出錯鎖住輸入時或者Linux系統突然失去回應時,就可以切換到其他虛擬操作台登入進入後殺掉這個出現錯誤的工作工作。 9、增加虛擬快取 如果電腦上的SWAP(交換空間)不夠了,只要我們的硬碟上還有空餘的空間,我們就可以把這些剩餘空間利用起來,我們可以直接使用指令:mkswap /dev/hda(假設Linux的驅動器是/dev/hda),swapon /dev/hda;要自動啟動Swap,可以把新的分區加入到etc/fstab中去,照著原來swap的寫就行了。 用"free"檢查swap的大小, Linux支持最多16個交換分區,每個交換分區最大128M,沒有空閒分區的時候,可以用個大文件來建立。下面是執行的一系列指令: #dd if=/dev/zero of=swapfile bs=1024 count=8192 #mkswap swapfile 8192 #sync #swapon swapfile 10、巧妙使用Tab鍵 大家知道在Linux字元界面中輸入指令時,有時需要輸入很多字元,如果經常這樣逐個逐個地輸入字元,比較煩瑣。假設按鍵輸入的字元足以確定目錄下一個唯一的文件時,我們只須按鍵碟上的 Tab 鍵就可以自動補齊該檔案名的剩下部分,例如要把目錄 /ccc 下的文件 ddddddd-1.2.3.tar.gz 解包時,當我們在指令行中按鍵輸入到tar xvfz /ccc/d時,如果該檔案是該目錄下唯一以d起頭的文件的話就可以直接按下鍵碟上的Tab鍵,這時指令會被自動補齊為:tar xvfz /ccc/ddddddd-1.2.3.tar.gz ,從而提高了輸入效率。 11、多用拷貝與貼上來提高操作速度 Linux系統安裝後,每次啟動到字元界面時都會自動執行一個叫gpm的程序, 該程序執行後就可以用滑鼠來拷貝與貼上了。 具體做法是按住滑鼠左鍵移到讓要拷貝的地方突出顯示, 這時突出顯示的區域已經被拷貝, 再按滑鼠右鍵拷貝的內容就會被貼上在游標所在位置了。 如果我們在Xwindow下執行Linux系統,拷貝與貼上的操作與在普通的Win9x系統下一樣。 12、加快Linux存取資料 如果我們想快速提高Linux下的硬碟讀取資料,可以在Linux下進行一些設定,讓Linux在32位輸入輸出方式和DMA通道方式下進行工作。 設定時,在Linux指令界面中輸入指令/sbin/hdparm -cl /dev/hda來開啟32bit傳輸方式,輸入指令/sbin/hdparm -dl /dev/hda來開啟DMA傳輸方式,接著再輸入指令/sbin/hdparm -kl /dev/hda來使硬碟在Reset之後仍然保持上述的設定,通過這些設定,我們就能提高Linux的讀磁碟速度到1倍以上 |
送花文章: 3,
|
2006-01-24, 09:17 PM | #14 (permalink) |
榮譽會員
|
】LINUX安裝問題匯總
伺服器類 Q:朋友們,我是個LINUX新手,想問一下LINUX啟動碟如何做! A:(以RedHat為例)。 在/images目錄下有boot.img和supp.img兩個文件,boot.img製作啟動碟,supp.img製作增強盤。執行/dosutils中的rawrite.exe Enter disk image source file name: 目錄/boot.img Enter target diskette drive: a: Q:請問如何安裝rpm文件? A:1.安裝一個包 # rpm -ivh rpm文件 2.昇級一個包 # rpm -Uvh rpm文件 3.移走一個包 # rpm -e Q: redhat啟動時如何直接出現圖形化login menu? A:root登入 linuxconf config->boot mode->Mode->default boot mode 選項"Graphics & Network" pthinker Q:安裝ORACLE時出現錯誤? A: 1)需要將ORACLE 的orainst 目錄拷到硬碟,先執行oratab.sh (2)oracle 8.0.5 的安裝與你的Linux版本有關,2.1和2.2的核安裝不樣! (3)你的D版是oracle 8.0.5的標準版,許多選件都沒有,去下載個企業版或 oracle 8i for Linux Q:我想recompile kernel , 以防不測想先作=一張原核心的起動盤,怎麼做? A:啟動軟碟製作方法: 進入/boot/目錄, 用 rdev 指令設定根設備為LINUX系統的根文件系統。 rdev vmlinuz /dev/hda? ?視你的系統而定找張格式化的軟碟,執行: dd if=/boot/vmlinuz of=/dev/fd0 bs=8192 好了。dd指令很危險,小心。 做好新核心可以用linuxconf加入到組態中, 很方便,別忘了lilo一遍,否則就有樂子了。 Q:lilo裝不上? A1:首先要檢查你的硬碟是否設定為主硬碟,我曾經碰到過,機器只有一個HDD,但設定為從硬碟,就 不能安裝LILO,改為主硬碟後,就一切OK wangxin A2:安裝時LILO裝到First sector of boot partition中,可能會裝不上,別管它,裝好後用軟碟啟動,修改 /etc/lilo.conf 把 boot=... 一行改為 boot=dev/hda1 然後執行 lilo 指令,如果沒有出錯資訊,就應該可以了。 Q:如果NT分區是NTFS格式的,如何與LINUX並存? A:如果NT裝在NTFS分區裡面,則在某一些硬碟上安裝 Linux是非常危險的事情!如果用Linux的fdisk改變 任何關於NT的分區的任何訊息,例如set active,都 可能導致NT的崩潰,主要原因是NT不能正確處理被Linux 的fdisk處理過的NTFS分區,啟動時候會報告kernel文件 損壞的錯誤。萬一您不幸出現了這樣的錯誤,則以後必然 每一次都極有可能發生同樣的事情。但是這種錯誤目前 我只在火球大於3.2G的硬碟上發現過,其他檔案類型的硬碟好像 沒有類似的問題。另外,據我瞭解,只在RedHat上發生 這種錯誤,Debian和Slackware並不會導致此類故障(不太明白為什麼)。 如果要在同一個硬碟上安裝NT和Linux,千萬把NT的系統目錄 安裝在FAT上,否則連你自己也救不了你自己。:-) Q:請問啟動後顯示L後就沒動靜了是怎麼回事?謝謝! A:可能是使用了大硬碟,可在CMOS中將LBA方式該為CHS方式,或將硬碟讀寫模式改為於小硬碟相容。toolbox參考「文章薈萃」裡面的關於LILO的文章。 Q:I740的安裝? A:去ftp://ftp.precisioninsight.com/pub/pi/XBF 下載XBF-i740-glibc-1.0.0-1.i386.rpm(這是對應Red Hat的rpm安裝包) 和xf86config-glibc-1.0.0.i386.tgz。 然後進行如下操作: (1) rpm -ivh XBF-i740-glibc-1.0.0-1.i386.rpm (2) ln -sf /usr/X11R6/bin/XBF_i740 /etc/X11/X (3) tar xvzf xf86config-glibc-1.0.0.i386.tgz (4) 執行 「xf86config」 你就梢栽諳允究ㄊ?詗p庵姓業絠740的驅動程式了。 Q:Trident9685在RedHat Linux5.1下的設定? A:Trident9685(2MB顯示記憶體)在RedHat Linux5.1的XFree86-3.3.1-14下系統能自動識別為Tr9660,在選項顯示器時可選用NEC MultiSync 3D,經過系統測試後,顯示模式為800*600 8bit,這時選項let me choose 可選項800*600 16bit ,系統安裝完成後重新啟動,按鍵輸入startx進入X11,可有70Hz的垂直重新整理頻率。 redlinux Q:如何在Linux下使用nVIDIA Riva TNT2 Vanta圖形加速卡? A1:到nVIDIA的主頁去下載一個驅動程式,名字是RIVA-X-GLX-1.0-glibc-i386.tar.gz ,我裝過小影霸TNT2. A2:乾脆用新版的軟體,如:turbolinux4.0,直接支持它。 Q:我是如何在聯想奔月2000上設定I740顯示卡的。 A:我在聯想奔月2000上裝了REDHAT6 下載了以下顯示卡支持。ftp://ftp.freesoft.cei.gov.cn/pub/mirrors/ftp.redhat.com/redhat/XBF/XBF-i740-glibc-1.0.0-1.i386.rpm ftp://ftp.freesoft.cei.gov.cn/pub/mi...1.0.0.i386.tgz 按照其中說明安裝,然後執行xf86config 1.滑鼠選PS/2 ,模擬3鍵 2。使用XKB,選MS自然鍵盤 3。顯示卡選 311:普通I740 4。顯示器設定 掃瞄頻率自己輸入: synchornization Horizontal: 30-69 Vertical : 50-120 資料是從顯示器說明中得到的。 然後設解析度, 儲存後,startx,就一切正常了。 這裡有一個小訣竅: 如果你沒有設你的機器名稱,第一次起X WINDOWS時 會等很長時間,只出現一個灰色螢幕和X型游標,好像當機 一樣。請耐心等待,不妨去喝倍水,或抽一根煙。當然直接 的方法是設定你的機器名,編輯/etc/hosts,在你的機器的 IP後加上一個名字。 千萬記住:耐心等待。 Q:如何在linux下設定yamaha 724(PCI)音效卡? A:先確定你的內核版本,最好是2.2.X .重新編譯一下內核,在選項裡選好你的音效卡的晶片檔案類型、IO位址、中斷、DMA...編譯安裝內核,看看是否能認出你的音效卡。 Q:我的網路卡在win95下用ne2000的驅動能正常工作,但在linux中找不到? A:估計是PnP的問題。你可能需要用pnpdump和isapnp程序先設定好你的網路卡。在參數調整好後把這isapnp的一行加在/etc/rc.d/rc文件的前面,也就是說在那些註釋行之後,做其它事情之前首先用isapnp把你的所有PnP卡都設定好,然後再說別的。 注意: 1.3c509網路卡最好用廠家的3C5X9XFG.EXE程序將各個參數設好並且禁止PnP,這樣在Linux 下用就沒有問題了。 2,ne2000相容卡中有些是ISA/PnP卡。對於這類PnP網路卡只能夠用isapnp進行設定後才能夠使用。 Q:我的網路卡是3COM的3C905B,有誰知 道哪兒能找到它的驅動程式? A:可直接使用3c59x.o 如果是認不出來的話,可能是3c509b設定成PnP,Linux不認和認錯irq, 所以先disable PnP試試 Q:請問DLINK220 ISA PNP如何在TURBO中使用? LINUX是不是所有的內裝貓都認,如何配? 多謝!! A:不知你用的是那個公司的Linux? 是Turbo4的話:turbopnp/turbopnpcfg搜尋即插即用ISA/PCI 設備(我覺得這方面Turbo比RH好用),搜尋到了的話進行組態,最好手動式,內貓用的是cua2/cua3, cua2<=>com3 ..turbonetcfg組態網路卡。 Q:如何組態Accton PNP網路卡? A:用NE2000的驅動程式來驅動Accton PNP網路卡,修改/etc/conf.modules (如果沒有就新增一個),並增加如下內容: alias eth0 ne options ne io=0x300 或者在lilo.conf中增加如下內容: append="ether=10,0x300,eth0" Q:為什麼Linux啟動後找不到NE2000網路卡呢? A:NE2000的網路卡LINUX不能自動檢測,需要手動式設定。使用網路卡帶 的驅動盤找出網路卡的中斷和IO,修改/etc/conf.modules,並添 加如下內容: alias eth0 ne options ne io=0x300 或者在lilo.conf中增加如下內容: append="ether=10,0x300,eth0" Q:在RedHat Linux 6.0中已經撥號上了網,但卻無法使用Netscape瀏覽,這時為何? A:一般是DNS錯誤,你在撥號組態裡把NAMESERVER加上 Q:貓通過交換機連接INTERNET,也就是先撥0、9的外線,又應如何設定? A:如撥169, 則要: 0,169 加個" , "就行了, 如果不通, 就再加一個"," 這樣便會再延時,等待交換機做出反應。 Q. 撥號不能工作, 為什麼? A. 撥號網路不工作的原因很多. 1) Modem不能撥號 如果調製解調器沒有撥號的聲音,這說明您的連接沒有開始, 請檢視var/log/messages 中PPPD的出錯資訊,您可以執行 minicom, 一個簡單的撥號程序,輸入 AT . 調製解調器應該返回 OK. 如果 不返回,那麼是您 的串列阜組態錯誤。重新執行 TurboPPPCfg確定調製解調器 設備已經正確組態。並且已經 連線到 /dev/modem ,在Linux下不支持軟Modem。 2) 調製解調器已經開始撥號,但是無法連入ISP * 如果ISP使用PAP身份驗證,您必須開啟TurboPPPCfg中的PAP選項。同時確定 您的密碼和用戶 名已經正確輸入. * 如果反過來ISP不使用PAP,您卻使用PAP,也會出現類似問題。 * 調製解調器的資料格式錯誤,您可以執行 minicom, 輸入 AT&F1. 接著輸入: AT&W. 結束即可。 3) 內裝ISDN不工作 - 大多數內裝ISDN設備在Linux下不能正確工作,如果您要為 Linux購買ISDN設備,請 您購買能夠支持標準串列阜設備的ISDN卡,或者外置 ISDN卡 Q:我的滑鼠是LOGITEGH,書上表明支持,在安裝和XWINDOWS時不能動,誰能告訴我WHY? A: 安裝時應該能自動測試出來。羅技的滑鼠好像基本都是三鍵 的。安裝時選項正確了嗎?在LINUX啟動後,登入,動動 MOUSE。一般應該看到方塊狀的游標。 Q:檢測 RAID容錯式獨立磁碟陣列 陣列之後出現 VFS:Cannot open root device 00:30 Kernel panic: VFS: Unable to mount root fs on 00:30 有時正常.在幾次啟動之間沒有修改任何東西.但時好時壞. 這是什麼原因? 用RedHat 6.0. A:檢查SCSI通道和ID號,可能是這樣,你在安裝LINUX時,沒有連接RAID容錯式獨立磁碟陣列設備或開啟電源。而你把LINUX安裝在本機SCSI磁牒上了。 你開啟RAID容錯式獨立磁碟陣列系統重新啟動後,根文件系統仍然存在於本機SCSI磁牒上,但是新的磁牒加入了。所以本機磁牒的主輔設備號改變了,也就是說,磁碟代號變了。所以改變RAID容錯式獨立磁碟陣列盤的通道號和ID,可能會有效。 |
送花文章: 3,
|
2006-01-24, 09:18 PM | #15 (permalink) |
榮譽會員
|
Linux日誌管理詳解
日誌對於安全來說,非常重要,他記錄了系統每天發生的各種各樣的事情,你可以通過他來檢查錯誤發生的原因,或者受到攻擊時攻擊者留下的痕跡。日誌主要的功能有:審計和監測。他還可以既時的監測系統狀態,監測和追蹤侵入者等等。 在Linux系統中,有三個主要的日誌子系統: 連接時間日誌--由多個程序執行,把紀錄寫入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系統管理員能夠跟蹤誰在何時登入到系統。 工作統計--由系統內核執行。當一個工作終止時,為每個工作往工作統計文件(pacct或acct)中寫一個紀錄。工作統計的目的是為系統中的基本服務提供指令使用統計。 錯誤日誌--由syslogd(8)執行。各種系統守護工作、用戶程序和內核通過syslog(3)向文件/var/log/messages報告值得注意的事件。另外有許多UNIX程序新增日誌。像HTTP和FTP這樣提供網路服務的伺服器也保持詳細的日誌。 常用的日誌文件如下: access-log 紀錄HTTP/web的傳輸 acct/pacct 紀錄用戶指令 aculog 紀錄MODEM的活動 btmp 紀錄失敗的紀錄 lastlog 紀錄最近幾次成功登入的事件和最後一次不成功的登入 messages 從syslog中記錄訊息(有的連接到syslog文件) sudolog 紀錄使用sudo發出的指令 sulog 紀錄使用su指令的使用 syslog 從syslog中記錄訊息(通常連接到messages文件) utmp 紀錄當前登入的每個用戶 wtmp 一個用戶每次登入進入和結束時間的永久紀錄 xferlog 紀錄FTP會話 utmp、wtmp和lastlog日誌文件是多數重用UNIX日誌子系統的關鍵--保持用戶登入進入和結束的紀錄。有關當前登入用戶的訊息記錄在文件utmp中;登入進入和結束紀錄在文件wtmp中;最後一次登入文件可以用lastlog指令察看。資料交換、關機和重新啟動也記錄在wtmp文件中。所有的紀錄都包含時間戳。這些文件(lastlog通常不大)在具有大量用戶的系統中增長十分迅速。例如wtmp文件可以無限增長,除非定期截取。許多系統以一天或者一周為服務機構把wtmp組態成循環使用。它通常由cron執行的指令碼來修改。這些指令碼重新命名並循環使用wtmp文件。通常,wtmp在第一天結束後命名為wtmp.1;第二天後wtmp.1變為wtmp.2等等,直到wtmp.7。 每次有一個用戶登入時,login程序在文件lastlog中察看用戶的UID。如果找到了,則把用戶上次登入、結束時間和主機名寫到標準輸出中,然後login程序在lastlog中紀錄新的登入時間。在新的lastlog紀錄寫入後,utmp文件開啟並插入用戶的utmp紀錄。該紀錄一直用到用戶登入結束時移除。utmp文件被各種指令文件使用,包括who、w、users和finger。 下一步,login程序開啟文件wtmp附加用戶的utmp紀錄。當用戶登入結束時,具有更新時間戳的同一utmp紀錄附加到文件中。wtmp文件被程序last和ac使用。 具體指令 wtmp和utmp文件都是二進制文件,他們不能被諸如tail指令剪貼或合併(使用cat指令)。用戶需要使用who、w、users、last和ac來使用這兩個文件包含的訊息。 who:who指令查詢utmp文件並報告當前登入的每個用戶。Who的預設輸出包括用戶名、終端檔案類型、登入日期及遠端主機。例如:who(Enter鍵)顯示 chyang pts/0 Aug 18 15:06 ynguo pts/2 Aug 18 15:32 ynguo pts/3 Aug 18 13:55 lewis pts/4 Aug 18 13:35 ynguo pts/7 Aug 18 14:12 ylou pts/8 Aug 18 14:15 如果指明了wtmp檔案名,則who指令查詢所有以前的紀錄。指令who /var/log/wtmp將報告自從wtmp文件新增或刪改以來的每一次登入。 w:w指令查詢utmp文件並顯示當前系統中每個用戶和它所執行的工作訊息。例如:w(Enter鍵)顯示:3:36pm up 1 day, 22:34, 6 users, load average: 0.23, 0.29, 0.27。 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT chyang pts/0 202.38.68.242 3:06pm 2:04 0.08s 0.04s -bash ynguo pts/2 202.38.79.47 3:32pm 0.00s 0.14s 0.05 w lewis pts/3 202.38.64.233 1:55pm 30:39 0.27s 0.22s -bash lewis pts/4 202.38.64.233 1:35pm 6.00s 4.03s 0.01s sh /home/users/ ynguo pts/7 simba.nic.ustc.e 2:12pm 0.00s 0.47s 0.24s telnet mail ylou pts/8 202.38.64.235 2:15pm 1:09m 0.10s 0.04s -bash users:users用單獨的一行列印出當前登入的用戶,每個顯示的用戶名對應一個登入會話。如果一個用戶有不止一個登入會話,那他的用戶名將顯示相同的次數。例如:users(Enter鍵)顯示:chyang lewis lewis ylou ynguo ynguo last:last指令往回搜尋wtmp來顯示自從文件第一次新增以來登入過的用戶。例如: chyang pts/9 202.38.68.242 Tue Aug 1 08:34 - 11:23 (02:49) cfan pts/6 202.38.64.224 Tue Aug 1 08:33 - 08:48 (00:14) chyang pts/4 202.38.68.242 Tue Aug 1 08:32 - 12:13 (03:40) lewis pts/3 202.38.64.233 Tue Aug 1 08:06 - 11:09 (03:03) lewis pts/2 202.38.64.233 Tue Aug 1 07:56 - 11:09 (03:12) 如果指明了用戶,那麼last只報告該用戶的近期活動,例如:last ynguo(Enter鍵)顯示: ynguo pts/4 simba.nic.ustc.e Fri Aug 4 16:50 - 08:20 (15:30) ynguo pts/4 simba.nic.ustc.e Thu Aug 3 23:55 - 04:40 (04:44) ynguo pts/11 simba.nic.ustc.e Thu Aug 3 20:45 - 22:02 (01:16) ynguo pts/0 simba.nic.ustc.e Thu Aug 3 03:17 - 05:42 (02:25) ynguo pts/0 simba.nic.ustc.e Wed Aug 2 01:04 - 03:16 1+02:12) ynguo pts/0 simba.nic.ustc.e Wed Aug 2 00:43 - 00:54 (00:11) ynguo pts/9 simba.nic.ustc.e Thu Aug 1 20:30 - 21:26 (00:55) ac:ac指令根據現用的/var/log/wtmp文件中的登入進入和結束來報告用戶連結的時間(小時),如果不使用標誌,則報告總的時間。例如:ac(Enter鍵)顯示:total 5177.47 ac -d(Enter鍵)顯示每天的總的連結時間 Aug 12 total 261.87 Aug 13 total 351.39 Aug 14 total 396.09 Aug 15 total 462.63 Aug 16 total 270.45 Aug 17 total 104.29 Today total 179.02 ac -p (Enter鍵)顯示每個用戶的總的連接時間 ynguo 193.23 yucao 3.35 rong 133.40 hdai 10.52 zjzhu 52.87 zqzhou 13.14 liangliu 24.34 total 5178.24 lastlog:lastlog文件在每次有用戶登入時被查詢。可以使用lastlog指令來檢查某特定用戶上次登入的時間,並格式化輸出上次登入日誌/var/log/lastlog的內容。它根據UID排序顯示登入名、連接阜號(tty)和上次登入時間。如果一個用戶從未登入過,lastlog顯示"**Never logged**。注意需要以root執行該指令,例如: rong 5 202.38.64.187 Fri Aug 18 15:57:01 +0800 2000 dbb **Never logged in** xinchen **Never logged in** pb9511 **Never logged in** xchen 0 202.38.64.190 Sun Aug 13 10:01:22 +0800 2000 另外,可一加一些參數,例如,last -u 102將報告UID為102的用戶;last -t 7表示限制上一周的報告。 工作統計 UNIX可以跟蹤每個用戶執行的每條指令,如果想知道昨晚弄亂了哪些重要的文件,工作統計子系統可以告訴你。它對還跟蹤一個侵入者有說明 。與連接時間日誌不同,工作統計子系統預設不啟動,它必須啟動。在Linux系統中啟動工作統計使用accton指令,必須用root身份來執行。Accton指令的形式accton file,file必須先存在。先使用touch指令來新增pacct文件:touch /var/log/pacct,然後執行accton: accton /var/log/pacct。一旦accton被啟動,就可以使用lastcomm指令監測系統中任何時候執行的指令。若要關閉統計,可以使用不帶任何參數的accton指令。 lastcomm指令報告以前執行的文件。不帶參數時,lastcomm指令顯示當前統計文件生命週期內紀錄的所有指令的有關訊息。包括指令名、用戶、tty、指令花費的CPU時間和一個時間戳。如果系統有許多用戶,輸入則可能很長。下面的例子: crond F root ?? 0.00 secs Sun Aug 20 00:16 promisc_check.s S root ?? 0.04 secs Sun Aug 20 00:16 promisc_check root ?? 0.01 secs Sun Aug 20 00:16 grep root ?? 0.02 secs Sun Aug 20 00:16 tail root ?? 0.01 secs Sun Aug 20 00:16 sh root ?? 0.01 secs Sun Aug 20 00:15 ping S root ?? 0.01 secs Sun Aug 20 00:15 ping6.pl F root ?? 0.01 secs Sun Aug 20 00:15 sh root ?? 0.01 secs Sun Aug 20 00:15 ping S root ?? 0.02 secs Sun Aug 20 00:15 ping6.pl F root ?? 0.02 secs Sun Aug 20 00:15 sh root ?? 0.02 secs Sun Aug 20 00:15 ping S root ?? 0.00 secs Sun Aug 20 00:15 ping6.pl F root ?? 0.01 secs Sun Aug 20 00:15 sh root ?? 0.01 secs Sun Aug 20 00:15 ping S root ?? 0.01 secs Sun Aug 20 00:15 sh root ?? 0.02 secs Sun Aug 20 00:15 ping S root ?? 1.34 secs Sun Aug 20 00:15 locate root ttyp0 1.34 secs Sun Aug 20 00:15 accton S root ttyp0 0.00 secs Sun Aug 20 00:15 進 程統計的一個問題是pacct文件可能增長的十分迅速。這時需要交互式的或經過cron機制執行sa指令來保持日誌資料在系統控制內。sa指令報告、清理並維護工作統計文件。它能把/var/log/pacct中的訊息壓縮到摘要文件/var/log/savacct和/var/log/usracct中。這些摘要包含按指令名和用戶名分類的系統統計資料。sa預設情況下先讀它們,然後讀pacct文件,使報告能包含所有的可用訊息。sa的輸出有下面一些標記項: avio--每次執行的平均I/O操作次數 cp--用戶和系統時間總和,以分鍾計 cpu--和cp一樣 k--內核使用的平均CPU時間,以1k為服務機構 k*sec--CPU儲存於完整性,以1k-core秒 re--既時時間,以分鍾計 s--系統時間,以分鍾計 tio--I/O操作的總數 u--用戶時間,以分鍾計 例如: 842 173.26re 4.30cp 0avio 358k 2 10.98re 4.06cp 0avio 299k find 9 24.80re 0.05cp 0avio 291k ***other 105 30.44re 0.03cp 0avio 302k ping 104 30.55re 0.03cp 0avio 394k sh 162 0.11re 0.03cp 0avio 413k security.sh* 154 0.03re 0.02cp 0avio 273k ls 56 31.61re 0.02cp 0avio 823k ping6.pl* 2 3.23re 0.02cp 0avio 822k ping6.pl 35 0.02re 0.01cp 0avio 257k md5sum 97 0.02re 0.01cp 0avio 263k initlog 12 0.19re 0.01cp 0avio 399k promisc_check.s 15 0.09re 0.00cp 0avio 288k grep 11 0.08re 0.00cp 0avio 332k awk 用戶還可以根據用戶而不是指令來提供一個摘要報告。例如sa -m顯示如下: 885 173.28re 4.31cp 0avk root 879 173.23re 4.31cp 0avk alias 3 0.05re 0.00cp 0avk qmailp 3 0.01re 0.00cp 0avk Syslog設備 Syslog已被許多日誌函數採納,它用在許多保護措施中--任何程序都可以通過syslog 紀錄事件。Syslog可以紀錄系統事件,可以寫到一個文件或設備中,或給用戶傳送一個訊息。它能紀錄本機事件或通過網路紀錄另一個主機上的事件。 Syslog設備依據兩個重要的文件:/etc/syslogd(守護工作)和/etc/syslog.conf組態文件,習慣上,多數syslog訊息被寫到/var/adm或/var/log目錄下的訊息文件中(messages.*)。一個典型的syslog紀錄包括產生程序的名字和一個文本訊息。它還包括一個設備和一個優先等級範圍(但不在日之中出現)。 每個syslog消息被賦予下面的主要設備之一: LOG_AUTH--認證系統:login、su、getty等 LOG_AUTHPRIV--同LOG_AUTH,但只登入到所選項的單個用戶可讀的文件中 LOG_CRON--cron守護工作 LOG_DAEMON--其他系統守護工作,如routed LOG_FTP--文件傳輸傳輸協定:ftpd、tftpd LOG_KERN--內核產生的消息 LOG_LPR--系統列印機緩衝池:lpr、lpd LOG_MAIL--電子郵件系統 LOG_NEWS--網路新聞系統 LOG_SYSLOG--由syslogd(8)產生的內部消息 LOG_USER--隨機用戶工作產生的消息 LOG_UUCP--UUCP子系統 LOG_LOCAL0~LOG_LOCAL7--為本機使用保留 Syslog為每個事件賦予幾個不同的優先等級: LOG_EMERG--緊急情況 LOG_ALERT--應該被立即改正的問題,如系統資料庫破壞 LOG_CRIT--重要情況,如硬碟錯誤 LOG_ERR--錯誤 LOG_WARNING--警告訊息 LOG_NOTICE--不是錯誤情況,但是可能需要處理 LOG_INFO--情報訊息 LOG_DEBUG--包含情報的訊息,通常旨在偵錯一個程序時使用 syslog.conf文件指明syslogd程序紀錄日誌的行為,該程序在啟動時查詢組態文件。該檔案由不同程序或消息分類的單個 列項組成,每個占一行。對每類消息提供一個選項域和一個動作域。這些域由tab隔開:選項域指明消息的檔案類型和優先等級;動作域指明syslogd接收到一個與選項標準相匹配的消息時所執行的動作。每個選項是由設備和優先等級組成。當指明一個優先等級時,syslogd將紀錄一個擁有相同或更高優先等級的消息。所以如果指明"crit",那所有標為crit、alert和emerg的消息將被紀錄。每行的行動域指明當選項域選項了一個給定消息後應該把他傳送到哪兒。例如,如果想把所有郵件消息紀錄到一個文件中,如下: #Log all the mail messages in one place mail.* /var/log/maillog 其他設備也有自己的日誌。UUCP和news設備能產生許多外部消息。它把這些消息存到自己的日誌(/var/log/spooler)中並把等級限為"err"或更高。例如: # Save mail and news errors of level err and higher in aspecial file. uucp,news.crit /var/log/spooler 當一個緊急消息到來時,可能想讓所有的用戶都得到。也可能想讓自己的日誌接收並儲存。 #Everybody gets emergency messages, plus log them on anther machine *.emerg * *.emerg @linuxaid.com.cn alert消息應該寫到root和tiger的個人帳號中: #Root and Tiger get alert and higher messages *.alert root,tiger 有時syslogd將產生大量的消息。例如內核("kern"設備)可能很冗長。用戶可能想把內核消息紀錄到/dev/console中。下面的例子表明內核日誌紀錄被註釋掉了: #Log all kernel messages to the console #Logging much else clutters up the screen #kern.* /dev/console 用戶可以在一行中指明所有的設備。下面的例子把info或更進階別的消息送到/var/log/messages,除了mail以外。等級"none"禁止一個設備: #Log anything(except mail)of level info or higher #Don't log private authentication messages! *.info:mail.none;autHPriv.none /var/log/messages 在有些情況下,可以把日誌送到列印機,這樣網路入侵者怎麼修改日誌都沒有用了。通常要廣泛紀錄日誌。Syslog設備是一個攻擊者的顯著目標。一個為其他主機維護日誌的系統對於防範伺服器攻擊特別脆弱,因此要特別注意。 有個小指令logger為syslog(3)系統日誌文件提供一個shell指令接頭,使用戶能新增日誌文件中的 列項。用法:logger 例如:logger This is a test! 它將產生一個如下的syslog紀錄:Aug 19 22:22:34 tiger: This is a test! 注意不要完全相信日誌,因為攻擊者很容易修改它的。 5. 程序日誌 許多程序通過維護日誌來反映系統的安全狀態。su指令允許用戶獲得另一個用戶的權限,所以它的安全很重要,它的文件為sulog。同樣的還有sudolog。另外,想Apache有兩個日誌:access_log和error_log。 |
送花文章: 3,
|