前言:中文期刊網(wǎng)精心挑選了linux系統(tǒng)范文供你參考和學(xué)習(xí),希望我們的參考范文能激發(fā)你的文章創(chuàng)作靈感,歡迎閱讀。
linux系統(tǒng)范文1
關(guān)鍵詞:虛擬文件系統(tǒng);內(nèi)存技術(shù)設(shè)備;日志文件系統(tǒng)
中圖分類號(hào):TP316 文獻(xiàn)標(biāo)識(shí)碼:A
嵌入式產(chǎn)品已經(jīng)滲透到人們生活的方方面面,特別是在數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)高速發(fā)展的今天,手持信息產(chǎn)品正拓展著一片越來(lái)越大的市場(chǎng)。PDA、手機(jī)、掌上電腦、信息家電等各式手持產(chǎn)品已擁有了龐大的用戶群。手持信息產(chǎn)品所運(yùn)用的最關(guān)鍵的核心技術(shù)就是嵌入式操作系統(tǒng)。linux以其開(kāi)源的內(nèi)核和免費(fèi)的應(yīng)用程序、能夠自由地移植和開(kāi)發(fā)的優(yōu)勢(shì),更迎合了嵌入式市場(chǎng)的需求。
嵌入式Linux的開(kāi)發(fā)大致可分為三個(gè)層次:引導(dǎo)裝載內(nèi)核、構(gòu)造文件系統(tǒng)和圖形用戶界面。作為操作系統(tǒng)重要組成部分的文件系統(tǒng),它決定了操作系統(tǒng)本身的信息和用戶的數(shù)據(jù)在存儲(chǔ)設(shè)備上的組織形式。對(duì)嵌入式文件系統(tǒng)的研究、設(shè)計(jì)和開(kāi)發(fā)也逐漸成為嵌入式系統(tǒng)研究領(lǐng)域的一個(gè)方向。
1 嵌入式Linux文件系統(tǒng)
1.1 簡(jiǎn)介
文件系統(tǒng)是指在一個(gè)物理設(shè)備上的任何文件組織和目錄,它構(gòu)成了Linux系統(tǒng)上所有數(shù)據(jù)的基礎(chǔ)。Linux程序、庫(kù)、系統(tǒng)文件和用戶文件都駐留其中,因此它是系統(tǒng)中龐大復(fù)雜且又是最為基本和重要的資源。值得提出的是,Linux系統(tǒng)中的文件不僅包括普通的文件和目錄,每個(gè)和設(shè)備相關(guān)的實(shí)際實(shí)體也都被映射為一個(gè)文件,例如磁盤、打印機(jī)、終端等。這樣的設(shè)備文件又稱為特殊文件。所以,Linux下的文件是操作系統(tǒng)服務(wù)和設(shè)備的簡(jiǎn)單而又統(tǒng)一的接口。從某種意義上可以說(shuō),Linux里的一切事物都是文件。
在Linux中,文件系統(tǒng)的結(jié)構(gòu)是基于樹(shù)狀的,根在頂部,各個(gè)目錄和文件從樹(shù)根向下分支。
目錄樹(shù)的最頂端被稱為根目錄(/)。在后面介紹的所構(gòu)造文件系統(tǒng)結(jié)構(gòu)圖(圖1)即顯示了樹(shù)狀的文件系統(tǒng)。Linux操作系統(tǒng)由一些目錄和許多文件組成。
由于Linux是一個(gè)多任務(wù)、多用戶的操作系統(tǒng),因此它里面的文件還都被賦予了一定的權(quán)限,來(lái)決定誰(shuí)能讀、寫或執(zhí)行一個(gè)文件,以及這個(gè)文件的類型和如何執(zhí)行。例如下面的文件列表:
-rw-r-r- 1 root root 1756 Sep 9 2005 inittab
其表示:這個(gè)名為inittab的文件是普通文件;所有者有讀寫的權(quán)限;所在組和其他人都只有讀的權(quán)限;它的連接數(shù)為1;所有者及文件所屬的組都是root 文件中字節(jié)數(shù)為1756;文件創(chuàng)建日期是2005年9月9日。可以通過(guò)對(duì)文件屬性的設(shè)置,來(lái)滿足文件在不同用戶組、不同用戶操作下的不同狀態(tài)。
1.2 特點(diǎn)
由于嵌入式設(shè)備的一些特殊性,使得嵌入式文件系統(tǒng)除了滿足一般文件系統(tǒng)的基本要求外,還有一些自身的特性:文件系統(tǒng)面對(duì)的存儲(chǔ)介質(zhì)特殊;文件系統(tǒng)有快速恢復(fù)的特殊要求;物理文件系統(tǒng)的多樣性和動(dòng)態(tài)可裝配性;需要文件系統(tǒng)具有跨操作平臺(tái)的安全性;文件系統(tǒng)要能滿足整個(gè)系統(tǒng)的實(shí)時(shí)性要求。
2 文件系統(tǒng)的設(shè)計(jì)
2.1 實(shí)驗(yàn)主機(jī)和目標(biāo)平臺(tái)的連接
實(shí)驗(yàn)主機(jī)和目標(biāo)平臺(tái)的連接有兩種方法:一種是以太網(wǎng)連接,這種連接方式可以進(jìn)行內(nèi)核文件、根文件系統(tǒng)映像文件的下載;另一種是串口連接,這樣的連接方式可以供調(diào)試之用。
2.2 構(gòu)建文件系統(tǒng)
構(gòu)造基本目錄首先建立一個(gè)文件系統(tǒng)的工作空間。創(chuàng)建目錄/home/work,所構(gòu)造的文件系統(tǒng)就在work這個(gè)目錄中。建立基本目錄,如bin、dev、etc、lib、mnt、proc、sbin、tmp、usr、vat、tools。具體結(jié)構(gòu)見(jiàn)圖l。
其中,tools是便于開(kāi)發(fā)而創(chuàng)建的目錄。因?yàn)檎麄€(gè)系統(tǒng)要求盡量小,所以應(yīng)只包含一些必須的二進(jìn)制程序。開(kāi)發(fā)過(guò)程中需要用到的命令就放在tools中。/etc目錄下只包含了一些啟動(dòng)過(guò)程的配置文件。/ l i b 目錄下的modules子目錄包含了可動(dòng)態(tài)加載到核心的各種模塊。另外,目錄var下還應(yīng)創(chuàng)建兩個(gè)子目錄log和run,負(fù)責(zé)記錄系統(tǒng)的日志和運(yùn)行狀態(tài)。整個(gè)文件系統(tǒng)中除了tmp和var 目錄放在SDRAM內(nèi)以外,其他所有目錄都放在Flash中,因?yàn)閠rap和var中的內(nèi)容需要經(jīng)常寫入,所以放在可讀寫的RAM里。 當(dāng)在目標(biāo)平臺(tái)實(shí)現(xiàn)了一個(gè)嵌入式Linux之后,為了很好地管理操作系統(tǒng)和用戶的數(shù)據(jù)文件,引入了文件系統(tǒng)。物理文件系統(tǒng)是JFFS2,考慮到擴(kuò)充物理文件系統(tǒng)的要求,保留了Linux的VFS層次。考慮到存儲(chǔ)設(shè)備擴(kuò)充的要求,在Linux內(nèi)核中加入了對(duì)MTD設(shè)備的支持。根據(jù)上面的敘述,可給出整個(gè)文件系統(tǒng)的體系結(jié)構(gòu)圖,如圖2所示。
構(gòu)建文件系統(tǒng)最基本的要求就是系統(tǒng)能夠在此基礎(chǔ)上啟動(dòng)運(yùn)行起來(lái),所以,/sbin下的init程序必不可少。init程序是引導(dǎo)過(guò)程完成后內(nèi)核運(yùn)行的第一個(gè)程序,它能啟動(dòng)全部其他程序。只要init完成運(yùn)行全部必要的程序,該系統(tǒng)就開(kāi)始建立并開(kāi)始運(yùn)行。當(dāng)程序開(kāi)始啟動(dòng)時(shí),init讀取一個(gè)配置文件inittab,這個(gè)文件位于/etc下,它確定了init在啟動(dòng)和關(guān)機(jī)時(shí)的工作特性。在開(kāi)發(fā)的這個(gè)嵌入式系統(tǒng)中,所有的文件內(nèi)容只需保留與開(kāi)發(fā)要求有關(guān)的必須部分。所以inittab的內(nèi)容根據(jù)需要重新寫入。
這個(gè)系統(tǒng)運(yùn)行單用戶模式啟動(dòng),啟動(dòng)后立即運(yùn)行rc.sysinit腳本,進(jìn)行系統(tǒng)初始化動(dòng)作。rc.sysinit腳本也進(jìn)行了精簡(jiǎn),只保留了以讀寫的方式重新加載(mount)根文件系統(tǒng)的操作(內(nèi)核啟動(dòng)時(shí)只以只讀的方式加載了根文件系統(tǒng))。具體rc.sysinit腳本中的內(nèi)容如下:
# Remount the root filesystem read-write
# mount -n -o remount.rw /mount -o remount.rw -n /dev/mtdblock2/mount -a
為了在開(kāi)發(fā)過(guò)程中讓用戶與系統(tǒng)能進(jìn)行交互需要,啟動(dòng)/bin/bash 這個(gè)命令解釋器。用戶在鍵盤上輸入某些命令,bash將讀取輸入加以解析然后執(zhí)行該程序。/tools中的telnetd和/sbin中的pppd分別是遠(yuǎn)程登陸和串口通訊的后臺(tái)程序,加入它們也是為了方便開(kāi)發(fā)。另外,為了盡量精簡(jiǎn)內(nèi)核,程序都以動(dòng)態(tài)鏈接庫(kù)文件的方式編譯,即當(dāng)程序運(yùn)行到所需庫(kù)文件時(shí)才動(dòng)態(tài)加載。為確保運(yùn)行各種程序都能在/lib目錄中找到合適的庫(kù)文件,就干脆對(duì)/lib中的庫(kù)文件不作任何刪減,而完整的/lib目錄(含子目錄及全部庫(kù)文件)也不過(guò)2MB大小。
2.3 進(jìn)一步開(kāi)發(fā)
按照上一部份給出的文件系統(tǒng)體系結(jié)構(gòu),文件系統(tǒng)的實(shí)現(xiàn)主要在VFS層、物理文件系統(tǒng)層和MTD層。下面給出在MTD層Linux的源代碼做的一些修改,同時(shí)介紹JFFS2物理文件系統(tǒng)映像文件的生成。
3 支持MTD設(shè)備
對(duì)MTD設(shè)備的支持要經(jīng)過(guò)配置內(nèi)核、編寫設(shè)備驅(qū)動(dòng)程序和建立MTD設(shè)備這幾個(gè)步驟。
第一步,配置內(nèi)核參數(shù)。選中Memory Technology Devices(MTD)support,下面的子項(xiàng)中至少要選擇MTD partitioning support、Direct Char device access to M TD devices和Caching block device access to MTD devices這三項(xiàng)。其他的有關(guān)NFTL、CFI的支持根據(jù)需要選取。
第二步,編寫針對(duì)目標(biāo)平臺(tái)Flash設(shè)備的MTD驅(qū)動(dòng)程序,主要實(shí)現(xiàn)創(chuàng)建MTD 分區(qū)和刪除MTD分區(qū)的函數(shù)。創(chuàng)建分區(qū)的流程見(jiàn)圖3所示。刪除分區(qū)的函數(shù)比較簡(jiǎn)單,如果存在MTD分區(qū),就調(diào)用del_mtd_partitions(struct mtd info*)刪除分區(qū),并且刪除為MTD設(shè)備創(chuàng)建的映射表。
第三步,將修改過(guò)的MTD驅(qū)動(dòng)文件作為內(nèi)核文件的補(bǔ)丁,并給內(nèi)核文件打上這個(gè)補(bǔ)丁, 最后,編譯生成內(nèi)核文件。
第四步,使用mknod命令建立MTD設(shè)備。mknod命令的格式如下:
mknodc 90 //MTD字符設(shè)備
mknodb 31 //MTD塊設(shè)備
4 網(wǎng)卡設(shè)置方法
首先需要Linux kernel 2.6.1+,其次需要在編譯內(nèi)核的時(shí)候選上CONFIG_NET_RADIO。
安裝hostap-driver:
tar zxvf hostap-driver-0.1.3.tar.gz
cd hostap-driver-0.1.3
然后,用任意編輯器打開(kāi)該目錄下的Makefile文件,將第三行的KERNEL_PATH=加上你的內(nèi)核source地址,保存。
然后Make
make install
接下來(lái),先加載sysfs。修改/etc/fstab,加一行none /sys sysfs defaults 0 0。
在/etc/sysconfig/network-scripts/下建立一個(gè)ifcfg-eth1文件,內(nèi)容如下:
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Wireless
WIRELESS_ENC_KEY=“你的WEP加密字符串”
WIRELESS_ESSID=“AP網(wǎng)絡(luò)名”
WIRELESS_CHANNEL=“”
WIRELESS_MODE=“”
這樣就行了,其他的參數(shù)應(yīng)該會(huì)自動(dòng)從服務(wù)端獲取。除了enc,還有幾個(gè)常用的參數(shù),essid mode channel nick,其他參數(shù)請(qǐng)用iwconfig-help或者man iwconfig查看。
啟動(dòng)你的無(wú)線網(wǎng)卡,需要啟動(dòng)hostap和ipw2100這兩個(gè)模塊。找到/etc/modprobe.preload
在文件的最后依此加上:hostapipw2100,保存后退出。
5 小結(jié)
我們構(gòu)造了一個(gè)嵌入式版本的Linux文件系統(tǒng),它使得內(nèi)核在系統(tǒng)盡量精簡(jiǎn)的情況下能夠運(yùn)行起來(lái),并滿足產(chǎn)品和系統(tǒng)各方面的要求。在這個(gè)嵌入式文件系統(tǒng)中,引入了VFS的支持,雖然犧牲了一些空間,但是大大方便了今后各種物理文件系統(tǒng)的動(dòng)態(tài)加載。
參考文獻(xiàn)
[1]Karim Yaghmour著.韓存兵等譯.構(gòu)建嵌入式Linux系統(tǒng)[M].北京:中國(guó)電力出版社,2004.
[2]鄭樺.嵌入式Linux文件系統(tǒng)的設(shè)汁與實(shí)現(xiàn)[M].武漢:武漢理工大學(xué),2004.
linux系統(tǒng)范文2
關(guān)鍵詞:Linux操作系統(tǒng);安全策略;計(jì)算機(jī)技術(shù);安全性問(wèn)題
在計(jì)算機(jī)技術(shù)飛速發(fā)展的今天人們的學(xué)習(xí)、工作和生活與計(jì)算機(jī)聯(lián)系得越來(lái)越緊密,與之相應(yīng)的計(jì)算機(jī)安全性問(wèn)題也被提到了前所未有的高度。隨著具有開(kāi)源特性的Linux操作系統(tǒng)的廣泛應(yīng)用,Linux操作系統(tǒng)在計(jì)算機(jī)安全策略中不但是一個(gè)易于移植程序的平臺(tái),而且是一個(gè)構(gòu)建和運(yùn)行程序的平臺(tái)。本文針對(duì)Linux操作系統(tǒng),通過(guò)總結(jié)和歸納Linux操作系統(tǒng)其中的共性,在技術(shù)性能和應(yīng)用安裝性能方面提出一些安全策略。
1、Linux操作系統(tǒng)編程安全模型設(shè)計(jì)
Linux操作系統(tǒng)是面向多用戶的,在同一時(shí)間可以有許多用戶向操作系統(tǒng)發(fā)出各種系統(tǒng)命令,在現(xiàn)代的操作系統(tǒng)里面都有編程安全的概念,編程程序是一個(gè)包含可以執(zhí)行代碼的文件,當(dāng)編程程序被系統(tǒng)調(diào)用到內(nèi)存以后,系統(tǒng)會(huì)給程序分配一定的資源,然后進(jìn)行一系列的復(fù)雜操作使程序變成進(jìn)程以供系統(tǒng)調(diào)用。在Linux操作系統(tǒng)里面為了區(qū)分各個(gè)不同的進(jìn)程,Linux操作系統(tǒng)給每一個(gè)進(jìn)程分配了一個(gè)ID以便識(shí)別,為了充分的利用資源,Linux操作系統(tǒng)還對(duì)編程進(jìn)行了安全模型的設(shè)計(jì)。
1.1嚴(yán)格權(quán)限禁止非法切換,保障編程模型安全
在Linux中SU是一個(gè)很常用的命令,它可以完成從普通用戶到root用戶的切換也可以用于普通用戶之間的切換,只要用戶知道root密碼就可以完成此項(xiàng)操作,使系統(tǒng)存在一定風(fēng)險(xiǎn)。因此,有必要限制使用SU進(jìn)行用戶切換,只有屬于wheel組的用戶才可以使用SU命令來(lái)切換用戶。
SU命令限制是由PAM機(jī)制來(lái)限定的,PAM是由SUN提出的一種認(rèn)證機(jī)制,它通過(guò)提供一系列動(dòng)態(tài)鏈接庫(kù)和一套統(tǒng)一的API,將系統(tǒng)提供的服務(wù)和認(rèn)證方式分開(kāi)。使得系統(tǒng)管理員可以靈活地根據(jù)服務(wù)需要配置不同的認(rèn)證方式,同時(shí)也便于向系統(tǒng)中添加新的認(rèn)證手段。PAM最初是集成在Solaris中,目前已移植到Linux操作系統(tǒng)之中。
1.2 Linux信號(hào)系統(tǒng)安全策略訪問(wèn)控制模型
安全操作系統(tǒng)的訪問(wèn)控制模型,將密碼服務(wù)與高級(jí)別存取控制機(jī)制有機(jī)地結(jié)合起來(lái),形成一個(gè)適應(yīng)各類安全實(shí)用的操作系統(tǒng)。該安全服務(wù)器將在Linux操作系統(tǒng)的基礎(chǔ)上,目前Linux操作系統(tǒng)主要發(fā)行版本的安全性大致處于《TCSEC》標(biāo)準(zhǔn), 該類模型是從訪問(wèn)控制的角度描述安全系統(tǒng),主要針對(duì)系統(tǒng)中主體對(duì)客體的訪問(wèn)及其安全控制。
BLP模型的安全策略包括強(qiáng)制訪問(wèn)控制和自主訪問(wèn)控制兩部分,強(qiáng)制訪問(wèn)控制中的安全特性,要求對(duì)給定安全級(jí)別的主體,對(duì)給定安全級(jí)別上的主體,僅被允許向相同安全級(jí)別或較高安全級(jí)別上的客體進(jìn)行信息服務(wù),任意訪問(wèn)控制允許用戶自行定義是否讓個(gè)人或組織存取數(shù)據(jù);DTE模型它通過(guò)賦予文件不同的型(type)、賦予進(jìn)程不同的域(domain)來(lái)進(jìn)行訪問(wèn)控制,從一個(gè)域訪問(wèn)其他的域以及從一個(gè)域訪問(wèn)不同的型都要通過(guò)DTE策略的控制,DTE使域和每一個(gè)正在運(yùn)行的進(jìn)程相關(guān)聯(lián),型和每一個(gè)對(duì)象相關(guān)聯(lián),DTE 系統(tǒng)的內(nèi)核在做標(biāo)準(zhǔn)的系統(tǒng)許可檢查之前先做DTE許可檢查,如果當(dāng)前域擁有被訪問(wèn)文件所屬的型所要求的訪問(wèn)權(quán),那么這個(gè)訪問(wèn)得以批準(zhǔn),繼續(xù)執(zhí)行正常的系統(tǒng)檢查。
2、安全策略科學(xué)化系統(tǒng)共享設(shè)計(jì)
隨著Linux操作系統(tǒng)的廣泛應(yīng)用,它的安全性也越來(lái)越受到用戶的關(guān)注。在實(shí)際的使用中用戶希望Linux操作系統(tǒng)可以和360安全衛(wèi)士等安裝操作一樣的簡(jiǎn)單、界面形象直觀、易于管理。我們?cè)趹?yīng)用Linux強(qiáng)大網(wǎng)絡(luò)功能的同時(shí),要同時(shí)著手于解決其安全性問(wèn)題,在使用Linux操作系統(tǒng)時(shí)要將安全性、科學(xué)化的系統(tǒng)共享進(jìn)行合理化的設(shè)計(jì)安裝。
2.1合理規(guī)劃實(shí)現(xiàn)多系統(tǒng)共存,創(chuàng)建使用庫(kù)
在Linux操作系統(tǒng)的初步安裝操作中用戶可以先使用雙硬盤,在硬盤中分別安裝Windows和Linux操作系統(tǒng)。第一塊硬盤安裝Windows系統(tǒng),第二塊硬盤安裝好Linux服務(wù)器版和默認(rèn)安裝GRUB(引導(dǎo)裝載管理器),并確保GRUB安裝在第二塊硬盤的主引導(dǎo)扇區(qū),接好兩塊硬盤的數(shù)據(jù)線,借助Linux的GRUB進(jìn)行配置,自動(dòng)接管雙重系統(tǒng)的啟動(dòng)選單。
完成Linux系統(tǒng)的初步安裝過(guò)程后,可以從一個(gè)靜態(tài)庫(kù)中直接拷貝函數(shù)到可執(zhí)行二進(jìn)制映像,或者在可執(zhí)行程序正在運(yùn)行時(shí)從共享庫(kù)文件中讀出,從而間接地應(yīng)用到Linux操作系統(tǒng)之中。構(gòu)建Linux系統(tǒng)數(shù)據(jù)庫(kù)當(dāng)多個(gè)進(jìn)程同時(shí)使用一個(gè)共享庫(kù)時(shí),Linux將把共享庫(kù)中存放可執(zhí)行代碼的內(nèi)存進(jìn)行共享。
2.2嚴(yán)謹(jǐn)系統(tǒng)操作,創(chuàng)建Linux操作系統(tǒng)編程安全策略
Linux操作要求在程序的應(yīng)用中力求嚴(yán)謹(jǐn)、認(rèn)真的態(tài)度,在系統(tǒng)的使用和運(yùn)行時(shí)保證內(nèi)部信息安全是設(shè)計(jì)系統(tǒng)安全的最為重要的核心部分。嚴(yán)謹(jǐn)?shù)南到y(tǒng)操作主要表現(xiàn)在隱藏文件夾的保護(hù),在隱藏文件夾中如果有不想讓別人直接看到的文件,最簡(jiǎn)單的辦法就是對(duì)文件進(jìn)行加密處理,也可以在終端通過(guò)MVTEST.TEST命令實(shí)現(xiàn)。“test”文件會(huì)出現(xiàn)在文件夾中但“.test”則不會(huì)出現(xiàn),如果需要查看隱藏文件,就必須要在終端進(jìn)入對(duì)應(yīng)文件夾用Jsa命令查看,這樣可以達(dá)到保護(hù)Linux系統(tǒng)內(nèi)部隱藏文件的作用。
2.3設(shè)計(jì)密碼保證Linux系統(tǒng)安全
無(wú)論是Linux系統(tǒng)的操作還是計(jì)算機(jī)的其他應(yīng)用系統(tǒng),密碼是保證系統(tǒng)安全的第一道防線,因此在Linux系統(tǒng)的必須要有一個(gè)強(qiáng)健的密碼設(shè)計(jì)。密碼設(shè)置的原則是足夠長(zhǎng)不要用完整的單詞,盡可能要包括數(shù)字、字母、特殊字符和大小寫混寫,經(jīng)常進(jìn)行修改,所以在Linux系統(tǒng)中必須要遵循以上原則外。
在此之外,啟動(dòng)和加載程序時(shí),要盡量使用GRUB而不要使用LILO,這樣可以防止使用被定制的內(nèi)核來(lái)啟動(dòng)系統(tǒng)。此外Linux是一個(gè)多用戶操作系統(tǒng),為了保證系統(tǒng)安全,在登出和鎖定屏幕的時(shí)候也是非常重要的,特別是在系統(tǒng)上是唯一用戶時(shí),建議鎖定屏幕保證系統(tǒng)安全。在啟動(dòng)和加載程序時(shí),ULO在配置文件中可以使用明文口令,這樣可以防止使用被定制的內(nèi)核來(lái)啟動(dòng)系統(tǒng)。
結(jié)語(yǔ):本系統(tǒng)通過(guò)對(duì)Linux核心結(jié)構(gòu)和操作系統(tǒng)安全體系的層次結(jié)構(gòu)研究,并且遵循國(guó)內(nèi)、外的相關(guān)安全標(biāo)準(zhǔn),將Linux操作系統(tǒng)安全策略模型和已有技術(shù)有機(jī)地結(jié)合起來(lái),增加了強(qiáng)制訪問(wèn)控制、可信路徑等安全功能。Linux操作系統(tǒng)安全技術(shù)作為計(jì)算機(jī)信息安全的關(guān)鍵部分,對(duì)安全策略的研究和建模有重要意義,對(duì)Linux操作系統(tǒng)安全的研究在實(shí)際應(yīng)用中還需要進(jìn)一步地考驗(yàn)和完善。
參考文獻(xiàn):
[1]Michael K. Linux應(yīng)用程序開(kāi)發(fā)[M].電子工業(yè)出版社,2005.
linux系統(tǒng)范文3
關(guān)鍵詞: Linux系統(tǒng)安全性能 非法黑客
中圖分類號(hào): TU714 文獻(xiàn)標(biāo)識(shí)碼: A
一、Linux概述
Linux是免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),它是由全世界各地成千上萬(wàn)的程序員設(shè)計(jì)和實(shí)現(xiàn)的.其目的是建立不受任何商品化軟件的版權(quán)制約的,全世界都能自由使用的Unix兼容產(chǎn)品.
Linux以它的高效性和靈活性著稱.它能夠在PC計(jì)算機(jī)上實(shí)現(xiàn)全部的Unix特性,具有多任務(wù)、多用戶的能力.Linux是在GNU公共許可權(quán)限下獲得的,是一個(gè)符合POSIX(可移植操作系統(tǒng)接口規(guī)范)標(biāo)準(zhǔn)的操作系統(tǒng).Linux操作系統(tǒng)軟件包不僅包括完整的Linux操作系統(tǒng),而且還包括了文本編輯器、高級(jí)語(yǔ)言編譯器等應(yīng)用軟件.它還包括帶有多個(gè)窗口管理器的X-Windows圖形用戶界面,同Windows一樣,允許用戶使用圖形界面對(duì)系統(tǒng)進(jìn)行操作,突破了只能使用命令行字符界面進(jìn)行操作的局限。
二、Linux一般有四個(gè)主要部分:內(nèi)核、Shell、文件系統(tǒng)和實(shí)用工具.
1Linux內(nèi)核
內(nèi)核是操作系統(tǒng)的核心部分,是運(yùn)行程序和管理像磁盤和打印機(jī)等硬件設(shè)備的核心程序.操作系統(tǒng)的其余部分如Shell、實(shí)用工具等都是通過(guò)內(nèi)核而起作用的.
2Linux Shell
Shell是系統(tǒng)的用戶界面,是用戶與內(nèi)核進(jìn)行交互操作的接口.Shell是一個(gè)命令解釋器,它接收、解釋由用戶輸入的命令并且把它們送到內(nèi)核.不僅如此,Shell有自己的編程語(yǔ)言用于對(duì)命令的編輯,它允許用戶編寫由shell命令組成的程序.Shell編程語(yǔ)言具有普通編程語(yǔ)言的很多特點(diǎn),比如它也有循環(huán)結(jié)構(gòu)和分支控制結(jié)構(gòu)等,用這種編程語(yǔ)言編寫的Shell程序與其他應(yīng)用程序具有同樣的效果.
Linux提供T像Microsoft Windows那樣的可視化的操作界面----X Window的圖形用戶界面(GUI).它提供了很多窗口管理器,其操作就象Microsoft Windows一樣.
同Linux本身一樣,Shell也有多種不同的版本.
每個(gè)Linux系統(tǒng)的用戶可以擁有他自己的用戶界面或Shell,用以滿足他們自己專門的需要.
3 Linux文件系統(tǒng)
文件系統(tǒng)是文件存放在磁盤等存儲(chǔ)設(shè)備上的組織方法.主要體現(xiàn)在對(duì)文件和目錄的組織上.目錄提供了管理文件的一個(gè)方便而有效的途徑.
使用Linux,用戶可以設(shè)置目錄和文件的權(quán)限和共享程度,以便允許或拒絕其他人對(duì)其進(jìn)行訪問(wèn).Linux目錄采用多級(jí)樹(shù)形結(jié)構(gòu).用戶可以瀏覽整個(gè)系統(tǒng),可以進(jìn)入任何一個(gè)己授權(quán)進(jìn)入的目錄,訪問(wèn)那里的文件.
文件系統(tǒng)的相互關(guān)聯(lián)性使共享數(shù)據(jù)變得容易,幾個(gè)用戶可以訪問(wèn)同一個(gè)文件.Linux是一個(gè)多用戶系統(tǒng),操作系統(tǒng)本身的駐留程序存放在以根目錄開(kāi)始的專用目錄中,有時(shí)被指定為系統(tǒng)目錄.
內(nèi)核,Shell和文件系統(tǒng)一起形成了基本的操作系統(tǒng).用戶可以運(yùn)行程序,管理文件以及使用系統(tǒng).此外,Linux操作系統(tǒng)還有許多被稱為實(shí)用工具的程序,輔助用戶完成一些特定的任務(wù).
4 Linux實(shí)用工具
實(shí)用工具是能夠完成特定功能的專門程序.標(biāo)準(zhǔn)的Linux都配備或多或少的實(shí)用工具.用戶也可以開(kāi)發(fā)自己的實(shí)用工具.
實(shí)用工具主要有三類:
過(guò)濾器:用于接收數(shù)據(jù)并過(guò)濾數(shù)據(jù).
交互程序:允許用戶發(fā)送信息或接收來(lái)自其他用戶的信息.
四、關(guān)于Linux操作系統(tǒng)安全性的思考
1 從操作、使用、管理方面提高Linux的安全性問(wèn)題
作為多用戶的操作系統(tǒng),Linux允許多個(gè)用戶同時(shí)訪問(wèn)系統(tǒng)的資源,同一個(gè)用戶也可以同時(shí)執(zhí)行多個(gè)任務(wù).同時(shí),現(xiàn)在的計(jì)算機(jī)大都在網(wǎng)絡(luò)環(huán)境下運(yùn)行.多用戶和網(wǎng)絡(luò)環(huán)境必然存在安全問(wèn)題.不僅要在理論上重視安全問(wèn)題,實(shí)踐上更不能忽視,在實(shí)際使用Linux時(shí)要加強(qiáng)安全管理.這個(gè)問(wèn)題如果不重視,解決不好,則容易為系統(tǒng)留下安全隱患,輕則導(dǎo)致系統(tǒng)無(wú)法正常使用,影響工作,重則導(dǎo)致重大損失,這種損失程度視Linux的應(yīng)用環(huán)境而異.在操作系統(tǒng)的實(shí)際使用、操作、管理中,主要存在如下安全隱患:
1)思想上不重視,認(rèn)識(shí)不到操作系統(tǒng)安全的重要性及安全問(wèn)題可能帶來(lái)的風(fēng)險(xiǎn);存在麻痹和僥幸心理,認(rèn)為安全問(wèn)題不會(huì)或不可能發(fā)生在自己身上.
2)有關(guān)計(jì)算機(jī)安全的規(guī)章制度不健全,甚至根本就無(wú)章可循:不認(rèn)真貫徹和嚴(yán)格執(zhí)行規(guī)章制度,甚至就根本不貫徹和執(zhí)行,使制度形同虛設(shè).
3)有意犧牲安全性來(lái)?yè)Q取工作上的便利.
4)系統(tǒng)管理員和操作員技術(shù)水平差,不知怎樣提高系統(tǒng)的安全性.
以上所說(shuō),也是造成計(jì)算機(jī)安全問(wèn)題的主要原因.因此,必須重視Linux的安全使用與管理問(wèn)題.
Linux的使用者,稱為用戶,按照權(quán)限分為兩種:超級(jí)用戶和普通用戶.超級(jí)用戶(root)是系統(tǒng)的管理者,具有任意權(quán)限,普通用戶具有有限的權(quán)限.兩種用戶都是系統(tǒng)資源的使用者,此外超級(jí)用戶還承擔(dān)包括用戶管理在內(nèi)的整個(gè)系統(tǒng)的管理任務(wù).兩種用戶均對(duì)安全使用操作系統(tǒng)負(fù)有責(zé)任,同時(shí)超級(jí)用戶還應(yīng)做好系統(tǒng)的安全管理工作,對(duì)整個(gè)系統(tǒng)的安全管理負(fù)有責(zé)任.為了保證系統(tǒng)的安全使用與管理,兩種用戶要密切合作,以提高系統(tǒng)的安全性,為系統(tǒng)的正常運(yùn)行創(chuàng)造條件.
2關(guān)于對(duì)Linux的內(nèi)核進(jìn)行升級(jí)改造以提高其安全性問(wèn)題
關(guān)于增加系統(tǒng)資源自我保護(hù)機(jī)制的思考
訪問(wèn)控制是操作系統(tǒng)安全的重要方面.訪問(wèn)控制是實(shí)現(xiàn)既定安全策略的系統(tǒng)安全技術(shù),它對(duì)所有資源訪問(wèn)請(qǐng)求進(jìn)行仲裁,即根據(jù)安全策略的要求,對(duì)每個(gè)資源訪問(wèn)請(qǐng)求作出是否許可的判斷,能有效地阻止非法用戶訪問(wèn)系統(tǒng)資源和合法用戶非法使用資源.TCSEC(可信計(jì)算機(jī)系統(tǒng)評(píng)估準(zhǔn)則)把訪問(wèn)控制作為評(píng)價(jià)系統(tǒng)安全的主要指標(biāo)之一,具有不可替代的作用.
在Linux系統(tǒng)中增加或修改安全功能,有多種方案.一是在應(yīng)用層實(shí)現(xiàn),安全性差、效率低;二是在內(nèi)核級(jí)對(duì)系統(tǒng)進(jìn)行修改或增強(qiáng),即在現(xiàn)有Linux基礎(chǔ)上,對(duì)內(nèi)核進(jìn)行面向安全策略的分析,然后加入安全機(jī)制,經(jīng)修改后的系統(tǒng)基本上與原有系統(tǒng)保持用戶接口上的一致,且具有較高的系統(tǒng)效率.這種方法是在現(xiàn)有系統(tǒng)上進(jìn)行開(kāi)發(fā),具有安全、高效和接口一致等優(yōu)點(diǎn),大多數(shù)基于Linux的開(kāi)發(fā)都采用這種方法.在系統(tǒng)層進(jìn)行安全增強(qiáng)和修改,有兩種方式:一是直接修改內(nèi)核,安全性控制較好,但內(nèi)核版本升級(jí)后維護(hù)工作量大;二是采用軟連接方式,用可加載的Linux內(nèi)核模塊實(shí)現(xiàn)安全功能的增強(qiáng)與擴(kuò)充,然后將其插入Linux內(nèi)核,實(shí)現(xiàn)與系統(tǒng)的平滑連接,同時(shí)保證原有系統(tǒng)的體系結(jié)構(gòu)和源碼不被永久性地改變.
五、提高Linux系統(tǒng)的安全性改進(jìn)方法
本文將從增強(qiáng)操作系統(tǒng)訪問(wèn)控制功能的角度,提高Linux系統(tǒng)的安全性.在訪問(wèn)控制方面,將對(duì)Linux作如下改進(jìn):
在現(xiàn)有的安全策略基礎(chǔ)之上,增加系統(tǒng)資源的自我保護(hù)機(jī)制:口令保護(hù).這也就是本文研究的核心內(nèi)容:基于系統(tǒng)資源自我保護(hù)口令的密碼訪問(wèn)控制機(jī)制.文件或目錄的口令保護(hù),相當(dāng)對(duì)文件或目錄加上了一把鎖,要想打開(kāi)該鎖來(lái)訪問(wèn)文件或目錄,需要一把開(kāi)鎖的鑰匙,這把鑰匙就是知道該文件或目錄的訪問(wèn)口令.每個(gè)文件或目錄如果設(shè)置了訪問(wèn)保護(hù)口令,訪問(wèn)該文件或目錄時(shí),用戶除了要有相應(yīng)的權(quán)限外,還需知道該文件或目錄的保護(hù)口令.
在內(nèi)核級(jí)實(shí)現(xiàn)訪問(wèn)控制,系統(tǒng)調(diào)用是實(shí)施點(diǎn),因?yàn)樗怯脩暨M(jìn)程進(jìn)入核心態(tài)的唯一入口,也是發(fā)出資源訪問(wèn)請(qǐng)求的地方.在系統(tǒng)調(diào)用中,截獲用戶對(duì)系統(tǒng)資源的訪問(wèn)請(qǐng)求后,根據(jù)訪問(wèn)控制策略,除了實(shí)施原有的權(quán)限檢查外,還要實(shí)施新增的系統(tǒng)資源自我保護(hù)口令核對(duì)檢查,判斷操作是否可以繼續(xù)進(jìn)行,從而對(duì)文件、目錄等資源進(jìn)行保護(hù).
改進(jìn)后的系統(tǒng),將在安全功能方面滿足以下目標(biāo):
系統(tǒng)設(shè)計(jì)應(yīng)該滿足下面的特性:
(1)安全性:本系統(tǒng)的主要任務(wù)是設(shè)計(jì)安全模塊,將其嵌入Linux系統(tǒng),根據(jù)系統(tǒng)調(diào)用截獲的訪問(wèn)請(qǐng)求,實(shí)施增強(qiáng)的訪問(wèn)控制。
(2)可靠性:可靠性是系統(tǒng)得以正常運(yùn)行的基本前提.由于安全增強(qiáng)功能將在內(nèi)核級(jí)實(shí)現(xiàn),將作為內(nèi)核的一部分運(yùn)行,若出現(xiàn)問(wèn)題,直接影響系統(tǒng)的可靠性,甚至導(dǎo)致系統(tǒng)崩潰.
(3)實(shí)用性:新增安全模塊的設(shè)計(jì)要充分考慮應(yīng)用需求,并提供方便的操作界面,進(jìn)行相關(guān)設(shè)置.另外系統(tǒng)應(yīng)在用戶可接受的響應(yīng)時(shí)間內(nèi),盡量具有較高的執(zhí)行效率,在提高系統(tǒng)功能的同時(shí),保證性能不明顯下降.
(4)兼容性;新增的安全模塊不影響原有系統(tǒng)的正常運(yùn)行,在原系統(tǒng)上開(kāi)發(fā)的軟件能在新系統(tǒng)上正確運(yùn)行.另外應(yīng)使安全模塊對(duì)系統(tǒng)的依賴性盡可能地小,使之能運(yùn)行在不同的Linux版本上.
(5)靈活性:允許根據(jù)應(yīng)用需求靈活地允許或禁止某種訪問(wèn)控制策略的實(shí)施,及采用哪種保護(hù)級(jí)別以限制不同的訪問(wèn)操作類型.新增的安全功能對(duì)用戶來(lái)說(shuō)應(yīng)該是可選的,以適應(yīng)對(duì)系統(tǒng)的安全性具有不同要求的場(chǎng)合.
參考文獻(xiàn):
[1]黑客分析與防范技術(shù),張小斌、嚴(yán)望佳著,1999. 5,清華大學(xué)出版社
linux系統(tǒng)范文4
關(guān)鍵詞:EXT4;日志;句柄;i節(jié)點(diǎn)
中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2011)14-3443-04
The Analysis of Linux EXT4 File System
LU Ya-wen
(Hangzhou Vocational College of Science and Technology, Hangzhou 310016, China)
Abstract: Compared with EXT3 file system, the theory and data structure of EXT4 file system was introduced.By analyzing the WRITE operation,the procedcure of EXT4 file system was explained,and the study will supply some references for users who choosing core of Linux.
Key words: EXT4; daily record; handle; inode
EXT4文件系統(tǒng)是日志文件系統(tǒng),100%兼容EXT3文件系統(tǒng),與EXT3文件系統(tǒng)相比的主要區(qū)別是它能快速更新文件存儲(chǔ)。計(jì)算機(jī)開(kāi)始從磁盤上讀取或?qū)懭霐?shù)據(jù)都必須保證文件系統(tǒng)中文件與目錄的一致性,所有日志文件中的數(shù)據(jù)均以數(shù)據(jù)塊的形式存放在存儲(chǔ)設(shè)備中,當(dāng)磁盤分區(qū)時(shí)文件系統(tǒng)即被創(chuàng)建,按照文件形式、目錄形式支持存儲(chǔ)數(shù)據(jù),組織數(shù)據(jù)的使用。EXT4提供并使用了一個(gè)通用日志層 (jbd) [1],該層既可在文件系統(tǒng)中使用,還能夠應(yīng)用到其它設(shè)備中,對(duì)NVRAM設(shè)備,EXT4就能支持。當(dāng)由于軟件或硬件錯(cuò)誤導(dǎo)致文件系統(tǒng)崩潰時(shí), EXT4使用與e2fsck同樣代碼來(lái)修復(fù)崩潰的文件系統(tǒng),因此在出現(xiàn)數(shù)據(jù)崩潰時(shí),EXT4具有和EXT3同樣的防止數(shù)據(jù)丟失的優(yōu)點(diǎn)[2]。但是,上述這些優(yōu)點(diǎn)不是EXT4獨(dú)有的,但只有EXT4才盡數(shù)具備,這正是EXT4的優(yōu)勢(shì)。
1 EXT4文件系統(tǒng)的重要數(shù)據(jù)結(jié)構(gòu)
以下的數(shù)據(jù)結(jié)構(gòu)都來(lái)自2.6.28內(nèi)核。
1.1 超級(jí)塊super_block
/include/linux/EXT4_fs.h
struct EXT4_super_block {
/*00*/ __le32 s_inodes_count; /* 節(jié)點(diǎn)數(shù)目 */
__le32 s_blocks_count; /* 文件塊數(shù) */
__le32 s_r_blocks_count; /* 保留未用的文件塊數(shù) */
__le32 s_free_blocks_count; /* 可用的文件塊數(shù) */
/*10*/ __le32 s_free_inodes_count; /* 可用的節(jié)點(diǎn)數(shù) */
__le32 s_first_data_block; /* 第一個(gè)數(shù)據(jù)塊的索引 */
__le32 s_log_block_size; /* 數(shù)據(jù)塊大小 */
__le32 s_log_frag_size; /* 文件碎片大小 */
/*20*/ __le32 s_blocks_per_group; /* 每一組文件塊的數(shù)目 */
__le32 s_frags_per_group; /* 每一組碎片數(shù)目 */
__le32 s_inodes_per_group; /* # 每一組節(jié)點(diǎn)數(shù)目 */
__le32 s_mtime; /* 最近被安裝到內(nèi)存的時(shí)間 */
…………
/*150*/ __le32s_blocks_count_hi;/* 文件塊數(shù)的高32位 */
__le32s_r_blocks_count_hi;/*保留未用的文件塊數(shù)高32位*/
__le32s_free_blocks_count_hi;} /* 可用文件塊數(shù)高32位 */
合適的特定設(shè)備和不適合的特定設(shè)備的不同是在,如果在不合適的特定設(shè)備中有一位設(shè)備是內(nèi)核無(wú)法識(shí)別的,內(nèi)核將會(huì)拒絕啟動(dòng)文件系統(tǒng)。在EXT4中,e2fsck的要求更加嚴(yán)格,如果他既不能在合適的特定設(shè)備中,也不能在不合適的特定設(shè)備中識(shí)別出一個(gè)設(shè)備 ,他一定會(huì)終止程序并且不會(huì)將它所不能識(shí)別的設(shè)備模塊化。
與日志相關(guān)的數(shù)據(jù)結(jié)構(gòu),只有在EXT4文件系統(tǒng)中才會(huì)起作用,同樣在EXT3文件系統(tǒng)中也有定義,但是在EXT4文件系統(tǒng)中配合日志文件數(shù)據(jù)結(jié)構(gòu)才能起到日志文件的功能。
1.2 組描述符 Group Descriptor
組描述符合超級(jí)塊一樣,記錄的信息與整個(gè)文件系統(tǒng)相關(guān)。當(dāng)某一個(gè)組的超級(jí)塊或inode受損時(shí),這些信息可以用于恢復(fù)文件系統(tǒng)。因此,為了更好的維護(hù)文件系統(tǒng),每個(gè)塊組中都保存關(guān)于文件系統(tǒng)的備份信息。
struct EXT4_group_desc
{__le32 bg_block_bitmap; /* 文件塊位圖所在的塊的索引*/
__le32 bg_inode_bitmap; /* 存放文件節(jié)點(diǎn)位圖的塊的索引*/
__le32 bg_inode_table; /* 文件節(jié)點(diǎn)表在外存中的第一個(gè)塊的索引*/
__le16 bg_free_blocks_count; /* 可用的文件塊數(shù) */
__le16 bg_free_inodes_count; /* 可用的節(jié)點(diǎn)數(shù) */
__le16 bg_used_dirs_count; /* 使用中的目錄數(shù) */
__u16 bg_flag;/*用于32位地址對(duì)齊*/
__u32 bg_reserved[3];
__le32bg_block_bitmap_hi; /*文件塊位圖所在的塊的索引的高32位*/
__le32bg_inode_bitmap_hi; /*存放文件節(jié)點(diǎn)位圖的塊的索引高32位*/
__le32bg_inode_table_hi;};/*文件節(jié)點(diǎn)表在外存中的第一個(gè)塊的索引高32位*/
1.3i節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)
struct EXT4_inode {
__le16 i_mode; /* 文件模式,表示文件類型以及存取權(quán)限 */
__le16 i_uid; /* 所屬用戶的id的低16位 */
__le32 i_size; /* 節(jié)點(diǎn)字節(jié)大小 */
__le32 i_atime; /* 節(jié)點(diǎn)存取時(shí)間 */
__le32 i_ctime; /* 節(jié)點(diǎn)創(chuàng)建時(shí)間 */
__le32 i_mtime; /* 節(jié)點(diǎn)修改時(shí)間 */
__le32 i_dtime; /* 節(jié)點(diǎn)時(shí)間 */
__le16 i_gid; /* 組標(biāo)志的低16位 */
__le16 i_links_count; /* 連接數(shù)目 */
__le32 i_blocks; /* I節(jié)點(diǎn)文件塊數(shù) */
__le32 i_flags; /* 文件標(biāo)志 */
union {
struct {
__le32l_i_reserved1;
} linux1;
struct {
__le32h_i_translator;
} hurd1;
struct {
__le32m_i_reserved1;
} masix1;
} osd1; /* OS dependent 1 */
__le32 i_block[EXT4_N_BLOCKS];/* 文件塊索引數(shù)組,數(shù)組大小15*/
__le32 i_generation; /* 文件修改 (for NFS) */
__le32 i_file_acl; /* 文件 ACL */
__le32 i_dir_acl; /* 目錄 ACL */
__le32 i_faddr; /* 碎片地址 */
union {
struct {
__le8 l_i_frag; /* 碎片號(hào) */
__le8 l_i_fsize; /* 碎片大小 */
__le16 i_pad1;
__le16 l_i_uid_high; /* I節(jié)點(diǎn)用戶id高位 */
__le16 l_i_gid_high; /* I節(jié)點(diǎn)組號(hào)高位 */
__le32 l_i_reserved2;
} linux2;//1級(jí)間接指針數(shù)據(jù)結(jié)構(gòu)
struct {
__le8 h_i_frag; /* 碎片號(hào) */
__le8 h_i_fsize; /* 碎片大小 */
__le16 h_i_mode_high;
__le16 h_i_uid_high;
__le16 h_i_gid_high;
__le32 h_i_author;
} hurd2; //直接指向物理塊的節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)的補(bǔ)充
struct {
__le8 m_i_frag; /* 碎片號(hào) */
__le8 m_i_fsize; /* 碎片大小 */
__le16 m_pad1;
__le32 m_i_reserved2[2];
} masix2;//2級(jí)間接指針數(shù)據(jù)結(jié)構(gòu)
} osd2; /* OS dependent 2 */
__le16i_EXTra_isize;
__le16i_pad1;
__le32i_ctime_EXTra;/* 節(jié)點(diǎn)擴(kuò)展的創(chuàng)建時(shí)間(nsec
__le32i_mtime_EXTra;/* 擴(kuò)展的修改時(shí)間(nsec
__le32i_atime_EXTra;/* 擴(kuò)展的存儲(chǔ)時(shí)間(nsec
__le32i_crtime; /* 文件創(chuàng)建時(shí)間*/
__le32i_crtime_EXTra;};/* 擴(kuò)展文件創(chuàng)建時(shí)間 (nsec
上述結(jié)構(gòu)體中有兩個(gè)聯(lián)合體,是為了節(jié)省空間考慮,因?yàn)閕節(jié)點(diǎn)的索引有三種情況前12個(gè)直接指向物理塊,第13個(gè)是一級(jí)間接指針,第14個(gè)是二級(jí)間接指針,第15個(gè)是三級(jí)間接指針,將這三種情況都寫在一個(gè)聯(lián)合體中,根據(jù)實(shí)際的情況選擇節(jié)點(diǎn)號(hào),根據(jù)節(jié)點(diǎn)的類型來(lái)選擇用聯(lián)合體中的那個(gè)數(shù)據(jù)結(jié)構(gòu)。與EXT3不同的是,在 EXT4 文件系統(tǒng)中,增加了5個(gè)項(xiàng),用于擴(kuò)充索引節(jié)點(diǎn),通過(guò)這個(gè)結(jié)構(gòu)解決了這對(duì)于對(duì)精度要求很高的程序的要求。
1.4 i節(jié)點(diǎn)的擴(kuò)展信息的數(shù)據(jù)結(jié)構(gòu)
這個(gè)結(jié)構(gòu)體是日志式文件系統(tǒng)所特有的,用來(lái)支持完成日志文件的各種操作[3]。也是2.6內(nèi)核與2.4內(nèi)核的不同之處。i節(jié)點(diǎn)文件塊組是包含一系列文件節(jié)點(diǎn)的塊組。包含了節(jié)點(diǎn)的生命期,它通常用于為分配文件塊的決定。我們將文件的數(shù)據(jù)塊放到他的i節(jié)點(diǎn)塊的附近,新的節(jié)點(diǎn)放到它的父目錄節(jié)點(diǎn)的附近。存放i節(jié)點(diǎn)大小的棧不在內(nèi)存中而在外存上。在縮減的過(guò)程中,節(jié)點(diǎn)的大小被虛擬文件系統(tǒng)調(diào)用EXT4_truncate函數(shù)而設(shè)置成新的大小,但是文件系統(tǒng)不會(huì)將節(jié)點(diǎn)的磁盤大小設(shè)為0,除非這樣的縮減真的執(zhí)行了。目的在于節(jié)點(diǎn)的大小總是表示正在使用的文件的塊數(shù)。當(dāng)節(jié)點(diǎn)數(shù)據(jù)寫入的時(shí)候我們要重新改寫節(jié)點(diǎn)磁盤的大小來(lái)代替節(jié)點(diǎn)的大小[4]。只有在縮減的進(jìn)行時(shí)節(jié)程執(zhí)點(diǎn)的大小和節(jié)點(diǎn)所在的磁盤空間的大小才會(huì)不一樣,其他情況都應(yīng)該是一致的。只有在執(zhí)行文件塊增長(zhǎng)或縮減的時(shí)候存放節(jié)點(diǎn)大小的棧才會(huì)被改動(dòng)。
struct EXT4_inode_info {
__le32 i_data[15];
__le32 i_flags; //i節(jié)點(diǎn)標(biāo)志
#ifdef EXT4_FRAGMENTS
__le32 i_faddr; //第一個(gè)碎片的索引
__le8 i_frag_no;//碎片數(shù)目
__le8 i_frag_size;//碎片大小
#endif
__le32 i_file_acl;
__le32 i_dir_acl;
__le32 i_dtime;
__le32 i_block_group;//i節(jié)點(diǎn)文件塊組
__le32 i_state; /* EXT3的動(dòng)態(tài)的狀態(tài)標(biāo)志 */
__le32 i_nEXT_alloc_block;
/* i_nEXT_alloc_block 是在該文件中最近分配的塊的邏輯號(hào)。當(dāng)然,他沒(méi)
有命名,我們用這個(gè)來(lái)決定相關(guān)的分配請(qǐng)求所分配的文件塊的邏輯號(hào)。
/*
__le32 i_nEXT_alloc_goal;
/* i_nEXT_alloc_goal是下一個(gè)分配塊號(hào)的物理標(biāo)志。他是與此文件分配的文件塊號(hào)最相近的物理塊號(hào)。當(dāng)用戶請(qǐng)求分配一個(gè)新的物理塊的時(shí)候?qū)⑦@個(gè)物理塊分配給用戶*/
struct semaphore truncate_sem;//元數(shù)據(jù)塊,數(shù)據(jù)的修改信息等
struct inode vfs_inode;
/*虛擬文件系統(tǒng)的節(jié)點(diǎn),通過(guò)這個(gè)數(shù)據(jù)可以將日志文件系統(tǒng)EXT4和linux文件系統(tǒng)的頂層虛擬文件系統(tǒng)連接起來(lái)*/
};
1.5 句柄handle_t數(shù)據(jù)結(jié)構(gòu)
此結(jié)構(gòu)是EXT4文件系統(tǒng)用來(lái)實(shí)現(xiàn)日志式文件操作的有利的數(shù)據(jù)結(jié)構(gòu)。
struct handle_s
{ transaction_t *h_transaction;//文件操作過(guò)程
int h_buffer_credits;//要被弄臟的緩沖區(qū)的數(shù)目
int h_ref;//句柄中的參照數(shù)
int h_err;//出錯(cuò)數(shù)
struct list_head h_jcb;// 磁盤操作的頭節(jié)點(diǎn)
unsigned int h_sync: 1; /* sync-on-close */
unsigned int h_jdata: 1; /* 日志數(shù)據(jù) */
unsigned int h_aborted: 1; /* 句柄中致命的錯(cuò)誤 */
};
transaction_t 類型是日志系統(tǒng)的一個(gè)內(nèi)容。它記錄下了數(shù)據(jù)在各種狀態(tài)下的改變情況。
各種狀態(tài)為:
* RUNNING: 正在進(jìn)行新的修改
* LOCKED: 修改在進(jìn)行但是句柄不接受這樣的改變
* RUNDOWN: 修改在整理中但是還沒(méi)有完成對(duì)緩沖區(qū)的修改。
* FLUSH: 所有的修改完成了但是我們還沒(méi)有寫到磁盤上。
* COMMIT: 所有的數(shù)據(jù)都在磁盤上,寫操作執(zhí)行
* FINISHED: 完成保持準(zhǔn)備接受下一次修改
2 EXT4的文件操作
2.1 EXT的文件操作的數(shù)據(jù)結(jié)構(gòu)
struct file_operations EXT3_file_operations = {
.llseek = generic_file_llseek,
.read = do_sync_read,
.write = do_sync_write,
.aio_read = generic_file_aio_read,
.aio_write = EXT3_file_write,
.readv = generic_file_readv,
.writev = generic_file_writev,
.ioctl = EXT3_ioctl,
.mmap = generic_file_mmap,
.open = EXT3_open_file,
.release = EXT3_release_file,
.fsync = EXT3_sync_file,
.sendfile = generic_file_sendfile,
};
這個(gè)結(jié)構(gòu)體說(shuō)明了EXT4文件系統(tǒng)的read操作是由do_sync_read函數(shù)來(lái)實(shí)現(xiàn)的,write操作是由do_sync_write函數(shù)來(lái)實(shí)現(xiàn)的,以此類推。只要我們找到相關(guān)的函數(shù)就能分析EXT4文件系統(tǒng)是怎么實(shí)現(xiàn)讀寫操作的。
2.2 EXT4的寫操作
以下分析寫操作的過(guò)程,因?yàn)槿罩臼降奈募膶懖僮骱推渌奈募到y(tǒng)有很大的不同所以以寫操作為例:
圖1是寫操作執(zhí)行時(shí)各個(gè)函數(shù)嵌套的順序圖。
① file->f_op->write即調(diào)用EXT4文件系統(tǒng)中的write操作,在operation結(jié)構(gòu)的解釋中指出write操作用do_sync_write操作完成。
② filp->f_op->aio_write即調(diào)用EXT4文件系統(tǒng)中的aio_write操作,在operation結(jié)構(gòu)的解釋中指出aio_write操作用EXT4_file_write操作完成。
LINUX中寫操作是通過(guò)sys_write系統(tǒng)調(diào)用來(lái)實(shí)現(xiàn)的,在sys_write函數(shù)中完成對(duì)文件file 的讀入,判斷正確后調(diào)用了vfs_write函數(shù)進(jìn)一步判斷文件的模式是否為寫是否與其他寫操作沖突,如果判斷正確后調(diào)用file->f_op->write,這個(gè)調(diào)用其實(shí)是去調(diào)用EXT3文件系統(tǒng)中的write操作(即do_sync_write)再調(diào)用aio_write(即EXT4_file_write)來(lái)完成讀寫制定大小的文件內(nèi)容到緩沖區(qū)中包括對(duì)日志的寫。
EXT4_file_write函數(shù)的分析如圖2。
3 結(jié)束語(yǔ)
本文討論的對(duì)象是Linux操作系統(tǒng)中EXT4內(nèi)核程序,介紹了EXT4的主要數(shù)據(jù)結(jié)構(gòu),并通過(guò)分析寫操作來(lái)解釋日志的工作方式。日志文件系統(tǒng)提高了文件系統(tǒng)的效率,但是也增加了系統(tǒng)的開(kāi)銷。2.6.28內(nèi)核中的EXT4文件系統(tǒng)比2.4內(nèi)核做了較多的改動(dòng),如前面介紹的節(jié)點(diǎn)的擴(kuò)展信息,和Htree結(jié)構(gòu)的修正(文中沒(méi)有介紹),NTFS文件系統(tǒng)的修正等。總體來(lái)說(shuō)EXT4文件系統(tǒng)是比較完善的日志文件系統(tǒng)。
參考文獻(xiàn):
[1] 李善平,陳文智.邊學(xué)邊干LINUX內(nèi)核指導(dǎo)[M].浙江:浙江大學(xué)出版社,2002.
[2] 涂健,孫輝.Linux2.6(內(nèi)核下)EXT3文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)及性能分析[J].南昌水專學(xué)報(bào),2004(6):8-10.
[3] 李巍.Ext―擴(kuò)展文件系統(tǒng)的研究[J].信息系統(tǒng)工程,2010(8):133-136.
linux系統(tǒng)范文5
關(guān)鍵詞: Linux操作系統(tǒng);安全策略
一、引言
1.安全目的:要目的包括機(jī)密性、完整性、和可用性,機(jī)密性是保障用戶的數(shù)據(jù)不被別人所知道,完整性為了讓數(shù)據(jù)具有它本身所具有的健壯性,可用性是指數(shù)據(jù)不能被破壞,應(yīng)該具有它本身所具有的作用,即可執(zhí)行性。
2.安全策略:關(guān)注信息系統(tǒng)中的信息控制、管理和分發(fā),規(guī)定信息系統(tǒng)或產(chǎn)品對(duì)敏感信息的處理和使用方式的法律,存在兩種最重要的安全策略模型BLP模型和Biba模型,此處不做詳細(xì)介紹。
二 、Linux操作系統(tǒng)安全機(jī)制分析
1.身份標(biāo)識(shí)和鑒別,在Linux系統(tǒng)中身份標(biāo)識(shí)與鑒別機(jī)制是基于用戶名和口令來(lái)實(shí)現(xiàn)的,允許系統(tǒng)管理員通過(guò)useradd命令為用戶指定唯一用戶名和初始口令,將這個(gè)信息放在/etc/passwd文件里面,其實(shí)密碼信息文件是在/etc/shadows文件中存儲(chǔ)的。
2.文件訪問(wèn)控制,Linux對(duì)文件包括設(shè)備都是通過(guò)訪問(wèn)控制機(jī)制來(lái)實(shí)現(xiàn)的,這種簡(jiǎn)單自主訪問(wèn)控制機(jī)制的基本思想,系統(tǒng)每一個(gè)用戶擁有自己唯一的UID,并且屬于某一用戶組,而且用戶組都有一個(gè)唯一的組號(hào),這些信息存放在/etc/group文件里面,系統(tǒng)中的文件權(quán)限主題分為所屬用戶、所屬組、其他用戶,并且在這個(gè)基礎(chǔ)之上,每一個(gè)文件權(quán)限都對(duì)應(yīng)有三個(gè)系統(tǒng)權(quán)限,分別為r、w、x,稱作讀權(quán)限、寫權(quán)限、執(zhí)行權(quán)限,可以通過(guò)命令進(jìn)行修改文件或者目錄的權(quán)限,所以在這里需要對(duì)個(gè)文件權(quán)限進(jìn)行妥善管理
3.特權(quán)管理,因?yàn)長(zhǎng)inux操作系統(tǒng)是類Unix系統(tǒng),所以普通用戶沒(méi)有任何特權(quán),而超級(jí)用戶擁有系統(tǒng)內(nèi)的所有特權(quán),所以,在很多現(xiàn)有的基于Linux操作系統(tǒng)內(nèi)核的操作系統(tǒng)都沒(méi)有開(kāi)放root用戶,這樣很大一部分的原因就是root用戶具有至高無(wú)上的權(quán)利,它要是被黑客攻擊,那么后果不堪設(shè)想,所以建議對(duì)root用戶使用的時(shí)候,要多加防范。
4.安全審計(jì),它的基本思想就是將審計(jì)事件分為系統(tǒng)事件和內(nèi)核事件兩部分M行維護(hù)與管理,系統(tǒng)事件有審計(jì)進(jìn)程syslogd來(lái)維護(hù)和管理,而內(nèi)核事件由審計(jì)線程klogd來(lái)維護(hù)和管理。
三、從安全的角度管理和使用Linux系統(tǒng)
1.口令管理,頂起更換口令,而且使用口令的標(biāo)準(zhǔn)是大小寫字母加數(shù)字和標(biāo)點(diǎn)符號(hào)混用,提高用戶本身的安全性,這是用戶做的最基本的安全性防護(hù)措施。
2.不要將口令輕易告訴別人,而且不建議在很多地方使用同一個(gè)口令。可以使用口令管理軟件,將自己的用戶密碼進(jìn)行管理。
3.用戶權(quán)限管理,通過(guò)正確限制所有用戶對(duì)文件的區(qū)別訪問(wèn)來(lái)控制用戶權(quán)限安全性。
4.定期升級(jí)系統(tǒng)補(bǔ)丁和應(yīng)用程序補(bǔ)丁。
5.對(duì)系統(tǒng)用戶文件進(jìn)行備份,普通用戶對(duì)自己的數(shù)據(jù),超級(jí)用戶需要備份系統(tǒng)重要配置文件的數(shù)據(jù)主要配置文件數(shù)據(jù)在/etc文件夾下面。
6.定期查看日志文件,日志文件是記錄整個(gè)操作系統(tǒng)的使用狀況,可以幫助我們安全使用以及排除錯(cuò)誤的信息支持,例如以下文件:
7.關(guān)閉不必要的系統(tǒng)服務(wù),Linux操作系統(tǒng)在安裝的時(shí)候包括了較多的網(wǎng)絡(luò)服務(wù),如果作為服務(wù)器來(lái)講的話,這樣使用起來(lái)會(huì)很方便,但作為用戶的工作站就不太好,會(huì)出現(xiàn)安全問(wèn)題。用戶應(yīng)該關(guān)閉不需要的服務(wù)。/etc/ined服務(wù)器程序承擔(dān)網(wǎng)絡(luò)服務(wù)的任務(wù),它同時(shí)監(jiān)聽(tīng)多個(gè)網(wǎng)絡(luò)端口,一旦收到外界網(wǎng)絡(luò)傳來(lái)的連接信息,就執(zhí)行響應(yīng)的TCP或者UDP網(wǎng)絡(luò)連接任務(wù)。
8.要確保操作系統(tǒng)端口安全,TCP或者UDP網(wǎng)絡(luò)數(shù)據(jù)通過(guò)使用端口號(hào)才能夠被正確的指向相應(yīng)的應(yīng)用程序,這樣才能正確的訪問(wèn)該應(yīng)用程序,而其中的每個(gè)程序也被賦予了特別的TCP或者UDP端口號(hào),網(wǎng)絡(luò)數(shù)據(jù)進(jìn)入計(jì)算機(jī)后,操作系統(tǒng)會(huì)根據(jù)它包含的端口號(hào),將其發(fā)送到相對(duì)應(yīng)的應(yīng)用程序中,攻擊者會(huì)利用各種手段對(duì)目標(biāo)主機(jī)的端口進(jìn)行掃描和探測(cè),這樣就能確定一些信息,這樣給攻擊者增加了攻擊的可能性,建議使用網(wǎng)絡(luò)工具,定期檢測(cè)網(wǎng)絡(luò)端口的異常,如果發(fā)現(xiàn)有可疑端動(dòng),立即做出安全性防護(hù)措施。
9.用戶在管理自己的目錄的時(shí)候,不會(huì)讓自己私有的目錄給予別的用戶訪問(wèn)的權(quán)限,除非特定需求的用戶,而且原則是,只能讓其他用戶具有讀取的權(quán)限,一般不會(huì)賦予寫和執(zhí)行的權(quán)限。在管理目錄的時(shí)候,應(yīng)該遵循各個(gè)用戶數(shù)據(jù)建立自己的用戶目錄,這樣系統(tǒng)便于管理。
10.設(shè)置用戶密碼之外,還需要給Linux上每個(gè)賬戶可以被賦予不同的權(quán)限,因此在建立一個(gè)新用戶賬戶時(shí)候,系統(tǒng)管理員應(yīng)該根據(jù)需要賦予該賬戶不同的權(quán)限,并且管理到不同的用戶組。
linux系統(tǒng)范文6
2、為了解決官方版釘釘不被開(kāi)源版覆蓋,實(shí)現(xiàn)與開(kāi)源版共存,并且保證圖標(biāo)放大后不失真,對(duì)deb包進(jìn)行了重新打包:
3、釘釘主程序文件沒(méi)有任何變動(dòng),保證使用的原汁原味(也沒(méi)有能力改動(dòng))。
4、添加了一個(gè)高清的圖標(biāo)文件,為了區(qū)分開(kāi)源版的釘釘,修改圖標(biāo)為“初音綠”。
5、實(shí)現(xiàn)與開(kāi)源版共存,仿造安卓版釘釘?shù)陌Q,定義官方的Linux釘釘打包的名稱為com.alibaba.linux.rimet。