查看單個文章
舊 2006-01-12, 01:56 PM   #4 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

第四章 內核、用戶管理和工作自動化

第一節 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.
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次