作者:李忠憲 shane@mail.spps. 由於 Free 一詞容易造成誤解,目前談論 Linux 概念是使用「open source」這個字眼,其實 Linux 會成為 Open Source 理念的代名詞是一種集體創作的結果,由於眾多電腦高手(俗稱駭客 Hacker)對這個小玩具的關愛,撰寫並提供許多免費工具(身為駭客,這樣做是含有濃厚炫技的意味在裡面),使得 Linux 慢慢成長茁壯,成為一套穩定犀利的作業系統,真要歸屬起著作權來還真的是非常困難,因此 Linux 也就變成全民共同擁有的財產,許多腦筋動得快的商人將 Linux 包裝起來販賣,還取了好聽的名字叫做 Red Hat 、Mandrake......什麼的,Linux 就有了各種不同發行版本,Linux 採用的 GPL 授權條款並不禁止將 Linux 拿來販賣,因為商業推廣有助於系統的持續發展,但無論你如何透過 Linux 來發財,最重要的是必須將原始碼公開,否則將違反 Linux 的版權合約。 由於所有 Linux 的開發商都必須將原始程式碼公開,別人拿去參考或修改出更好用的程式,一樣可以拿來賣錢和發行,這就會形成一種良性競爭(就像駭客之間互比高低一樣,不會為了幾個臭錢把獨門技術隱藏在法律後面),因此我們可以預期 Linux 的永續發展不是沒有道理的。 早期的 Linux 由於缺乏金援,通常是由個人依自己專長興趣來參與開發工作,現在系管師中還有不少是為了要寫一個好玩的電動而開始寫程式的,一定能明白手工打造的樂趣和痛苦,所以早期的 Linux 發展相當遲緩,也由於個人經濟能力有限,買不起眾多周邊設備,所以早期 Linux 能支援的硬體實在不多,而且經常支援一些罕見的設備(當然與提供該驅動程式的作者的工作環境有關),後來有些志同道合的作者開始組織團體,向有錢的企業募款來支援系統程式的開發,例如:Apache、X window(注意:沒有 s)......就是屬於這一類的產品,也由於這些慈善團體的犧牲奉獻,Linux 才能發展出今天的規模。 一般學術界討論 Linux 的特色,總是喜歡與微軟的 Windows 來做比較,實際上這就像拿橘子比蘋果一樣。Linux 作為一套仿自 Unix 的作業系統,當然我們要與 Unix 比比看,為何它能夠成為未來作業系統的主流,主要原因只有兩個:
Linux 檔案系統需要運用兩種不同磁區型態,那就是 ext3 和 swap。swap 用來作為虛擬記憶體使用,在多工環境作本文切換(content switch)而 RAM 不夠使用時,會將 RAM 的資料轉換到磁碟上,以避免記憶體不足的問題發生,由於這個原因因此 swap 總空間大小必須是主記憶體的兩倍(最低,至少需要 32 MB,目前最高上限為 2GB)。 新版本的 Linux 是使用 ext3 (type 83)作為檔案系統,比起舊的 ext2 格式速度更快、修復省時、更可靠安全,因此建議一律使用 ext3 不要再用 ext2。 Linux 將一切裝置視同為檔案,當然磁碟機也不例外,所以 DOS 時代常用的磁碟代號,在 Linux 上不能使用,取而代之的是檔案命名法, Linux 將一切裝置定義在 /dev 這個資料夾內,軟碟機稱為 fd,軟碟機編號為 0~7,第一台軟碟機就稱為 /dev/fd0;硬碟稱為 hd,硬碟編號是根據排線的位置來計算,第一條排線第一顆硬碟稱為 hda,依此類推,最多到 hdt。光碟機由於接在硬碟排線上,也被視為硬碟,為了使用上的方便,通常會替光碟機取別名為 /dev/cdrom,至於 SCSI 硬碟比較特殊,是使用 sd 來命名,編號方式與一般硬碟相同。 由於大容量硬碟通常因應使用上的需求都會加以分割,因此我們也必須熟悉磁區命名的方法,磁區分為兩種:主要磁區(primary)與延伸磁區(extension),延伸磁區可以繼續進行複數分割,稱為邏輯磁區(logical)。由於延伸磁區是為了作虛擬分割而存在的,因此一顆硬碟上最多只能有一個延伸磁區,並且因為磁區分割表容量的限制,在一顆硬碟上主要磁區加上延伸磁區不得超過 4個,其編號為 1~4,而邏輯磁區則沒有數量限制,使用號碼 5~32。假設在一顆硬碟有 hda1、hda2、hda3、hda5、hda6,沒有 hda4 這並非錯誤,這是因為這顆硬碟有兩個主要磁區(1和 2)、一個延伸磁區(3),延伸磁區並分割為兩個邏輯磁區(5和 6)的緣故。 特別要注意的是這些裝置畢竟不同於一般檔案,所以大部分檔案操作指令都不支援,舉例來說,您要切換到第二顆磁碟機不能使用下面的指令: cd /dev/hdb1 正確的方法是先將該磁碟機掛載到檔案系統上,然後再使用它,例如: mount /dev/hdb1 /home cd /home 磁區的分割,對安裝 Linux 來說非常重要,主要是因為:
為了系統的最佳化,我們會根據不同需求來劃分磁區,分別敘述如下:
Linux 檔案結構是遵循 FHS 標準,該項標準可以在 http://wwwhttp://www.360doc.com/content/07/0428/20/fhs 找到,底下介紹常見的幾個資料夾及其用途:
由於 Linux 是一套網路作業系統,因此可以允許同時多人上線操作,事實上每個人還可以同時處理許多不同的工作,這種作業模式就稱為多人多工模式。當我們從主控台登入時,可以使用 Ctrl+Alt+F1~F6 來切換不同文字模式終端機,另外 Ctrl+Alt+F7 保留給圖形模式(X window)使用,每個虛擬終端機實際上是各自獨立的,可以用不同身分登入進行不同工作。 如果我們不在機器旁邊,但是卻有管理該機器的需要時,我們可以使用 telnet 軟體從遠端登入系統,telnet 雖然是最常用的方法,但並不是最好的方法,為了系統安全我們建議使用 ssh 來進行遠端登入。在後面的章節將會仔細討論 ssh。 底下就來介紹純文字模式下的常用指令,在介紹指令之前,首先有些規矩必須先說明:
常用指令介紹:
MC 的全名是 Midnight Commander,是 Unix Like 系統上功能非常強大的檔案管理程式,在 DOS 的年代有一套Cview 跟 MC 很像,用過的人應該對 MC 不陌生,MC 除了進行一般性的檔案操作例如:新建目錄(F7)、刪除(F8)、拷貝(F5)、移動(F6)、搜尋、修改權限(Ctrl+x c)、修改擁有者(Ctrl+x o)......之外,還能進行遠端傳輸、瀏覽打包檔(.tar)(Enter)、執行程式(Enter)、救回刪除檔案、目錄比對、檔案打包壓縮(F2)、文書處理(F4)....等工作,因此是系管師不得不用的工具。 MC 內附完整線上說明,直接按 F1 即可翻閱,按 F10 離開。多數功能都有快速鍵的設計,如果記不住快速鍵,也可以從選單選取,請按 F9 開啟選單,延伸選單上還有一些專門提供給進階使用者的額外功能,可以使用 F2 來開啟,其它功能鍵用法都寫在 MC 畫面的正下方,如果忘記了很容易查閱。 MC 的外觀分隔成左右兩個面板,是為了讓使用者能在兩個不同目錄間進行快速拷貝、移動而設計,我們可以按 TAB 鍵在兩個面板上切換游標。這兩個面板可以分別設定檢視模式,包括:詳細檔案資訊(Ctrl+x i)、檔案內容摘要(Ctrl+x q)、樹狀結構、自訂顯示欄位、排序方式、或改為只顯示一個大面板,修改這些設定請按 F9,然後從上方選單選擇要修改的面板(Left或Right),直接點選選項即可。 如果想要一次處理多個檔案,請在檔案上按 Ctrl+t 來選取檔案,再按一次則會取消選取,這個功能特別是在進行多檔拷貝的時候特別有用。 想要將整個資料夾打包壓縮成一個檔案嗎?透過 MC 要做這件事真的非常簡單,請進入要壓縮的資料夾,先確認有哪些檔案要打包壓縮,接著按 F2 選打包為 tar.gz,按 Enter 即可,打包好的檔案將會放在上一層目錄裡,請確認您對上層目錄有寫入的權限,否則打包壓縮的動作會失敗。 透過 MC 可以在本地端與遠端進行雙向檔案傳輸,MC 除了自己有專用通訊協定外,也可以使用 FTP 來連結遠端主機,使 MC 搖身一變成了 FTP 工具,以 MC 專屬通訊協定進行連結,請先以 TAB 決定要使用的面板,然後輸入 cd /#mc:username@ip ,想要使用 FTP 連結遠端主機,請輸入 cd /#ftp:username@ip ,你也可以透過面板選單來操作,請參考前一小節之說明。 想要救回刪除檔案,做法與上述步驟類似,但請輸入 cd /#undel:hda2 (磁區名稱),救回檔案時會先讀取該磁區內的所有 inode ,以便計算出可以完整救回的檔案有哪些,這會耗掉半天以上的時間,所以除非萬不得已不要使用這個功能。 MC 的檔案搜尋功能很強,尤其是內文搜尋功能,我們可以按 F9,從命令(Command)選單選取搜尋檔案(Find File)功能,設定搜尋條件可以使用正規表達式(regular expression),選擇區分或不區分大小寫,搜尋結束後可以進行編輯或其它檔案操作,建議先選擇面板化(panelize),這樣會把搜尋到的檔案一一列在面板上,就像是開啟一個資料夾一樣,然後就可以進行任何檔案操作,這樣做可以獲得比較多的功能。 關於系管師某些日行安全檢查工作,MC 已經內建在延伸選單(Ctrl+x !)裡,例如想要知道目前系統上被植入哪些特洛伊木馬,我們可以檢查具有 Suid 權限的檔案,如果列出來的檔案中,有沒看過的或非系統安裝的檔案,請儘速查明後刪除。 使用 MC 提供的文書編輯器功能強大, 後面章節介紹的各種組態檔編輯,也請使用 MC 來進行。MC 相較於其它文書編輯器比較不同的地方是它有提供剪貼簿,因此可以進行跨檔案拷貝,請開啟來源檔案,用 F3 功能鍵標示出要拷貝的段落,按 Ctrl+f 或者是按 F9 從檔案(File)選單選擇 Copy to file,接著離開編輯模式開啟目的地檔案,將游標移到要複製的位置,按 F9 從檔案(File)選單選擇 Insert file,這樣就可以跨檔編輯了。 由於 Linux 將所有軟硬體裝置通通視為檔案,因此對於 Linux 來說權限管理只要在意檔案權限的設定即可,這一點與 windows 作業系統將權限細分為管理權、操作權、擁有權、遠端登入權、虛擬連線權、檔案操作權、服務操作權......等等複雜化的做法有非常大的不同,雖然 Linux 的做法比較單純,但是並不表示 Linux 比較不安全,相反的 Linux 的安全等級比 windows 更早獲得美國國家安全局的認證。 Linux 對檔案的權限管理分別透過檔案擁有者與存取權限來管理。每個檔案都必須設定擁有人和擁有群組,有時候某使用者帳號被移除,但檔案忘記移除,這些檔案就會變成無人擁有,這種檔案視同 root 所擁有。 Linux 將存取權限區分為四個部分,分別是:setuid(設定身分權限)、owner(使用者權限)、group(群組權限)、other(其它使用者權限,相當於 windows 下的 everyone),每個部分都由三個位元構成,除了 setuid 以外,其餘三種權限的三個位元分別代表讀取、寫入和執行,當我們用 ls 指令去觀察時,程式會使用文字來表示存取權限,例如: rwxr-xr-x 其中 r 代表讀取,w 代表寫入,x 代表執行,- 代表沒有權限,我們將上述權限三個一組分解開來,分別是擁有者:可讀寫執行,群組成員:可讀及執行,其它使用者:可讀及執行。上述權限也可以用八進位數字 755 來表示。 setuid(設定身分權限)是一種比較特殊的權限,三個位元的意義與前面所說的不相同,分別代表以擁有者身分執行(setuid)、以群組成員身分執行(setgid)、以及刪除時額外檢查使用者身份(sticky bit,當以 Samba 來共享資料夾,但又開放寫入權限時特別有用,可讓使用者僅對自己建立的檔案有完整權限,而無法刪除或修改別人的檔案),例如:sendmail 程式擁有者為 root,擁有群組為 mail,而存取權限為 755,當該程式被設定以群組成員身分執行時,使用者 shane 去執行程式(寄信),在程式執行期間可以暫時成為 mail 群組的成員,因此能讀寫 mail 群組才能讀寫的檔案(例如:/var/spool/mail/maggy,也就是說 shane 把信寄給 maggy),從這個例子可以了解 setXid 對於伺服器功能非常的重要。我們如果用八進位數字來表示 sendmail 的完整存取權限,應該寫成 2755 而不是 755,用 ls 指令來觀察,則以底下的文字來表示: rwxr-sr-x 注意到群組權限中的執行權限從 x 變成了 s ,表示該程式執行時會暫時獲得擁有群組的身分。 舊版Linux 使用 LILO 作為多重開機系統,而新版本改採 GRUB,GRUB 是使用圖形介面感覺跟純文字介面的 LILO 差蠻多的,當然它能支援較大硬碟以及更多作業系統類型。除此之外,兩者間還有其他明顯差異:
GRUB 設定檔位於 /boot/grub/grub.conf ,也可以從 /etc/grub.conf 修改,組態檔設定範本如下: default=0 title Red Hat Linux (2.4.18-14) title single mode title FreeBSD title DOS or Windows NT / Windows 9x /etc/fstab 這個檔案是用來定義系統可用的儲存裝置,通常在增加硬碟或增刪磁區之後(進階班課程),需要由系管師手動修改設定,另外掛載遠端目錄時也需要修改它,例如:NFS、windows共享資料夾.......等等。 各欄位說明如下:
該檔案控制六種不同啟動模式的運作程序,六種不同啟動模式分別是: 0.關機 初學者最常用的是修改 initdefault ,如果該行是 id:5:initdefault: 則表示開機後會使用圖形介面進行登入,登入後自動開啟 X window,若將 5 改成 3,那麼開機後會使用文字模式登入,必須要下 startx 指令才會開啟 X window。 這個組態檔還可以控制 Ctrl+Alt+Del 的行為,通常按下這三個按鍵,將導致系統 shutdown,如果要關閉這個功能,請將下面這一行 remark 起來: ca::ctrlaltdel:/sbin/shutdown -t3 -r -now /etc/hosts 這個檔案用來定義主機名稱,其作用相當於 windows 下的 LMHOSTS,當該單機需要解析主機名稱時,會先查詢此檔案,由於校園網路內普遍已建置 DNS 伺服器,因此不設定也無所謂。 底下幾種理由我們會設定這個檔案:一、為了改進區域網路的性能,二、確保重要服務不會因為 DNS 故障受到影響,三、某些主機因安全考量並未定義在 DNS 內,那就必須自行將名稱加到 hosts,以確保名稱能正確解析。如果在安裝 Linux 時,未設定網路組態,預設值是:
為了增進系統效能,我們會將自己這台主機的正式網域名稱加入到該檔案,請不要把上面那一行移除,因為這樣會造成名稱解析函式無法解析 localhost。 /etc/resolv.conf 這個檔案用來定義本地端進行名稱解析時的預設伺服器,通常我們必須將它設定在校內專用的 DNS 上面,設定方式如下,同時可以設定多台 DNS(一般會設定三台,最多可以設到八台): search spps. /etc/rc.d/rc.local 這個檔案用來自行加入開機指令稿,當我們希望某些程式在開機完成後就自動啟動執行,我們只要將指令加入到這個檔案內就可以了,舉例來說:希望開機後能自動將 WAM 伺服器執行起來,請在最後一行加入: /usr/libexec/apache_wam/bin/apachectl start /etc/sysconfig 各位系管師在修改某些系統設定後,是否發現在重新開機後,設定值又被改了回來,造成有些系管師只好把修改的指令寫到前面所介紹的 /etc/rc.d/rc.local 檔案內,要求系統開機時一再重改設定,這樣做當然也行得通,但並不是最好的方法。 事實上開機時會使用到的設定值都保存在 /etc/sysconfig 這個資料夾裡,我們只需要去修改相關的設定檔,就可以要求系統在下次開機時,使用新的設定值,而不需要事後改來改去,這個資料夾內由於設定檔眾多,詳細設定資訊可以參考 /usr/share/doc/initscripts-x.xx/sysconfig.txt ,現在只介紹幾個常用的設定檔: /etc/sysconfig/clock 這個檔案是用來指定時區,範例如下: ZONE="Asia/Taipei" /etc/sysconfig/desktop 這個檔案是用來指定 X window 的預設桌面系統,範例如下: DESKTOP="GNOME" /etc/sysconfig/network 這個檔案用來控制網路設定,用途蠻多的,我們比較關心的是其中的 hostname 設定,和 /etc/hosts 不同的是,這個檔案是要讓系統在開機後決定自己的主機名稱用的,設定範例如下: NETWORKING=yes /etc/sysconfig/static-routes 這個檔案用來定義開機後要啟動的靜態路由,假使學校內使用兩個 /24 的網路,而主機是擺放在其中一組 C 級網段中,那麼定義靜態路由是最簡便能讓網路連通的方法,定義方法如下: eth0 net 192.57.2.0 netmask 255.255.255.0 gw 192.57.1.10 /etc/sysconfig/i18n 這個檔案是用來定義語系以及字型,中文語系設定方法如下: LANG="zh_TW.Big5" 若在文字模式想要暫時改回英文語系,以避免螢幕輸出變成亂碼,可以直接在 shell 鍵入 LANG=en /etc/sysconfig/networking/devices/ifcfg-eth0 這個檔案是用來定義網路卡的起始設定值,以避免使用 ifconfig 指令改完 IP後,重開機設定又消失了。隨著我們要修改的網卡不同,設定檔的檔名也不同,這裡所寫的 eth0 是指第一片網卡,如果要修改第二片網卡,請修改 ifcfg-eth1。 設定範例如下: GATEWAY=192.57.1.253 /etc/chinese/xcin/xcinrc 這個檔案是用來定義中文輸入法,有許多系管師跟筆者一樣慣用倚天鍵盤排列方式,因此使用預設的輸入法非常痛苦,這個時候就必須修改這個檔案,要修改的是底下這一行(分號後面是註解,不會設定的話可以參考): (KEYMAP 0) ; 0:zozy, 1:et, 2:et26, 3:hsu 改成: (KEYMAP 1) ; 0:zozy, 1:et, 2:et26, 3:hsu xinetd 服務俗稱叫 super server,原因是它管制著非常多的被動式服務,所謂被動式服務是指平時該伺服器不會常駐執行,只有當用戶端連上來時,伺服器才啟動執行,這類的服務包括:telnet、ftp、imap、pop3......等等。xinetd 在這類服務中扮演分配封包、啟動伺服器的白手套工作,當用戶端的要求封包送來時,xinetd 會讀取 /etc/service 以便從封包埠號查出服務名稱,接下來 xinetd 會讀取 /etc/xinetd.d 資料夾中與服務名稱同名的設定檔,舉 telnet 為例,該檔案(/etc/xinetd.d/telnet)內容為: xinetd services are commonly called superserver because they regulate a very large number of dynamic services, so-called moved services means that the server will not run regularly at the same time, and the server will only operate when the client is connected. # default: on 這個檔案告訴 xinetd 要如何啟動對應的伺服器程式,以上面的設定為例,將會以 root 身分啟動 /usr/sbin/in.telnetd 程式來執行,執行時 xinetd 會將原始封包擺放在主控台的輸入佇列中,以方便讓 telnet 主程式讀取。 , a file that tells xintd how to start the corresponding server program. For example, root lang = zh-tw > will be used to start xinetd , and the original package will be placed in the input box of the control to facilitate access to . 使用被動式服務除了比較省系統資源外,另一個好處是在服務被啟動前,能夠先進行存取控制,對於那些簡單而無法自行實作安全機制的服務來說,多了一層保障(雖然安全性還是不夠),過去舊版 inetd 必須依靠 Tcp Wrapper 來進行網址過濾,新版的 xinetd 則可以自己進行這個工作,在上面設定檔中加入: Use of activated services, in addition to comparing the resources of the system, has the advantage of having access control before the service is activated. For those services that are simple and unable to implement security mechanisms on their own, there is an additional layer of security (although safety is not enough), the old version of intd has to rely on Tcp Wraper , and the new version of /span #span xinetd lang = zh-tw > can do this on its own, adding to the configuration file: /span > no_access=IP 或網域名稱,IP 或網域名稱 No_access=IP or domain name, IP or domain name 就可以禁止表列中的機器存取該服務,要使用正面表列定義可以存取的機器,請使用以下設定: can disallow machine access to the service in the table column, using the machine defined in the front column as accessible. Use the following settings: only_from=IP 或網域名稱,IP 或網域名稱 Only_from=IP or domain name, IP or domain name 由於 telnet 已經是一個不安全的服務,我們想要直接將它關閉不提供服務,只要修改上面檔案中的 disable=no 改成 disable=yes,然後將 xinetd 重新啟動就可以了,啟動方法很多,例如:您可以使用底下的指令 since telnet is already an unsafe service, and we want to shut it down and not provide it directly, as long as the disable =no in the above file is changed to disable=yes , and then reboot xinetd , for example, by using the command below /sbin/service xinetd restart 需要系管師自行修改的服務設定檔,除了 telnet 以外,還有 imap 和 pop3,設定範例如下: service configuration files that need to be modified by the regulator itself, in addition to and pop3 , for example: /etc/xinetd.d/imap # default: off /etc/xinetd.d/ipop3 # default: off 由於 xinetd 可以用 root 身分存取 shell 指令,因此有被駭客入侵之虞,有些系統對安全要求比較高,不喜歡用 xinetd,這時候就會另行安裝提供主動式服務的套件,例如:gnu-pop3d ......等等。 , since xintd can be accessed as command , there is a risk of hacking, some systems are more demanding for security than xinetd , and other packages for the provision of host-type services, such as: gnu-pop3d > . Linux 在校園網路的角色,仍然是當成伺服器使用居多,由於校園內是 Linux 和 windows 的混合網域,因此使用網芳來分享檔案才是最可行的解決方案,也比較能讓師生接受,其他像使用 ftp、web 的方式恐怕還是屬於系管師的最愛。 The role of Linux in the school network is still more frequently used as a server, since the combination of fields in the campus is Linux Samba 是使用 smb 通訊協定來與 windows 作業系統溝通,smb 其實就是 windows 網芳所用的 nbt 通訊協定,有關它的運作原理已經在「網路名稱系統」課程裡有詳盡的介紹,在此不再贅述。隨著 Samba 與 Linux 系統的整合,目前已經可以將 Samba 運用在許多不同解決方案裡,包含底下幾種應用: Samba is used to communicate with the business system using the communications protocol , whose operating principles are already well described in the course of the Internet Name System and are not described here. Samba and are used to integrate the systems span , which can now be used in several different ways: Samba span sng h sng span span
在實際應用之前,我們必須先介紹幾個 windows 網域的概念,透過下表的比較,應該可以對 Samba 有較透徹的理解,請務必將它們分辨清楚: before practical application, we must first introduce some concepts of the domain window which, by comparison with the following table, should have a better understanding of and must be clearly identified:
Samba 組態檔範例 Samba group file executory
繳交作業專案研究 目標:使用 Samba 作為學生繳交作業的伺服器,達成底下的功能: Target: Use Samba as a student delivery server to perform the following function:
實作:
說明:
網頁部分:安裝 WAM 1.62 ,使用內建的 album.cgi 圖庫管理員程式來觀看所有的作業 web section: Install WAM 1.62 using built-in album.cgi library manager programs to view all homework
使用 Samba 當 PDC 的應用 to use Samba when PDC /span lang = zh-tw 把 Samba 當 PDC 使用時,透過登入指令稿可以將 Linux 所提供的其它服務整合在一起,例如:Apache,方法是透過 Samba 分享資料夾,會自動將使用者家目錄分享為 homes 這個名字,然後在登入指令稿裡幫使用者在桌面上建立捷徑,登入後直接可以在桌面上做網頁。 integrates other services provided by Samba, for example: Apache, by sharing folders through Samba , which automatically shares the user's directory with the name , and then helps users to create shortcuts on the desktop to make them available directly on the desktop >.
使用個人化設定 samba必須和windows 98的多使用者功能配合才可發揮完整的個人環境效果,這時資料會回存到Server 上的個人家目錄中。(超浪費網路頻寬和主機空間,學校電腦教室環境不建議使用)
讓 Samba 加入 windows 網域 當 security=domain 時,Samba 被當成 windows 網域成員,這時必須進行加入 windows 網域的動作:
讓 win2000 perfessional 加入 Samba 網域
Samba 相關指令 Samba instruction /sbin/service smb start /sbin/service smb stop /sbin/service smb restart 用來啟動、停止及重新啟動 samba 服務。 to start, stop and restart samba service. smbpasswd -a user1 smbpasswd -e user1 Samba 的帳號密碼是與 NT 相容使用 DES 編密,因此獨立存放在 /etc/smbpasswd 而非系統的 /etc/passwd 裡面,要為 Samba 新增一個使用者,該使用者必須是 Linux 系統內的合法使用者才行。 The Samba account password is coded in compatible with and is therefore stored separately in /span /etc/smbpassw instead of system , and the user must add user >. smbclient -L xxps1 -U shane 用來做 Netbios 名稱解析偵錯,詳細用法請參考 man smbclient 說明文件。 to solve bugs in the name of Netbios . For details see man smbclient . smbmount "\\\\ccserver\share" /mnt smbumount 用來掛載共享資料夾,作用相當於在 windows 平台上使用 net use 指令。 to load shared folders with the same effect as using commands on platforms. net use X window 裡的網路上的芳鄰 x window 在安裝好 Samba 的 Linux 上也可以如同在 windows 平台上,直接瀏覽網路上的芳鄰,以拖曳方式存取共享資料夾內的檔案,用法與 windows 完全相同,請進入 X window 後點選桌面上的個人資料夾圖示,這樣將會啟動 X window 裡的檔案管理員,它叫做 Nautilus,接著在網址列輸入 smb:/ 即可。 , which installs the shared folder , also has direct access to the neighbors on the network, using the same method as the file manager in the shared folder , which is called , which will be activated , and will be replaced by , which is called >. 如果您還遇到 Samba的其他問題﹐可以到大本營 http://wwwhttp://www.360doc.com/content/07/0428/20/nicedoc/samba/sambafaq.html 網頁參考看看。 If you also have other Samba problems, please visit Camp at http://www.360doc.com/content/07/0428/20/nicedoc/samba/sambafaq.html>. WAM 是筆者為了推廣 Linux 校園應用而開發的系統,目前 2.0 版尚未開發完成,因此本次研習仍使用舊版教學,請大家見諒! WAM is a system developed by me to promote the application of the campus Linux and is currently not available in version 2.0 , so this study is still in the old version of teaching, see ! WAM 安裝與應用方式,請閱讀 WAM 使用手冊。 WAM RPM 全名叫做 Red Hat Package Manager,是由 Red Hat 公司所開發,因應傳統程式套件安裝方式太複雜,需要先將程式套件解壓縮,然後編譯程式,接著在拷貝到規定的資料夾,然後要自行建立相關組態檔及連結檔,這些流程不是玩家恐怕難以順利達成,因此將安裝程序和壓縮檔打包在一起,並透過單一程式 rpm 來進行解壓與編譯安裝等所有工作,以減輕系管師的負擔。在爾後的版本裡,Red Hat 公司陸續加入來源碼版本控制的機制、遠端安裝功能,使得 RPM 成為一套 Linux 必備的系統,在其它的 Linux 發行版本,也都提供了 RPM。 RPM , fully named Red Hat Package Manager , developed by Red Hat lang = zh-tw >, is too complicated as the custom package is installed in such a way that the program package is compressed, then the program is compiled to be copied to the prescribed folder, and then the associated configuration and connection files are built on their own. 套件安裝 package installed 能夠透過 RPM 安裝的程式套件,附加檔名一定是 .rpm ,同時為了方便後續的管理,檔名會依照 Red Hat 的統一命名法,舉例如下: to install program packages via RPM with an additional filename , which will also be named in accordance with the single name of Red Hat for ease of subsequent administration, for example: netscape-navigator-4.51-4CLE.i386.rpm 從左往右閱讀,分別是套件名稱(netscape-navigator)、版本序號(4.51-4)、特殊修正版本(CLE)、套件類別(i386),常見的套件類別說明如下: read from left to right with the name of the package (netscape-navigator), the serial number of the version (4.51-4), the special modified version (CLE), the package category (i386), with the following generic combinations: i386:表示是專為 intel 386 CPU 以上的電腦發行的 i386: denotes intel 386 CPU dedicated to computers more than intel 386 CPU alpha:表示是專為 alpha CPU 的電腦發行的 Alpha: denotes dedicated computer distribution for alpha CPU src:表示是程式原始碼及說明文件 src: indicates source code and help file 使用 rpm 指令來安裝套件是非常容易的,例如要安裝 netscape-navigator-4.51-4CLE.i386.rpm,只要輸入 to install packages using the rpm command, e.g. to install netscape-navigator-4CLE.i386.rpm, if entered rpm -ivh netscape-navigator-4.51-4CLE.i386.rpm 套件升級 package upgrade /font 當程式套件釋出新版本時,我們可以使用底下指令來升級: When the program package releases a new version, we can use the following command to upgrade: rpm -Uvh netscape-navigator-4.61-4CLE.i386.rpm 套件移除 package removes /font 移除套件更容易,只要輸入套件名稱就好了,不需要打完整檔名,這是因為 rpm 為了因應來源碼版本控制的需求,使用資料庫來管理套件,因此直接會使用名稱到資料庫尋找符合的資料,例如: removes the package more easily, as long as the package name is entered and the full file name is not required, because rpm uses the database to manage the package in response to the need for source version control and therefore uses the name directly to find the appropriate data in the database, e.g. rpm -e netscape-navigator 套件查詢 package query 由於 rpm 使用資料庫來進行套件管理,因此套件查詢對 rpm 來說是很簡單的任務,rpm 的查詢指令非常多,現在只介紹常用的指令: Since database management is done by rpm , package query is a simple task for rpm /span >rpm with a large number of query instructions for span lang = zh-tw > and is now available only for the usual command: rpm -q netscape-navigator(查詢目前所安裝的版本序號) rpm -q netscape-navigator (Query currently installed version number) rpm -ql netscape-navigator-4.61-4CLE.i386.rpm(查詢此套件的詳細檔案列表) rpm -ql netscape-navigator-4.61-4CLE.i386.rpm (see detailed file list for this package) rpm -qa(列出所有已安裝的套件) rpm-qa 其它特異功能 other special features /font rpm 還有一些重要的功能,由於頗為複雜,所以不在這裡詳細說明,舉例如下: rpm also has a number of important functions, which, because of their complexity, are not detailed here, for example: rpm -V netscape-navigator-4.61-4CLE.i386.rpm(檢查檔案是否損壞) rpm-V netscape-navigator-4.61-4CLE.i386.rpm rpm --recompile netscape-navigator-4.61-4CLE.src.rpm(重新編譯程式) rpm-recompile netscape-navigator-4.61-4CLE.src.rpm rpm -i ftp://ftp.sppshttp://www.360doc.com/content/07/0428/20/linux/md5-1.7.i386.rpm(遠端安裝) rpm-i ftp://ftp.sppshttp://www.360doc.com/content/07/0428/20/linux/md5-1.7.i386.rpm rpm -K netscape-navigator-4.61-4CLE.i386.rpm(檢查套件的數位簽章是否正確,可使用 MD5 sum 或是 GPG) rpm - K netscape-navigator-4.61-4CLE.i386.rpm (check if the digital signature of the package is correct, using MD5sum or GPG 緊急救援模式 emergency relief mode /font 通常系統未正常關機時,在下一次啟動程序中,會自動以 fsck 加以修復,但有時候發生比較嚴重的問題時,必須以手動方式強迫修復硬碟,這時候就會進入 single mode(修復模式),手動進入 single mode 的方法,請參考前面 GRUB 章節。 will be repaired automatically in the next startup procedure when the system is not normally shut down fsck , but sometimes there are more serious problems, the hard disk has to be repaired manually, and then enter single mode , manually into single mode , see previous section GRUB . 如果有製作開機磁片,也可以使用磁片來進入修復模式,請在安裝或升級好系統後,依底下步驟建立開機片,等到系統當掉再做就來不及了: If you have an opening disk, you can also use a disk to get into repair mode. If you install or upgrade a good system, you will have to build an opening at the bottom, as long as the system fails to do it again: dd if=boot.img of=/dev/fd0(如果找不到 boot.img 這個檔案,在光碟片上有) dd = Boot.img of =/dev/fd0 (if this file Boot.img is not available, on diskette ) 當 / 所在的磁區損毀時,這時候由於無法掛載根目錄,連 single mode 都進不去,這時候就必須使用緊急救援模式,請放入 Linux 開機光碟,開機後輸入 linux rescue,以此模式開機會將系統所需檔案放在 RAM disk 中,接著會將原來硬碟上的 / 目錄掛載在 /mnt 目錄下,由於這時候系統所用的 / 是從 RAM disk 掛載進來的,與硬碟上的 / 無關,因此在進行強制修復時,可以很容易將該磁區取消掛載。 When is damaged in the magnetic area where is located, it is necessary to use the emergency rescue mode when Linux is unable to load the root directory , so that the files needed for the system are placed in the mode GRUB 的安全 GRUB /font 由於 LILO 有安全上的漏洞,因此建議您使用 GRUB,GRUB 可以使用 MD5 密碼來保護選單編輯的功能 ,方法是先建立 MD5 雜湊: is a security gap in LILO and it is therefore recommended that you use GRUB , GRUB to protect the function of menu editor by using the MD5 password: /span /sbin/grub-md5-crypt 執行這個命令後,會得到一個雜湊字串,接著請編輯 grub.conf,在 time out 下面加入這一行: After executes this command, you will get a buffet string, followed by the editor grub.conf, and insert the line under time out . password --md5 password-hash 其中 password-hash 的地方請輸入剛才得到的雜湊字串。 where password-hash enter the saffron string just obtained. 很不幸的是萬一攻擊者開機時,選擇沒有安全防護的系統來開機,例如:dos,然後使用一些特殊工具來讀取 Linux 磁區內的檔案,這也不是不可能,因此像 DOS 的開機也應該要加以保護,我們可以在定義 DOS 開機選單的部分,使用底下組態來加以保護: unfortunately, it is not impossible to open a system without security when the attacker is on board, for example: dos, and then to use special tools to read files in the magnetic area of /span > Linux , which is not impossible, so openings like DOS should also be protected, and we can use the following combination to protect them: /span DOS title DOS SSH 的使用與安全 Use and safety 使用 openSSH 來取代 telnet 已經是系管師必備的能力了,在 win98 平台上習慣用 netterm 的老師,還是可以繼續使用新一代的 secureNetterm,這個版本已經加入所有 openSSH 會用到的功能。 is used to replace by an openSSH , and a new generation of secureNetterm is used as a master's capacity, and this version has been added to all functions openSSH . openSSH 實際上是包含三個工具,即 SSH、SCP、SFTP,其中 SSH 用來取代 telnet,SFTP 用來取代 FTP,而 SCP 就比較少用,是用來取代 rsh,除了這三種通訊協定外,透過 port 轉送技術也能處理 X window 的加密,但前提條件是必須在 win98 上先安裝 local X 程式。 OpenSSH actually contains three tools, namely , , /span 有鑒於傳統連線工具因為不具備編碼能力,所以直接在網路上傳輸明碼,這就容易遭到攔截而導致秘密外洩,為了解決這個問題,新一代的 SSH 通訊協定則是運用雙金鑰編密來進行安全連線,所謂雙金鑰,就是公鑰跟私鑰,SSH 套件內含產生金鑰的工具程式 ssh-keygen,透過這支程式可以產生兩把鑰匙,其中的私鑰是安置在本地端,為了系統安全應盡量提升私鑰的存取權限限制,一般會設定成 640。公鑰則必須上傳到被控端,當本地端連上被控端時,本地端會先核對通行密碼(passPhrase),接著送出連線要求(ssh 與 telnet 不同,是使用 TCP 22),被控端會根據來源主機及使用者名稱來判斷應讀取哪一個公鑰,接著會隨機產生一個亂數,我們稱它為一次性密碼,因為這個密碼只使用在本次的連線中,將要求登入的訊息以公鑰編密後連同一次性密碼送回給本地端,本地端則以私鑰解密,並將使用者名稱與密碼以私鑰編密連同一次性密碼送去給被控端,雙方便以此種方式溝通。為了確保安全,被控端不應該得知私鑰的內容,以避免萬一公鑰外洩,因缺乏私鑰而無法假冒本地端,來與被控端連線,這樣可以將被控端被駭客破解的可能性降到最低。有關於 ssh 詳細的連線過程,可自行參考底下流程: The communication protocol is a two-key security connection, the so-called two-key, the private key, the , the private key, the private key, the , the private key, the private key, the , the source of the key, the source of the message to solve the problem, the new SSH message >, the user of the Initiating SSH session at Tue Nov 26 12:08:21 2002 底下以 secureNetterm 為例來說明製作金鑰,上傳安裝公鑰的方法,開啟 secureNetterm 之後,點選 Security Wizard: for example, select securityNetterm as the way to upload and install public keys, and then click SecurityNetterm : /span SecurityWizard 在安全精靈視窗裡,請輸入使用者名稱,不要用 root 帳號作遠端登入,那樣比較不安全,SSH 第一版通訊協定已經被駭客找到弱點,因此我們使用第二版: In a secure elixir window, enter the user name and do not use the root account as a remote login, which is less secure. SSH the first version of the communication protocol has been identified by hackers, so we use the second version: 在這一頁畫面裡,主要是設定帳號認證的模式,請使用雙金鑰演算法,並要求編密: on this page, mainly in the mode of setting account authentication, please use two-key algorithms and request encryption: 這一頁是所有設定裡面最關鍵的,請務必做對,首先是金鑰檔案格式請選擇 SSH Key File,接著按瀏覽找一個安全的地方存放金鑰(建議擺放在 scureNetterm 的 .ssh 資料夾內),選好資料夾後,請輸入 id_dsa 當檔名,該檔案不須先建立,稍候程式會為我們把檔案新增進去,接著直接按產生金鑰按鈕,金鑰的類型請選擇 DSA(選擇 RSA 其實也可以,但 Linux 預設是使用 DSA),金鑰做好後,請按 Key Utilites 設定通行密碼(passPhrase),最後請將公鑰匯出到桌面上並命名為 authorized_keys。 , which is the most important part of all settings, is required to do the right thing, starting with the key file format SSH Key File , following a browsing search for a secure repository key (suggested at scureNetterm .ssh ), after selecting the folder , the file should not be created, the file will be added to our files, followed by a direct push key button, and the key type of the key should be placed at 金鑰產生好了後,在 port 轉送設定畫面,我們暫且不去理會它,直接按下一頁,進入本地端 Cipher 的設定,這個設定是用來微調編密用的雜湊演算法,Linux 的預設值是使用 tripleDES,我們在 secureNetterm 裡面也沿用同一設定,請點選 3des-cbc 並將它上移為最優先順序(如果不改變設定也可以連通,效能比較差一點) After the key has been created, the default value for is , which is used to fine-tune the magenta algorithm for Linux lang = zh-tw >, which is used as tripleDES , and we are going to use section Netterm , which is also used to fine-tune it, please click 3des-cpang and move it to the top order (if not changed, it could be more effective) 最後,將匯出的 authorized_keys 檔案以 FTP 上傳到伺服器上,請在個人家目錄預先建好 .ssh 資料夾,將該檔案移到資料夾內,這樣就完成被控端的安裝作業了。 Finally , uploads the exported file Authorized_keys to the server . Please preset the folder .ssh in the personal directory and move the file to the folder so as to complete the installation of the alleged client. 實際上應用時,我們可以為每個不同被控端產生新的金鑰,但也可以從頭到尾用同一份金鑰,只要在上圖的第二步驟去選擇已經存在的金鑰即可,這樣不管我要遠端登入到哪一台主機都是使用同一份金鑰,安全性當然比較差,因為公鑰被取得的機會多出好幾倍。使用 SSH 還有一個不方便的地方,順便在這裡討論,當我們想在另一台電腦上遠端登入到同一台主機時,為了方便,有人就想要使用原來電腦上作好的金鑰,這樣做是行不通的,因為這樣做私鑰就會散佈出去,導致 SSH 安全性比 telnet 還差的現象(當取得私鑰時,透過某種設定可以讓遠端電腦不再詢問帳號密碼,直接可以連線成功),所以正確的做法是在另一台 win98 上重新產生金鑰。如果我們真的照建議的做法來實施,還會碰到另一個問題,那就是必須在被控端安裝兩支公鑰,由於公鑰必須存放在 authorized_keys 檔案內,因此第二支公鑰必須使用 Append 的方式附加上去,如果對指令不熟,請使用文書編輯程式來手動編輯。 is less secure because the public key is many times more available. Using there is an unwelcome place where we can discuss the same key from the beginning to the end, as long as we choose the key that already exists at the second step on the top of the map, it is not feasible to use the same key, regardless of which mainframe I have entered far away. This is not possible, because it is not possible to distribute the key, and if there is another place where the security of the hand is more accessible than {span > >, it is necessary to use the existing key > >, it is necessary to use it >, and it is necessary to use it 使用 secureNetterm 連上主機之前,不要忘記到地址簿裡將連接埠從 23 改成 22,否則會連線失敗,ssh 設定成功後請記得到伺服器上將 telnet 服務關閉。 before using secureNetterm on the host, do not forget to change the port from to 22 in the address book, or if the link fails, will be closed on the server after successful configuration. SSH 的安全性是依靠正確的連線步驟來完成的,如果使用錯誤的方法來連線,安全性將會比使用 telnet 還糟糕,不論是使用 telnet 或 SSH,請記住絕對不可以用 root 身分來登入,請打開 /etc/ssh/sshd_config 組態檔,將 PermitRootLogin 這一個參數設為 no,以防止意外發生。 The safety of SSH is achieved by the right line step, and if the wrong method is used to connect, the security will be worse than the use of telnet, either using telnet or SSH, bearing in mind that root will never be used to login as , and will be used to prevent permitRootLogin >, as a reference for /spanspan 命令殼層的安全 command shell security /font 學校內使用者多為老師或學生,他們並沒有遠端登入伺服器的需求,因此這項功能對他們來說是多餘的,如果保留遠端登入的功能又容易遭到駭客入侵,徒增管理上的負擔,為了安全考量,建議將此項功能關閉。 Schools have many teachers or students who do not need remote access to the server, so this function is more than available to them, and if the remote login function is retained and vulnerable to hacking, increases the administrative burden and recommends that it be shut down for security reasons. 請編輯 /etc/passwd 檔案,將 /bin/bash 改為 /sbin/nologin,如果您使用巨集取代,不要忘記把自己及系統管理人員的命令殼層改回來,否則自己也登不上去了。 Please edit the file /etc/passwd and replace it with /sbin/nologin , or if you use a macro to replace it, do not forget to change the shell of your orders and those of the system administrator, or you will not be able to board it yourself. 主控台的安全 the security of the Console /font 如果您的伺服主機是擺放在公開場所,或是主機房管理鬆散,導致不相干的人也有機會使用主控台登入,請務必做好主控台保全。 If your server is in a public place or if the host room is loosely managed, the unrelated person will also have the opportunity to use the Console, please do as well as maintain the Console. 建議的做法是,禁止以 root 身分登入主控台,必須使用一般帳號登入後,才能以 su 或 sudo 指令轉換身分為 root,這樣做就可以避免 root 密碼被反覆在主控台上測試。請將 /etc/securetty 檔案清除成空白就可以了。 suggests that root lang = zh-tw > be prohibited from entering the mainframe and that it be necessary to log in with a general account before the password or command span lang lang = zh-tw > can be removed and the file /span > /span lang = zh-tw > removed. 服務的安全 security of services /font 由於 FTP 及 Mail 程式本身的漏洞,當 client 端連上來透過某複雜的特定程序造成緩衝區溢位,就可以取得 root 的身分來進行惡意的破壞,例如:讀取 /etc/shadow 檔,而這類動作通常與 FTP 或 Mail 系統的運作無關,也就是說正常運作下程式不會去進行這些動作。關於這個問題,一方面必須等待更新更安全的套件開發出來,一方面還是可以透過 PAM 的機制來進行保護。 links to a complex, specific program that creates buffer zone overflows by and Mail 由於 FTP 或 MAil 在進行身分驗證時是透過 PAM 模組,透過 PAM 模組的過濾,我們可以禁止這類程式去存取只有 root 身分才能讀取的重要檔案,這雖然無法防止駭客入侵,但至少能阻止駭客進行大規模的破壞。 via the FTP or MAIL through the identification module , which can be banned from accessing important files that can only be accessed as root , which cannot prevent intrusion, but at least prevent mass destruction. 請打開 /etc/pam.d 找到 system-auth 檔案,請在檔案開頭加入底下這一行: Please open to find system-auth . Please add the following line to the beginning of the file: auth required /lib/security/pam_listfile.so |
注册有任何问题请添加 微信:MVIP619 拉你进入群
打开微信扫一扫
添加客服
进入交流群
发表评论