http://www.web008.net

Linux大全

Linux 基本指令介紹

簡易 FTP Server 架設 -- Wu FTP
正文已不复維護,更新文章請參考 vsftpd的介紹

 

方今翻新日期:2000/09/13

必然要先學會的下令:ls, more, cd, pwd, rpm, ifconfig, find 
登录與登出(開機與關機卡塔尔:telnet, login, exit, shoudown, reboot 
Linux 两人多工與背景執行作用:& 與 [ctrl]+[z], fg, ps, kill 
檔案與目錄管理:cd, pwd, ls, cat, more, mkdir, rm, rmdir, mv, cp, ln, find, whereis, chmod, chown, chgrp, df, du 
磁碟與硬體管理:mount, fdformat, fdisk, mke2fs, mkbootdisk, badblocks, fsck, rpm 
系統管理員:su, clear, dmesg, groupadd, useradd, userconf, passwd, who, whoami, top, free, quotacheck, edquota 
壓縮指令:compress, gzip, tar 
一些網路功用:ifconfig, route, netstat, hostname, ping, nslookup,talk, traceroute, mail 
任何部分沒的:date, cal, grep 
ftp 指令:ftp, ncftp, gftp 
相關設定指令:set, uname, setup, lilo, Xconfigurator, xf86config 
X-Window內的設定指令:startx, netconf, netcfg, XF86Setup 
問題討論:充实新硬碟,追加新使用者,製作開機磁片, 

 


在 Internet 上面的傳輸協定當中, FTP ( File Transfer Protocol ) 算是一個最古老的協定之一了!早期還沒有這麼多好用的協定之前( 例如 SAMBA ),都是使用 FTP 來進行資料的傳遞的呢!另外,一般來說,資料的傳輸以 FTP 這個協定來傳送是相當的快速的,而且某些場合當中其實也相當的方便。不過,值得注意的是,使用 FTP 來傳輸時,其實是具有一定程度的『危險性』,因為資料在 Internet 上面是完全沒有受到保護的『明碼』機制!所以,其實鳥哥不太建議大家使用這個伺服器的啦!尤其當你建置好了 FTP 之後,如果經常進行資料的傳遞,對於您的網路頻寬『真的有很大的損害』啊!不過,無論如何, FTP 仍然有其存在的必要!例如中山大學的 FTP 站就作的相當的棒啊!所以,底下我們就來談一談用在這個古老的協定上面,最古老的伺服器之一: Wu FTP

特別說明:

美高梅163888, 
原理:
  :FTP 的功用簡介
  :FTP 的運作流程與使用到的 Port
  :什麼是『被動, passive』的連線?
  :FTP 的代表方案與安全性問題
  :什麼時候才要設定 FTP 啊!開放誰人連進來?
套件安裝:
Server 端設定:
  :Wu FTP 的結構
  :最簡單的 ftpaccess 設定檔
  :使用 Super daemon 管理 FTP 的情況
  :歡迎畫面包车型客车创制、 Readme 檔案與關閉 FTP 訊息內容
  :界定最大線上人數
  :限制與废除使用者的家目錄規範
  :時間相關的設定項目
  :流量與上傳下載總量的约束項目
  :創造 guest user 與 guest user 的家目錄問題
  :anonymous 的根目錄與建设构造可上傳目錄
  :針對人物(real, guest, anonymous)的范围設定項目
  :拒絕有个别使用者與開放有个别使用者的登录(/etc/ftphosts, deny-uid, allow-uid)
  :目錄與連結檔的問題
  :建立 passive port 提供 client 端登入
  :修改 FTP 預設的 port 21 的連線
  :生龙活虎個多樣化的實例
Client 端的行使 FTP 軟體:
  :ftp
  :ncftp
Server 端的平安設定項目:
  :iptables
  :TCP_Wrappers
  :pam 模組與 /etc/ftpusers 的關係
  :FTP 自个儿提供的抵擋 username 或 host 的决定項目
重點回顧
參考資源
本章習題練習

先說美素佳儿(Friso卡塔 尔(阿拉伯语:قطر‎下,基本上雖然 Linux 前段时间對於圖形分界面包车型大巴行使已經支援的相當的不錯,不过對於一些比較細微的設定方面,畢竟是比不上使用傳統的文字介面來的一蹴而就!並且,使用文字介面來設定對於瞭解 Linux 有必然的幫助,畢竟 Linux 與 MS 的咚咚是不太相似的!鳥哥特別建議大家利用文字介面來解決問題!

除了这几个之外,使用文字介面登录 Linux 對於系統資源的損耗也比較少,相對的,就有比較多的資源能够做為網路的用场,進而扩大Linux 的功力。尤其,在笔者們這個網頁中,基本上是以肖似被淘汰的 586 体系電腦做為主機,因而對於記憶體與 CPU 的效果需要並不高,所以能有效的減少系統資源的浪費就盡量的減少一些便于耗掉系統資源的廢物吧!

style="font-family: 钟鼓文;">底下笔者們會分門別類的將各個比較常用的下令給搬上來,你能够參考一下。其余豆蔻年华個最珍视的地点是,在 Linux 主機上,已經內建各個指令的說明內容了,何况是很詳細的線上說明,你能够动用:   

[root@tsai  root]#  man  command <=== command 為你欲查詢的指令名稱
[root@tsai  root]#  info  command 

在上表中,針對 command 這個指令你能够行使 man 恐怕是 info 來查詢他的法力與說明,比如你要查尋 ls 這個指令時,你能够輸入: man  ls 或  info  ls 來查詢一下!適當的使用線上查詢對於你的意大利语及相關的下令作用有必然水准的幫助喔!



原理:File Transfer Protocol ( FTP )

登陆與登出(開機與關機卡塔 尔(阿拉伯语:قطر‎

 

style="font-size: xx-small;">telnet

這套軟體在 Windows 及 Linux 系統中都设有,只是介面有點不很相像正是了。基本上,這個程式是 user 端用來連線登入遠端主機的。比如鳥哥人在高雄,不过小编得以在高雄应用能够連上 Internet 的電腦,經由 telnet 連線上家裡的 Linux 主機,而進行設定!感覺上就就如在家裡玩自身的 Linux 主機风流倜傥樣!常常來說,如果你是选取 Winodows 系統,則你能够在『開始』-->『執行』後,輸入  telnet  xxx.yyy.zzz.qqq ,个中, xxx.yyy.zzz.qqq 為 IP 位址,則能够連上主機(或然是 BBS 卡塔 尔(英语:State of Qatar)囉。當然,倘令你是在 Linux 系統下,亦可径直輸入 telnet xxx.yyy.zzz.qqq 來連上主機或BBS喔!語法: telnet 主機位址(或主機名稱卡塔尔

style="font-size: xx-small;">login

style="font-family: 仿宋;">登录系統的吩咐,在遠端進入系統時,程式會自動執行。假設你所要登陆的系統主機為 sun.os.test.com ,則你能够在 Windows 底下的 Telnet 軟體,或其余軟體上,執行: telnet  sun.os.test.com 則會出現如下的畫面:

SunOS  5.7

login:  username 
Password:

sun# _

style="font-size: xx-small;"> 你少年老成旦有 username 及 pass word 就能够登陆系統啦!在您登陆系統後, sun# 是提醒字元,相當於古早的  C:> 的意思!

style="font-size: xx-small;">exit

這是離開 Linux 系統的一声令下,相當於 login out 的情趣。

sun#  exit

style="font-size: xx-small;">shutdown

Linux 用來關機的指令,這個指令独有root 才有權力下! shutdown 的用法如下:   

[root@tsai  root]#   shutdown  <==系統在兩分鐘後關機,並傳送訊息給在線上的人 
[root@tsai  root]#   shutdown  -h  now  <==系統立刻關機 
[root@tsai  root]#   shutdown  -r  now  <==系統立刻重新開機 
[root@tsai  root]#   shutdown  -h  20:30  <==系統在今天的 20:30 分關機 
[root@tsai  root]#   shutdown  -h  +10   <==系統在 10 分鐘後關機

style="font-size: xx-small;">reboot

style="font-family: 大篆;">這是鳥哥最常用來重新開機的命令(或關機卡塔 尔(英语:State of Qatar),能够包容寫入緩衝資料的 sync 指令動作,如下:   

[root@tsai  root]# sync; sync; sync; reboot

 

Linux 多少人多工與背景執行成效


两人多工

Linux 最為人所稱道的就是其五人多工的本领,你能够在此外時刻連線上來你的 Linux 主機,而且同時做过多的职业,举个例子同時執行 http 的 Web 成效,同時進行 fortran 等程式語言的編輯,並同時上網谈天!你會懷疑, Windows 98 也足以完毕這樣的境地呀!不過,不忘记了,在 Linux 的系統下,你所做的别的职业都以獨立的,你能够隨時將你所不用的专门的学业給殺掉,何况,當当中某后生可畏個程式當掉的時候, Linux 並不會當機,只要您在其余的視窗再開啟意气风发個終端介面,然後查出當機的那生机勃勃個命令的 process (過程卡塔尔国,然後將之殺掉就能够了!根本不用再重复開機!也因為這種四人多工的強大技术,由此, Linux 系統平日來說是超级少當機的,并且,由於其記憶體的治本作用完备,因而也不轻易有 CPU 過熱的情況發生(假如只是做為平时伺服器使用卡塔尔国。

在您的 Linux 主機中,能够扶助七個終端視窗介面,你能够按[Alt]+[F1].....[F7]來切換不一样的終端機介面!所以當在这之中大器晚成個終端機介面當機的時候,你能够在其它意气风发個終端機登录,然後查出錯誤的四面八方(使用 ps -aux 的效应卡塔尔国,再以 kill 將錯誤的地点殺掉就能够!

背景執行

style="font-family: 陶文;">其它意气风发個效率,正是『背景執行』的素养了。當你輸入   

[root@tsai  root]#  cp  file1  file2  &

這后生可畏串命令的時候,表示將 file1 這個檔案複製為 file2 ,且放置於背景中執行,也正是說執行這风姿罗曼蒂克個命令之後,在這后生可畏個終端介面依然能够做别的的办事!而當這风姿浪漫個发令( cp  file1  file2 卡塔尔国執行完畢之後,系統將會在您的終端介面顯示完毕的音信!很便利喔!

两人多工的問題

style="font-family: 燕书;">两人多工確實有繁多的好處,但其實也可能有保管上的困擾,因為使用者越來更加多,將導致你管理上的困擾哩!其余,由於使用者日盛,當使用者達到一定的人數後,平常你的機器便必要升級了,因為 CPU 的運算與 RAM 的轻重大概就會不敷应用!

& 與 [Ctrl]+[z]

style="font-family: 燕体;">如前所述,背景執行能够提供你在同风华正茂個終端機介面(命令情势卡塔尔国當中同時做过多的政工,你能够选择& 或 [Ctrl]+[z] 來將指令放置背景中執行。举个例子執行 find  "/"  -name  httpd & 這风度翩翩行命令,表示將尋找 httpd 這個檔案的下令放置到背景中執行的情致。其余,當你執行风华正茂個索要長時間的程式,举例執行 ftp 程式時,在程式進行當中,也足以經由按下 [Ctrl]+[z] 來將程式放置於背景中。那什么样由背景中將程式在叫回螢幕上啊?請參考下风流倜傥個指令 fg。

style="font-size: xx-small;">fg

fg 是將程式再叫回螢幕上顯示的生龙活虎個发令,在終端格局中輸入 fg 就可以。當然,借令你當時並沒有程式在執行的話,系統會告訴你,並無執行中等射程式(no such job卡塔 尔(英语:State of Qatar)。

style="font-size: xx-small;">ps       -aux

style="font-family: 行草;">這是注重執行中的程式的大器晚成個下令,你能够包容其參數  -aux  來執行,如下:   

[root@tsai  root]#  ps  -aux

style="font-family: 小篆;">則系統將會列出連同系統服務的程式,在輸出的首先列中會出現 『PID』字樣,在那风流浪漫欄中的咚咚正是每生机勃勃個程式執行的代碼。比如下边包车型大巴輸出畫面。   

[root@tsai  root]#  ps  -aux 
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND 
root         1  0.0  0.1  1324  532 ?        S    Jul16   0:14 init [3] 
root         2  0.0  0.0     0    0 ?        SW   Jul16   0:05 [kflushd] 
root         3  0.0  0.0     0    0 ?        SW   Jul16   0:29 [kupdate] 
root         4  0.0  0.0     0    0 ?        SW   Jul16   0:00 [kpiod] 
root         5  0.0  0.0     0    0 ?        SW   Jul16   0:00 [kswapd]

在上圖中, init 這個程式的 PID 為 1 。

style="font-size: xx-small;">kill

style="font-family: 燕书;">這是用來殺掉執行中等射程式的指令,需合作 ps 這個指令,當你執行业作风度翩翩個 ftp 程式,不过他有點當當的時候,你能够 ps  -aux 這個指令查出  ftp  這個程式的代碼(PID卡塔 尔(阿拉伯语:قطر‎,假設其 PID 為 110 ,然後輸入:   

[root@tsai  root]# kill  110

就能够殺掉這個 ftp 程式。

FTP 的效果与利益簡介


 

檔案與目錄管理

 

style="font-size: xx-small;">cd

這是用來變換职业路徑的下令。意气风发登入Linux 系統後,root 會在 /root 下,至於使用者會在預設的 /home/username 底下,譬如鳥哥的 ID 為 vbird ,則以 vbird 的身价登录後,會到 /home/vbird 這個路徑下。OK!那回到上大器晚成層能够用 cd .. 而到相對路徑可到 cd ../bird,至於絕對路徑則是 cd /usr/sbin !注意喔,在眼下的唤醒字元會改變路徑名稱!   

[root@tsai /root]#  cd ..       <== 回到上一層 
[root@tsai /]#  cd          <== 回到使用者目錄 
[root@tsai root]#  cd /usr/bin  <== 到 /usr/bin 這一個目錄 
[root@tsai bin]#                <== 看吧!到 bin 這個目錄下囉!

style="font-size: xx-small;">pwd

style="font-family: 大篆;">這是顯示近日所在目錄的吩咐,比如在上個表格最後的目錄是 /usr/bin 這個目錄,但是提示字元僅顯示 bin ,假使您想要知道近来所在的目錄,能够輸入 pwd 就可以:   

[root@tsai bin]#  pwd 
/usr/bin  <== 顯示路徑囉! 
[root@tsai bin]# 

style="font-size: xx-small;">ls

style="font-family: 燕体;">這是用來顯示檔案名稱與內容的一声令下,檔案的內容說明已經在 這裡 說明過了,在那不再重複! ls 的語法為:   

[root@tsai bin]# ls --color 以彩色顯示檔案資料 
[root@tsai bin]# ls -l     詳細列出檔案系統結構 
[root@tsai bin]# ls -a     顯示隱藏檔 (以"."開頭的檔案) 
[root@tsai bin]# ls -al    同時顯示隱藏檔與詳細資料 
[root@tsai bin]# ls -al|more 將檔案內容以一頁一頁顯示

style="font-size: xx-small;">cat

這是將檔案內容列出的一声令下。举个例子在 /root 下有生机勃勃個檔名為 .bashrc (這是系統預設的檔案,是隱藏檔卡塔尔,你能够按下 cd 回到 /root 目錄後,執行:   

[root@tsai /root]# cat .bashrc 
# .bashrc

# User specific aliases and functions

alias rm='rm -i' 
alias cp='cp -i' 
alias mv='mv -i' 
alias ll='ls -l' 
alias lm='ls -al|more'

上边顯示的就是 .bashrc 這個檔案的內容啦!基本上,cat 與 DOS 下的 type 是同等的!

style="font-size: xx-small;">more

是不是覺得 cat 在讀取較大的檔案的時候會有看不到的資訊呢(借使檔案太大的話卡塔尔国,這時候你能够用 more 來黄金年代頁頁讀取喔!此外, more 也足以與其余的程式合并使用,例如 ls !(如下表中,『|』正是分隔號,能够將兩個指令放在一齐執行!卡塔 尔(阿拉伯语:قطر‎   

[root@tsai /root]# more .bashrc 
[root@tsai /root]# ls -al|more

style="font-size: xx-small;">mkdir

创设新的目錄!例如作者們要创设风度翩翩個 test 的目錄,你能够這樣下命令:   

[root@tsai /root]# mkdir test 
[root@tsai /root]# ls -l

再執行了 ls -l 之後,你就足以看看 test 這個目錄啦!

style="font-size: xx-small;">rm    -irf

這是移除的授命,相當於 dos 下的 del 指令!這裡要留意的是,常常在 Linux 系統下,為了怕檔案被誤殺,所以都已经經有 -i 這個參數, -i 是指每個檔案被殺掉在此之前都會確認贰回。而只要要連目錄下的東西都合营殺掉的話,将在动用 -rf 這個參數了!你能够用上边這個例子來試試看有什麼不相同的現象!   

[root@tsai /root]# rm test 
[root@tsai /root]# rm -rf test

style="font-size: xx-small;">rmdir

mkdir 是创建目錄,而 rmdir 就是移除目錄的指令。不過,借使欲移除的目錄裡頭有檔案或任何目錄存在,就無法移除,這時就要用剛剛的 rm -rf 來移除啦!

style="font-size: xx-small;">mv

style="font-family: 燕体;">這是移動檔案或目錄的指令,举个例子作者們要將 .bashrc 這個檔案移動至根目錄下,則:   

[root@tsai /root]# mv .bashrc / 
[root@tsai /root]# mv /.bashrc .

而將檔案移動至近日的专门的学业目錄,則加上 "." 這個字!

語法: mv 來源檔(或目錄) 目的檔(或目錄)

style="font-size: xx-small;">cp

就算 copy 的意味。譬如笔者們要將 .bashrc 這個檔案複製到 /home 底下,能够:   

[root@tsai /root]# cp .bashrc /home

語法: cp 來源檔 目的檔

style="font-size: xx-small;">ln

 ln  -s  真實目錄或檔案   連結的目錄或檔案:這是連結檔案或目錄的指令,平日笔者們都會加 -s 這個參數,比方笔者們將 /usr/bin 這個目錄連接到 /root 底下,能够這樣輸入:   

[root@tsai /root]# ln -s /usr/bin bin

不過請注意喔,在你的 /root 底下的 bin 這個目錄中的全数檔案其實都以 /usr/bin 裡面包车型大巴東西,所以你要是進入 /root/bin 內亂殺東西的話,等於是將 /usr/bin 內的檔案殺掉喔!

語法: ln -s 來源檔(或目錄) 目的檔(或目錄)

style="font-size: xx-small;">find

style="font-family: 甲骨文;">尋找檔案的命令,會將欲尋找的檔案找寻來,比方下边包车型客车事例:   

[root@tsai /root]# find / -name bin

上边的意味為:在 / 目錄(根目錄卡塔尔下尋找檔名(-name卡塔 尔(英语:State of Qatar)為 bin 的檔案,要留意的是,因為 Linux 的檔案超级多,假若您的電腦比較舊,大概會找非常久...

語法: find 路徑 -name 檔名

style="font-size: xx-small;">whereis

相對於 find ,你也得以接收 whereis 這個指令來下達找尋的檔案,whereis 利用曾經找過的系統資訊內的資料去找檔案,所以速度會极快,不過,如果whereis 找不到的話,並不代表該檔案真的空中楼阁!這個要小心!   

[root@tsai /root]# whereis bin 
bin: /usr/bin

style="font-size: xx-small;">chmod

style="font-family: 甲骨文;">這是變更檔案屬性的吩咐,平时鳥哥都以以數字作為改變屬性的依據;在檔案的屬性中, r 為4分、w 為2分, x 為1分,假若您想要讓你剛创设的大器晚成個檔案,讓大家都看见的話,即你需求『-rw-r--r--』,這是您的三個群組的分數分別是 r+w=6, r=4, r=4,所以能够下達:   

[root@tsai /root]# chmod 644 .bashrc 
[root@tsai /root]# ls -al .bashrc 
-rw-r--r--   1 root     root          216 Apr  8 13:54 .bashrc

style="font-size: xx-small;">chown

style="font-family: 小篆;">記得檔案有『擁有人』及『擁有群組』吧,這個 chown 就是在改變擁有者的一声令下。比如你 copy 大器晚成個檔案給 vbird ,可是因為你的身价是 root ,所以您 copy 過去的檔案 vbird 大概或不可能应用,因而你必要將檔案的擁有人改成 vbird 才得以!如下:   

[root@tsai /root]# cp .bashrc /home/vbird 
[root@tsai /root]# cd /home/vbird 
[root@tsai vbird]# chown vbird .bashrc

那假使想要將整個目錄下的檔案都改變擁有者與擁有群組呢?能够下達 
chown  -R  username:groupname  directory  (ex> chown -R root:root /root) 
即可喔!

style="font-size: xx-small;">chgrp

style="font-family: 宋体;">作用與 chown 相通,只是在改變檔案或目錄的『擁有群組』。

style="font-size: xx-small;">df

style="font-family: 金鼎文;">這是用來察看硬碟空間的通令。由於作者們近年来將檔案都成立在根目錄『/』下,所以借使沒有空間,則全数檔案都無法複製進來系統。不過,若您規劃出多的硬碟,則能够观测你的硬碟空間資訊,如下所示:   

[root@tsai /root]# df 
Filesystem     1k-blocks      Used Available Use% Mounted on 
/dev/hda5         964312     87648    827680  10% / 
/dev/hdb5        2150420    745500   1295680  37% /home 
/dev/hdb1        2016016   1419708    493896  74% /usr 
/dev/hda1        1022080    349880    672200  34% /win98

下边說,Filesystem 是硬碟所在的劃分表, Used 是支使用掉的硬碟空間(KB卡塔尔国,Available是多余空間,Mounted on則是這顆硬碟代表哪生机勃勃個目錄。如上所示,根目錄(/)在 hda5 這顆硬碟,總空間有 964312 KB,剩下可用空間為 827680KB,至於 /win98 則在 hda1 中,且不论什么事空間有 1022080 KB。

借使要將資料型態以 MB 數顯示的話,可以輸入 df -m 來達成。

style="font-size: xx-small;">du

style="font-family: 黑体;">這是用來察看目錄內全部檔案使用掉的空間的情況,如下所示:   

[root@tsai /root]# du -m

此中, du 預設的檔案輸出資料為 KB,以參數 -m 使檔案資料顯示為 MB。

  1. 今是昨非等級的使用者身份:FTP 預設的情況下能够提供三種主要的身价,分別是(1)實體帳號,real user;(2)訪客, guest;(3)无名登陆者, anonymous 這三種。分成三種身份首要能够做為主機的操纵下边包车型客车便利性,何况也得以將使用者作后生可畏個实用的田间管理吗!比如實體用戶可以進行的動作恐怕會比較多一些,至於佚名登录者,大约笔者們就僅提供他下載一下資源而已,並不許无名者使用太多主機的資源啊!當然,這三種人物能夠使用的『線上指令』自然也就不均等囉! ^_^

 

磁碟與硬體管理

  1. 命令記錄與登錄檔記錄:FTP 能够使用系統的 syslogd 這個 daemon 來進行資料的紀錄,而記錄的資料富含了使用者曾經下達過的一声令下與使用者傳輸資料(傳輸時間、檔案大小等等)的紀錄呢!

style="font-size: xx-small;">mount

style="font-family: 燕书;">這是將硬碟也许是光碟、軟碟接掛上系統的下令!早前有提過,在 Linux 上面,每后生可畏個裝置都以生机勃勃個檔案(或目錄卡塔尔,而每豆蔻梢头種裝置的檔案型態都不一致等,由此對於 mount 後面加的參數就很关键囉:比方:   

[root@tsai /root]# mount -t iso9660 /dev/cdrom /mnt/cdrom <=光碟 
[root@tsai /root]# mount -t vfat /dev/fd0 /mnt/floppy     <=軟碟(windows 系統檔) 
[root@tsai /root]# mount -t ext2 /dev/fd0 /mnt/floppy     <=軟碟(Linux 系統檔) 
[root@tsai /root]# mount -t ext2 /dev/hdc1 /mnt/harddisk  <=硬碟

光碟裝置檔=/dev/cdrom、軟碟裝置檔=/dev/fd0、硬碟裝置檔=/dev/hdxx。 
如上表所示, -t 是參數,至於 iso9660, vfat, ext2則是這些裝置的檔案型態!後面接的則是這個裝置所在的目錄!千萬記得,這些目錄需如若曾经存在的,何况极端是空的目錄,不然目錄裡面原来存在的檔案會不見去! 
除此以外,注意喔!當你 mount 上光碟機或軟碟的時候,請不要輕易的拿出磁片(并且光碟片也不會被你退出卡塔尔国,因為會形成系統讀取的錯誤!你應該用 umount 來退出!指令為 
umount  /mnt/cdrom  (umount  裝置所在目錄卡塔 尔(阿拉伯语:قطر‎

style="font-size: xx-small;">fdformat

style="font-family: 仿宋;">這是用來『低階格式化』軟碟的吩咐。(注意:軟碟的裝置檔為 /dev/fd0 卡塔尔不必將軟碟 mount 就足以格式化了,指令內容為:   

[root@tsai /root]# fdformat /dev/fd0H1440

留意喔!在地方的裝置檔案為 /dev/fd0H1440 ,个中加在 /fd0 之後的 H1440 為表示 1.44MB 的軟碟体量!在低階格式化之後,還要將軟碟的檔案格式化為 Linux 的 ext2 之型態,則必要接受 mke2fs 指令!

style="font-size: xx-small;">fdisk

style="font-family: 钟鼓文;">這是對硬碟(也足以對軟碟喔卡塔尔国做分割的程式。基本的用法為=> fdisk 裝置檔案,假設您有豆蔻梢头顆硬碟要重新規劃,而這顆硬碟為 hdc ,則你能够輸入:   

[root@tsai /root]# fdisk /dev/hdc

然後,按下 m 會出現 help 的選單,要清楚的大致唯有兩個子指令,意气风发個是刪除 partition 按 d ,风姿浪漫個是扩展 partition 按 n,假設你要加进黄金年代個 primary partition,按下 n 再按 p 再按你要的 primary partition 號碼(1-4卡塔尔就足以了。假設你的 hdc 须求規劃成為后生可畏個硬碟(即 hdc1卡塔尔国則在輸入 fdisk /dev/hdc 後,供给按: 
n(扩大卡塔尔国 -> p(primary partition卡塔 尔(阿拉伯语:قطر‎ -> 1(partition 1卡塔 尔(英语:State of Qatar) -> w (儲存寫入)-> q (離開卡塔尔 

style="font-family: 甲骨文;">同樣的,分割完硬碟(或軟碟卡塔 尔(阿拉伯语:قطر‎後,要以 mke2fs 格式化!

style="font-size: xx-small;">mke2fs

這是用來將磁碟格式化成 Linux 系統檔的指令。基本上,只要寫入對的裝置檔案就能够了。比如笔者們要格式化軟碟的話,或是新的硬碟 hdc1 ,則能够如此寫:   

[root@tsai /root]# mke2fs -c /dev/fd0 
[root@tsai /root]# mke2fs -c /dev/hdc1

要記得的是,在您做這個格式化的動作時,軟碟與硬碟均不可 mount 到 Linux 的系統中。

style="font-size: xx-small;">mkbootdisk

style="font-family: 钟鼓文;">這是製作開機磁片的一声令下。指令很簡單:   

[root@tsai /root]# mkbootdisk --device /dev/fd0 `uname -r`

其中, `uname -r` 是时下 Linux 系統所选用的中坚版本,要是您有多個核心版本的話,你以能够直接輸入核心版本。举个例子在這個網頁中所使用的着力有兩個版本,风流倜傥個是 2.2.12-20,另生机勃勃個是 2.2.18,若要以 2.2.18 設定開機的話,可以使用: mkbootdisk  --device  /dev/fd0  2.2.18 !

style="font-size: xx-small;">badblocks

style="font-family: 钟鼓文;">這是用來檢查硬碟或軟碟有沒有壞軌的下令,你能够用底下的艺术來下達:   

[root@tsai /root]# badblocks  -svw  /dev/hdc1

style="font-size: xx-small;">fsck

style="font-family: 燕体;">這是用來檢查與改过硬碟錯誤的授命。注意:平常独有身為 root 且你的系統有問題的時候才使用這個指令,否則在常规狀況下利用此一发令,大概會产生對檔案的危机!   

[root@tsai /root]#  fsck  /dev/hdc1

平时接收這個指令的場合都是在系統出現極大的問題,導致你在 Linux 開機的時候得進入單人單機格局下進行維護的行為時,才必須使用此一命令!

style="font-size: xx-small;">rpm

這是风姿洒脱個安裝大概是解安裝 RedHat 軟體的命令,在 RedHat 中已經有設定了部分有點像 Windows 的軟體安裝功效,這就是 rpm 這套軟體了!而 rpm 所安裝的軟體又分為兩種形式,因而你能够分別使用上边兩種參數對不一样的檔案進行安裝:   

[root@tsai /root]# rpm  -ivh  xxxxx.rpm  <==將 xxxxx.rpm 檔案安裝於 Linux 系統中 
[root@tsai /root]# rpm  -ivh  --nodeps xxxxx.rpm  <==將 xxxxx.rpm 檔案『強制』安裝於 Linux 系統中 
[root@tsai /root]# rpm  -Uvh  xxxxx.rpm  <==將 xxxxx.rpm 升級 
[root@tsai /root]# rpm  -e    xxxxx.rpm  <==將 xxxxx.rpm 解除安裝 
[root@tsai /root]# rpm  -q    squid  <==察看 squid 這一個軟體的版本 
[root@tsai /root]# rpm  --recompile  yyyyy.src.rpm  <==安裝檔名為 .src.rpm 的檔案!

這裡要专心的是, rpm 的檔案首要有兩種格局,豆蔻梢头種是已經經過編譯的 i386.rpm 檔案,令豆蔻梢头種是未經編譯的 .src.rpm 檔案,兩種檔案方式的安裝參數是不黄金时代樣的,請小心注意!

 


  1. 约束或免除使用者家目錄所在(change root, 簡稱 chroot):為了幸免使用者在您的 Linux 系統當中隨意逛大街,意指離開使用者家目錄而進入到 Linux 系統的别的目錄去,所以將使用者的做事範圍『侷限』在使用者的家目錄底下,嗯!實在是個不錯的好主意!FTP 能够界定使用者僅能在本身的家目錄當中活動喔!如此意气风发來,由於使用者無法離開自身的家目錄,何况登陆FTP 後,顯示的『根目錄』正是协和家目錄的內容,這種環境稱之為 change root ,簡稱 chroot ,改變根目錄的情趣啊!這有什麼好處呢?當风度翩翩個惡意的使用者以 FTP 登陆您的系統當中,假如沒有 chroot 的環境下,他得以到 /etc, /usr/local, /home 等别的重大目錄底下去察看檔案資料,尤其是很着重的 /etc/ 底下的設定檔,如 /etc/passwd 等等。這樣他就有辦法得到系統的有个别主要資訊,用來『侵袭』您的系統呢!所以在 chroot 的環境下,當然就比較安全一些咯!

系統管理員

 

style="font-size: xx-small;">su

這是风流洒脱個用來轉換你身份成為 super user (系統管理員卡塔 尔(阿拉伯语:قطر‎的一声令下,任何人风度翩翩旦精晓 root 的密碼,就足以成為 super user,所以密碼可千萬不要外流呀!由於 RedHat 在主機之外的終端機上,無法以 root 的身份一向連線,所以您须求以相仿地点的 user 連線之後,再以 su 指令來成為 super user:   

[vbird@tsai vbird]# su  <==輸入指令 
Password:       <==在這裡輸入 root 的密碼 
[root@tsai vibrd]#      <==看,使用者名稱變囉!

style="font-size: xx-small;">clear

style="font-family: 小篆;">這是用來扫除螢幕畫面用的,沒有什麼太大的用處。常常是你覺得畫面太亂的時候輸入用的!直接輸入 clear 就足以了!

style="font-size: xx-small;">dmesg

style="font-family: 钟鼓文;">在開機的時候你會發現有众多的訊息出現吧,举个例子CPU 的款型、硬碟、光碟型號及硬碟分割表等等。可是訊息都以『刷』的生机勃勃聲就跑過去了!這些訊息有時候對於系統管理員是很要紧的,因為他提供了系統的資訊呀!要看這些訊息你能够用 dmesg 這個指令來觀看!   

[root@tsai /root]# dmesg|more

加上 |more 的缘由是因為訊息太多了,所以可以步向這個管線指令來使畫面暫停!

style="font-size: xx-small;">groupadd

style="font-family: 草书;">這是用來扩大群組的吩咐,平时鳥哥都不要這個指令的,因為有更易于接纳的指令 /bin/userconf 可以接收呢(注意,在 RedHat 7.0 以後的版本,将在动用 /sbin/userconf 哩卡塔尔!

style="font-size: xx-small;">useradd

style="font-family: 行书;">這是用來增添使用者的命令,鳥哥日常不选择這個指令,你可以利用 /bin/userconf 這個指令,更簡單易用喔(是視窗介面包车型大巴喔!卡塔 尔(阿拉伯语:قطر‎(注意,在 RedHat 7.0 以後的本子,就要接受 /sbin/userconf 哩卡塔尔国

style="font-size: xx-small;">userconf

style="font-family: 燕体;">這是用來扩大使用者、群組等,且以視窗為介面包车型大巴少年老成個指令!假设您是以遠端登陆,並使用 su 指令成為 super user 的話,直接輸入 userconf 或者會找不到這個指令,你能够輸入: /bin/userconf 來啟動這個指令!(注意,在 RedHat 7.0 以後的版本,将在选用 /sbin/userconf 哩卡塔尔,由於這個指令的圖示較多,請到這裡來看看!

style="font-size: xx-small;">passwd

style="font-family: 燕书;">這是用來改进密碼的下令,很簡單,只要在提醒字元下輸入 passwd ,然後輸入近日的密碼,再輸入兩次欲修正成的新密碼,就改正OK了!不過要当心,密碼的花样:不可能與帳號雷同,且需求8 個字元以上,其余,帳號也不可能太簡單!否則系統會不接受!   

[vbird@tsai vbird]# passwd 
Changing password for vbird 
(current) UNIX password:      <==這裡輸入目前的密碼 
New UNIX password:     <==這裡輸入新的密碼 
Retype new UNIX password:     <==這裡再輸入新的密碼一次 
passwd: all authentication tokens updated successfully

style="font-size: xx-small;">who

style="font-family: 陶文;">這是用來視察近些日子在系統上的使用者指令,你也能够采用w 這個指令來下達動作。   

[root@tsai /root]# who 
root     pts/0    Aug  2 20:43

[root@tsai /root]# w 
  8:48pm  up 4 days,  5:08,  1 user,  load average: 0.00, 0.00, 0.00 
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU  WHAT 
root     pts/0    192.168.1.2       8:43pm  0.00s  0.38s   ?     -

基本上,who 與 w 的效应是均等的,只是 who 僅列出使用者名稱與登录時間,至於 w 則會列出使用者的

  • 來源位址(IP卡塔 尔(英语:State of Qatar):正是 FROM 那大器晚成項正是IP;
  • 登录時間:正是 LOGIN@ 那后生可畏項;
  • 干活項目:正是 WHAT 那黄金时代項!

style="font-size: xx-small;">whoami

style="font-family: 燕书;">這是用來確認你日前的身份的授命,由於你大概會有幾個身份在你的機器上,所以须要以這個指令來確認你之处,不過由於 Linux 會將使用者名稱寫在提示字元上,所以這個指令这段日子比較少用到了。

style="font-size: xx-small;">top

style="font-family: 草书;">這是用來提示近些日子系統的服務項目标動態資料。   

[root@tsai /root]# top 
 10:14pm  up 4 days,  6:34,  1 user,  load average: 0.01, 0.01, 0.00 
40 processes: 39 sleeping, 1 running, 0 zombie, 0 stopped 
CPU states:  0.5% user,  0.3% system,  0.0% nice, 99.0% idle 
Mem:   63124K av,  60844K used,   2280K free,  23604K shrd,  35648K buff 
Swap: 104380K av,   1684K used, 102696K free                 10788K cached

  PID USER     PRI  NI  SIZE  RSS SHARE STAT  LIB %CPU %MEM   TIME COMMAND 
 3121 root      20   0  1016 1016   820 R       0  0.9  1.6   0:47 top 
    1 root       0   0   380  368   320 S       0  0.0  0.5   0:04 init 
    2 root       0   0     0    0     0 SW      0  0.0  0.0   0:00 kflushd 
    3 root       0   0     0    0     0 SW      0  0.0  0.0   0:00 kupdate 
    4 root       0   0     0    0     0 SW      0  0.0  0.0   0:00 kpiod 
    5 root       0   0     0    0     0 SW      0  0.0  0.0   0:00 kswapd 
    6 root     -20 -20     0    0     0 SW<     0  0.0  0.0   0:00 mdrecoveryd 
  366 bin        0   0   308  288   228 S       0  0.0  0.4   0:00 portmap 
  382 root       0   0   392  376   328 S       0  0.0  0.5   0:00 apmd 
  435 root       0   0   488  480   388 S       0  0.0  0.7   0:00 syslogd 
  446 root       0   0   688  676   316 S       0  0.0  1.0   0:00 klogd

輸入 top 之後,會出現類似上边的顯示情況。上圖中說明了您的記憶體有63124K,而下方的面版說明了最近正在執行中的工作內容!

style="font-size: xx-small;">free

style="font-family: 小篆;">這是用來察看記憶體的通令。   

[root@tsai /root]# free 
             total       used       free     shared    buffers     cached 
Mem:         63124      60732       2392      23136      35648      10796 
-/+ buffers/cache:      14288      48836 
Swap:       104380       1684     102696

如上圖中,說明總記憶體容积為 63124K,而接纳了 60732K,此外,虛擬記憶體(Swap卡塔 尔(英语:State of Qatar)共有 104380K(亦即共有 100MB 的虛擬記憶體卡塔尔国。

style="font-size: xx-small;">quotacheck, edquota

這些檔案是用來约束使用者在 Linux 主機上的硬碟使用体积。举例,有十個人同時共享意气风发個 2G 的硬碟空間,然而有一個使用者就用了 1.5 GB 的容积,那相對的,别的人可选拔的空間就只有剩下 0.5G 啦!偏向一方對不對,并且也怕被使用者填充多量的窝囊的人,而接受系統資源被瓜分掉!因而就有 Quota 這個咚咚的出現啦!由於執行的步驟較為繁瑣,所以額外寫了黄金时代個頁面,請到這裡來看看。

 



壓縮指令

FTP 的運作流程與使用到的 port

style="font-size: xx-small;">compress

這是用來壓縮及解壓縮檔名為 .Z 的壓縮檔。要注意的是,用 compress 壓縮的時候,會將原檔案殺掉而變成檔名為 .Z 的檔案,举个例子你壓縮生机勃勃個名為 bird.test 的檔案,則壓縮实现後只會剩下 bird.test.Z 這個壓縮檔!當然,解壓縮的時候也是风流浪漫樣的,壓縮檔不見了,唯有剩下被解壓縮的檔案。指令如下:   

[root@tsai /root]# compress xxxxx        <==將 xxxxx 檔案壓縮成為 xxxxx.Z 檔名 
[root@tsai /root]# compress -d xxxxx.Z   <==將 xxxxx.Z 解壓縮成 xxxxx

上表中,解壓縮也可以用 uncompress xxxxx.Z 來達成!

style="font-size: xx-small;">gzip

這個也是大器晚成個壓縮指令,與 compress 很帅似,指令的用法也风度翩翩律!只是壓縮的檔名為 .gz 罷了!   

[root@tsai /root]# gzip  xxxxx         <==這是壓縮指令 
[root@tsai /root]# gzip  -d  xxxxx.gz  <==這是解壓縮指令

style="font-size: xx-small;">tar

style="font-family: 石籀文;">這是风流浪漫個很棒的壓縮指令,這個指令能够宽容gzip 來進行整個目錄的壓縮!比如有大器晚成個名為 bird 的目錄要被你整合成黄金时代個檔案,你能够接纳:tar  -xvf  *.tar  *(其中 * 為你所要整合的目錄名稱卡塔尔。   

[root@tsai /root]# tar  -cvf  bird.tar  bird  <==只有將目錄轉成一個檔案,沒有壓縮 
[root@tsai /root]# tar  -zcvf  bird.tar.gz  bird <==壓縮一整個目錄成為 .tar.gz 檔案

上边這個例子的 bird.tar 只是將 bird 這個目錄整個拷貝成為风度翩翩個檔案而已,並沒有壓縮,而 bird.tar.gz 則是將 bird 這個目錄壓縮成為生龙活虎個檔案!基本上,小编們都是应用 -zxvf 來壓縮一整個目錄的!而只假如要解壓縮呢?由於有沒有壓縮所下的參數並区别等,所以針對兩種檔案也可能有兩種參數的組合:   

[root@tsai /root]# tar  -xvf  bird.tar 
[root@tsai /root]# tar  -zxvf  bird.tar.gz

下面則是解壓縮的參數! 
只顾了,用 compress 及 gzip 壓縮及解壓縮的時候,會將原檔案代替掉!而使用 tar 來壓縮及解壓縮的時候,原檔案將會與產生檔案同時存在!经常小编們都以利用 tar 來進行壓縮或解壓縮的!(當然,你還是能够采纳 compress 及 gzip 來壓縮风流罗曼蒂克個大的檔案!卡塔尔

FTP 不奇怪情況下的連線方向:


網路基礎

局地網路效率

 

style="font-size: xx-small;">ifconfig

style="font-family: 草书;">這是用來查詢近来小编們這個系統的網路卡的狀況的命令,能够查詢 IP、子遮罩網路及網路卡的硬體資訊等等。举例:   

[root@tsai /root]# ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:50:FC:20:F1:4D 
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
          RX packets:7651977 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:7467862 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:961 txqueuelen:100 
          Interrupt:10 Base address:0x6100

eth1      Link encap:Ethernet  HWaddr 00:80:C8:5A:87:01 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
          RX packets:7492497 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:7617653 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:289 txqueuelen:100 
          Interrupt:9 Base address:0x6200

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0 
          UP LOOPBACK RUNNING  MTU:3924  Metric:1 
          RX packets:512 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:512 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:0

ppp0      Link encap:Point-to-Point Protocol 
          inet addr:211.74.249.38  P-t-P:172.16.11.8  Mask:255.255.255.255 
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1 
          RX packets:7469726 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:7617651 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:10

由於上边的例证是接收兩張網路卡,因而會有 eth0 及 eth1 兩個介面,至於 lo 是系統內設的遞迴網路,這是千真万确會有的咚咚,何况其 inet addr(IP卡塔 尔(阿拉伯语:قطر‎一定是 127.0.0.1!别的, ppp0 則是 ADSL 撥接之後所產生的虛擬介面(對外的介面!卡塔 尔(英语:State of Qatar)。在這個例子中,鳥哥使用了兩張網路卡, eth0 用在內部網路, eth1 用在 ADSL 撥接,所以 eth1 就沒有 address。至於第生龙活虎張網路卡的網路位址是虛擬的 192.168.1.2。而真的的對外聯繫是 ppp0 這大器晚成個撥接介面,其 internet 是 211.74.249.38!

style="font-size: xx-small;">route

style="font-family: 大篆;">這是用來看您的網路通訊包傳送的路由情況的一声令下。由於通讯包是藉由风姿浪漫個豆蔻梢头個的路由表來傳遞的,所以觀察你的路由表,對於網路除錯(debuge卡塔尔就相当的重要呀!   

[root@tsai /root]# route 
Kernel IP routing table 
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
192.168.1.2     *               255.255.255.255 UH    0      0        0 eth0 
172.16.11.8     *               255.255.255.255 UH    0      0        0 ppp0 
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0 
127.0.0.0       *               255.0.0.0       U     0      0        0 lo 
default         172.16.11.8     0.0.0.0         UG    0      0        0 ppp0

举例上表中,全体的通訊都以藉由 ppp0 這大器晚成個介面卡(Iface卡塔 尔(阿拉伯语:قطر‎何况其通訊閘(Gateway卡塔 尔(阿拉伯语:قطر‎為 172.16.11.8 這意气风发個!其余,在虛擬 IP (內部網路卡塔尔国則是藉由 eth0 (192.168.1.2卡塔尔這大器晚成塊網卡來連線的!

除此以外,你也足以应用 route 來参与你的路由表,如果你要將黄金时代個網路為 192.56.76.XXX 且子網路為 255.255.255.0 的任务参与你的 eth0 這個網路卡的連線處理中,就能够运用如下的語法:   

[root@tsai /root]# route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0

style="font-size: xx-small;">netstat

style="font-family: 黑体;">這也是用來觀察網路狀況的指令。   

[root@tsai /root]# netstat 
Active Internet connections (w/o servers) 
Proto Recv-Q Send-Q Local Address           Foreign Address         State 
tcp        0    126 swks249-38.adsl.:telnet 192.168.1.15:1341     ESTABLISHED 
Active UNIX domain sockets (w/o servers) 
Proto RefCnt Flags       Type       State         I-Node Path 
unix  2      [ ]         DGRAM                    87643  /dev/log 
unix  0      [ ]         STREAM     CONNECTED     116    @00000012

在上表黃色的片段,由於鳥哥是在另一部電腦連線進入的,所以網路位址就會分化囉!

style="font-size: xx-small;">hostname

style="font-family: 草书;">這只是用來觀看你的主機名稱而已。   

[root@tsai /root]# hostname 
tsai.adsldns.org

style="font-size: xx-small;">ping

style="font-family: 草书;">這是用來察看對方網路是还是不是有動作的命令,這個指令亦可以在 windows 上边執行!   

[root@tsai /root]# ping www.kimo.com.tw 
PING www.kimo.com.tw (202.1.237.21) from 211.74.249.38 : 56(84) bytes of data. 
64 bytes from 202.1.237.21: icmp_seq=0 ttl=245 time=56.7 ms 
64 bytes from 202.1.237.21: icmp_seq=1 ttl=245 time=58.0 ms 
64 bytes from 202.1.237.21: icmp_seq=2 ttl=245 time=58.7 ms 
64 bytes from 202.1.237.21: icmp_seq=3 ttl=245 time=52.0 ms 
64 bytes from 202.1.237.21: icmp_seq=4 ttl=245 time=72.2 ms 
--- www.kimo.com.tw ping statistics --- 
5 packets transmitted, 5 packets received, 0% packet loss 
round-trip min/avg/max = 52.0/59.5/72.2 ms

比如上表中,作者們去觀察 www.kimo.com.tw 是还是不是有啟動,看每一列的最後生龙活虎行,會告訴你訊息回應的時間大約是 56ms!(10-3 sec.)

style="font-size: xx-small;">nslookup

這是用來查詢或反查詢 DNS 的吩咐!比如作者們要驾驭 奇摩 的網路位址,則能够如此查詢:   

[root@tsai /root]# nslookup www.kimo.com.tw 
Server:  ksdns.seed.net.tw 
Address:  139.175.10.20

Non-authoritative answer: 
Name:    www.kimo.com.tw 
Address:  202.1.237.21

系統會告訴你,笔者們使用的 DNS server 是 ksdns.seed.net.tw,而查詢到的網址是 202.1.237.21。假诺必要更詳細的查詢,能够用上面包车型客车办法來查!   

[root@tsai /root]# nslookup 
Default Server:  ksdns.seed.net.tw 
Address:  139.175.10.20

> set type=any            <==告訴系統我們要詳細的資料! 
> www.kimo.com.tw 
Server:  ksdns.seed.net.tw 
Address:  139.175.10.20

Non-authoritative answer: 
www.kimo.com.tw internet address = 202.1.237.21

Authoritative answers can be found from: 
kimo.com.tw     nameserver = ns1.kimo.com.tw 
kimo.com.tw     nameserver = ns1.yahoo.com 
kimo.com.tw     nameserver = ns3.europe.yahoo.com 
kimo.com.tw     nameserver = ns5.dcx.yahoo.com 
ns1.kimo.com.tw internet address = 210.59.144.1 
ns1.yahoo.com   internet address = 204.71.200.33 
ns3.europe.yahoo.com    internet address = 217.12.4.71 
ns5.dcx.yahoo.com       internet address = 216.32.74.10

style="font-size: xx-small;">talk

這是用來交談的指令。

style="font-size: xx-small;">traceroute

style="font-family: 钟鼓文;">這是用來追查通訊包傳送的情況,举例我們要從 seednet 的網路上查詢到成大的代理伺性格很顽强在艰难曲折或巨大压力面前不屈器的通訊狀況,能够利用如下的命令:   

[root@tsai /root]# /usr/sbin/traceroute proxy.ncku.edu.tw 
traceroute to proxy.ncku.edu.tw (163.28.112.100), 30 hops max, 38 byte packets 
 1  172.16.11.8 (172.16.11.8)  128.378 ms  68.920 ms  118.313 ms 
 2  139.175.15.1 (139.175.15.1)  54.146 ms  38.557 ms  44.320 ms 
 3  R58-37.seed.net.tw (139.175.58.37)  61.339 ms  43.177 ms  39.548 ms 
 4  R56-162.seed.net.tw (139.175.56.162)  66.631 ms  43.182 ms  41.429 ms 
 5  203.72.191.222 (203.72.191.222)  65.538 ms  61.379 ms  38.887 ms 
 6  140.116.241.230 (140.116.241.230)  40.159 ms  46.107 ms  46.854 ms 
 7  proxy.tnrc.edu.tw (163.28.112.100)  38.641 ms  57.286 ms  46.380 ms

系統會告訴你,總共通過了7個路由,並列出了每大器晚成個路由的 Internet 位址。這個東西有個好處,能够告訴你,當網路出問題時,問題是在哪风流倜傥個地点!

style="font-size: xx-small;">mail

style="font-family: 金鼎文;">這是用來收發信件的一声令下,詳細的流水生产线作者們會在 mail 架站中聊到。

  1. Client 端主動向 Server 端發送連線须要:由於是用戶端想要連上 FTP 主機,所以啊,當然連線的样子首先會由 Client 發起!此時,Client 端隨機選取豆蔻年华個大於 1024 以上的 port 來主動的連線到 FTP 主機提供的 FTP 埠口(平时為port 21),而由於是主動的連線封包,所以這個連線會帶有 SYN 的標誌在;

 

任何部分沒的

  1. Server 端采纳後,回應給 Client 端:當 Server 选拔到 Client 的渴求之後,會回應 Client 端的供给,此時 Server 端會创设等待連線的資源,并且將风姿潇洒帶有 SYN 與確認 (ACK) 的封包送回 Client 端;

style="font-size: xx-small;">date

這是用來察看日期的指令。   

[root@tsai /root]# date 
Fri Aug  3 19:09:31 CST 2001

style="font-size: xx-small;">cal

這是用來叫出日曆的吩咐。   

[root@tsai /root]# cal 
     August 2001 
Su Mo Tu We Th Fr Sa 
          1  2  3  4 
 5  6  7  8  9 10 11 
12 13 14 15 16 17 18 
19 20 21 22 23 24 25 
26 27 28 29 30 31

style="font-size: xx-small;">grep

style="font-family: 钟鼓文;">這是用來搜尋有些特定字元的通令。举个例子使用 ps -aux 查詢系統服務時,作者們只供给知道 sendmail 是不是有動作,則能够使用管線指令『|』來插手 grep 這個指令同時運作。   

[root@tsai /root]# ps -aux|grep sendmail 
root       443  0.0  1.0  2092  660 ?        S    Jul26   0:36 sendmail: accepti 
vbird     8387  0.0  0.7  1240  492 pts/1    S    19:11   0:00 grep sendmail

上表則表示 sendmail 有在運作了!

 


  1. Client 端回應確認封包:在 Client 端选择到來自 Server 端告知的封包後,會再次的發送意气风发個確認封包給主機,此時,兩邊才會正式的树立起連線的前程似锦,這個步驟 1 ~ 3 就是 Three-Way Handshake(三向交握的哇!)。必要小心的是,這個已經创立連線的坦途(经常是 port 21)僅能進行 FTP 的『指令』而已,如果該指令涉及到資料的傳送(data transfer)時,举个例子上傳或下載等等,那麼就要求額外创立意气风发條資料傳輸的大道才行 ( ftp-data )!而資料傳輸的通道建构則必要繼續底下的步驟;

ftp 指令

 

style="font-size: xx-small;">ftp

FTP 這個功效不用再多談了呢?這是用來捉取網路上免費檔案的生机勃勃套軟體。举个例子笔者們要連上武大的 FTP 站捉東西,能够如下:   

[root@tsai /root]#  ftp linux.cis.nctu.edu.tw 
Connected to linux.cis.nctu.edu.tw. 
220 ProFTPD 1.2.0rc3 Server (Linux.CIS FTP server) [linux.cis.nctu.edu.tw] 
Name (linux.cis.nctu.edu.tw:vbird): anonymous <==輸入 anonymous 匿名登入 
331 Anonymous login ok, send your complete email address as your password. 
Password:         <==輸入 name@server.xxx.xxx 型態的 mail-address 密碼 
230 Anonymous access granted, restrictions apply. 
Remote system type is UNIX. 
Using binary mode to transfer files. 
ftp> dir   <==檢查網站上的目錄 
200 PORT command successful. 
150 Opening ASCII mode data connection for file list. 
-rw-rw-rw-   1 linux    adm      39491400 Aug  3 21:00 00ls-lR 
-rw-rw-rw-   1 linux    adm       3091546 Aug  3 21:01 00ls-lR.gz 
-rw-r--r--   1 linux    wheel         232 Mar 15 22:00 00mirror.today 
drwxr-xr-x   5 linux    wheel        4096 Oct 29  2000 java 
drwxr-xr-x  14 linux    wheel        4096 Aug  2 19:31 kernel 
drwxr-xr-x   4 linux    wheel        4096 Sep 28  2000 mirrors 
226-Transfer complete. 
226 Quotas off 
ftp> cd kernel/v2.4 <==進入 kernel 底下的 v2.4 目錄 
250 CWD command successful. 
ftp> get linux-2.4.0.tar.bz2.sign <==捉下 linux-2.4.0.tar.bz.2.sign 這個檔 
local: linux-2.4.0.tar.bz2.sign remote: linux-2.4.0.tar.bz2.sign 
200 PORT command successful. 
150 Opening BINARY mode data connection for linux-2.4.0.tar.bz2.sign (248 bytes) 

226 Transfer complete. 
248 bytes received in 0.014 secs (17 Kbytes/sec)

style="font-size: xx-small;">ncftp

在接受 FTP 功用的時候,因為只好贰遍捉生机勃勃個檔案,所以要捉一堆檔案的時候就會有困擾。這時作者們能够动用更易于登陆佚名FTP 站的 ncftp 來執行 FTP 功用!   

[root@tsai /root]# ncftp linux.cis.nctu.edu.tw 
ncftp / > mget  -R  kernel  <==將 kernel 這個目錄的東西全捉下來!

加上了 mget -PAJERO目錄 這個指令後,就足以將目錄下的東西完全捉下來!好用吗!

style="font-size: xx-small;">gftp

這是在 X-Windows 使用的圖形介面 FTP 咚咚!這個咚咚的使用办法就跟 CutFTP 很相似!

  1. Client 端發送資料傳輸要求的吩咐給 Server:當须要進行資料的傳輸時,Client 端會啟用另大器晚成個高於 1024 的埠口來做為連線的準備(這個高於 1024 的埠口與步驟 1 那個埠口不是同大器晚成個!),何况 Client 端會主動的施用剛剛已經营造的通令通道(平时是 port 21)發送风流洒脱個下令告訴 Server 說:『作者已經準備好风姿洒脱個資料傳輸的埠口了,請準備進行傳輸吧』!特別留意喔,這個時候 Client 是透過『命令通道』來對 Server 下達命令的,并且已經通告 Server 小编(client)要啟用的埠口了喔!

 

相關程式設定指令

  1. Server 端以 ftp-data 埠口主動連線到 Client :收到命令之後的 Server 會『主動』的以 ftp-data 埠口(平时為 port 20)向 Client 端公告的那個高於 1024 的埠口進行連線,特別须要介怀的是,此時是『Server 端主動向 Client 端的連線』喔,所以該連線的 TCP 封包會帶有后生可畏個 SYN 的標誌在;

style="font-size: xx-small;">set

style="font-family: 大篆;">這是用來設定或是觀看近些日子系統的設定的吩咐,若只打入 set 則僅會列出脚下系統的參數。

style="font-size: xx-small;">uname

style="font-family: 大篆;">這是用來觀看系統名稱的授命,能够打入 -a 參數來列出富有資訊。   

[root@tsai /root]# uname -a 
Linux vbird.adsldns.org 2.2.12-20 #1 Mon Sep 27 10:25:54 EDT 1999 i586 unknown

style="font-size: xx-small;">setup

style="font-family: 钟鼓文;">這個是临时使用來設定系統的风华正茂個下令,執行之後會有大器晚成個視窗出現,較常利用的是 System services 這大器晚成項,可用來設定開機的時候要開放的服務!

style="font-size: xx-small;">lilo

style="font-family: 黑体;">這是用來設定多重開機,或是開機選項的通令,詳細的流程請到這裡來看看!

style="font-size: xx-small;">Xconfigurator

這是用來簡易的設定 X-Windows 的命令,當你的 X-Windows 確定是可以跑的,而你想要改變一些設定,例如:拆解深入分析度、色彩度等等,就间接使用這個指令啦!

style="font-size: xx-small;">xf86config

這是用來設定 X-Windows 的命令!這個指令會比 Xconfigurator 麻煩,不過當你的 X-Windows 沒有辦法跑的時候,這個咚咚是很好用的!

 


  1. Client 端回應主機端,並繼續实现三向交握:在抽出 Server 來的封包之後, Client 會回應大器晚成個帶有 ACK 確認的封包,並繼續來达成另风流罗曼蒂克個三向交握的次第,此時,資料傳輸的坦途才正式的构建。

X-Window內的設定指令

 

style="font-size: xx-small;">startx

這是開始執行 X-Windows 的命令!

style="font-size: xx-small;">netconf

這是網路設定的通令!

style="font-size: xx-small;">netcfg

這也是網路設定的一声令下!

style="font-size: xx-small;">XF86Setup

這是在 X-Windows 下以圖形介面設定 深入解析度、色彩度 的設定指令。

 


 

本章問題討論:

运用到的 port:

  1. style="font-size: small;">Q:在 Linux 上边都是一些線上的阿尔巴尼亚语說明,有沒有中文說明,或更詳細的說明資料呢?

    style="font-size: small;">A:

    其實在網路寒食經有意气风小票高手在進行 Linux how to 的翻譯职业,這是风华正茂個很有意義的事务,因為能够讓生手可能是某个有亟待利用 Linux 的人,有风流浪漫個很好的學習文件。你能够來上面包车型地铁網址看看:

    style="font-family: 宋体;">中文How-to:

    style="font-family: 宋体;">英文How-to:

  2. style="font-size: small;">Q:在 Linux 中如何步入新硬碟?

    style="font-size: small;">A:

    style="font-family: 小篆;">其實参预新硬碟的方法也是很簡單的:

安裝硬碟:關掉 Linux 主機電源,調整 Hard Disk 的 Jump (master 或 slave卡塔 尔(阿拉伯语:قطر‎,串接在 IDE 的介面,請注意,留意你扩张的硬碟所串接的 IDE 介面為哪风流倜傥個插槽,举个例子你插在 IDE2 的 Master ,則你的硬碟應為 hdc;

新扩张硬體於BIOS:開啟電腦後,按 del 鍵進入 BIOS,選擇 IDE Hard Disk Detector 字樣的選項,讓BIOS去捉硬碟,然後再選擇 Save and Exit;

Linux 安裝:開機進入 Linux 的時候,系統會告訴你有捉到生龙活虎個新的硬體,你能够按 『configure』 由系統直接安裝即可;

格式化硬碟:以 root 的身价進入 Linux 後,執行以下兩個程式:

  • style="font-family: 宋体;">fdisk  /dev/hdc  <== hdc 與你的硬碟串接的IDE介面有關,關於這個指令的介紹請參考上边的下令說明;
  • style="font-family: 宋体;">mke2fs  -c  /dev/hdc1  <==假設硬碟全体布局成生机勃勃個大硬碟,則硬碟應為 hdc1 ,以 mke2fs 將系統規劃為 Linux 的系統檔。

開機自動載入:再來則是以 vi 修正/etc/fstab 檔案,讓每趟開機把這個硬碟直接掛入系統中。比如 hdc1 這顆硬碟掛在 /mnt/hdc1 中,則 fstab 的檔案有點像這樣:(/dev/hdc1 那豆蔻年华行是新加盟的!卡塔 尔(英语:State of Qatar)

/dev/hda1               /                       ext2    defaults        1 1 
/dev/hda5               swap                    swap    defaults        0 0 
/dev/hdc1               /mnt/hdc1               ext2    defaults        1 1
  • style="font-family: 草书;">安裝实现:然後再重复開機就能够啊!

    style="font-size: small;">Q:在 Linux 中什么充实新使用者呢?

    style="font-size: small;">A:

    style="font-family: 小篆;">無論是到场新使用者或然是步向新群組,都能够利用 /bin/userconf 這個程式來完结,使用這個程式,只要輸入 ID 及 pass word 就足以啦!(不過你必須是 root 的地位工夫够執行!卡塔尔詳細的執行請看下边包车型大巴一声令下說明。

  1. style="font-size: small;">Q:在 Linux 中如何製作開機片?

    style="font-size: small;">A:

    style="font-family: 陶文;">無論何種系統,有個開機片總是比較安心的! Linux 也是豆蔻梢头樣!雖然他很穩定,不过並不是說就不會有問題,由此製作可開機磁片以利解救 Linux 問題是风流倜傥個好習慣!製作開機片的艺术很簡單,只要下達:

  • style="font-family: 宋体;">mkbootdisk --device /dev/fd0 `uname -r`

就足以啦!

 

(1)命令通道的 ftp (預設為 port 21 ) 與
(2)資料傳輸的 ftp-data (預設為port 20)

 

 

NAT

 

在 NAT 也许防火牆後端的 FTP Client 連線問題:

美高梅163888 1

  1. 由於这两天的 NAT 主機能够記錄由內部電腦連線出去的資訊,因而,藉由 port 21 的連線能够順利的被确立起來;
  2. 當 Client 端由 port 21 下達資料傳輸的授命時,此時『個人PC』會告訴 FTP Server 說:『笔者開了风流倜傥個 >1024 的埠口等你來連線喔』!
  3. 這個時候要特別介意的是,『個人PC』經過NAT主機連線後,在 FTP Server 看见的『個人PC』的 IP 其實是 NAT 那部主機的!所以,這個時候 FTP Server 會主動的由 port 20 向 NAT 主機的 >1024 那個 port 必要制造連線!(請翻閱NAT主機一章)

 

 

 

 

 

  1. 使用 Linux NAT 主機的 iptables 預設模組,亦即 ip_conntrack_ftp 與 ip_nat_ftp 這兩個宗旨模組!應用 modprobe 這個指令就足以將這兩個模組載入了!笔者們剛剛說過,既然 iptables (NAT 主機)可以記錄 client 端向外連線的資訊,而 client 端向 server 端须要資料傳輸時,會主動告知 Server 作者(client) 要等您來連線的 port ,因而,這兩個聰明的模組可以透過檢查 NAT 主機內的資訊而加以應用,那就足以讓 Server 與 Client 端创立 ftp-data 的連線啦!不過,這兩個模組並不是萬能的,因為這兩個模組如今僅能針對預設的 ftp-data(port 20) 進行檢驗的行事,萬生龙活虎你連線的是风流洒脱個利用非 port 20 為 ftp-data 傳輸的主機時,那這兩個模組就沒有辦法發揮其效果了!

 

  1. 另豆蔻梢头個办法正是使用被動式連線 (passive)!什麼是被動式連線呢?想风姿罗曼蒂克想,既然『主機主動』連線到自己的 NAT 後面包车型大巴 client 不能够成功,那麼作者反其道而行,若是以 client 來連到 server 呢?是还是不是就變成就像 port 21 相像的連線方向,如此意气风发來不就能够成功的创设連線了嗎?呵呵!沒錯,而且也无需啟動上面兩個模組了,况兼也不擔心 FTP Server 是还是不是啟用非 port 20 的 ftp-data port 啦!這部份笔者們底下說明喔。

 

 


什麼是『被動, passive』的連線

 

 

  1. Client 端主動向 Server 端發送連線须求:

 

  1. Server 端接受後,回應給 Client 端:

 

  1. Client 端回應確認封包:上面這三個步驟與主動式連線生机勃勃樣,同樣的产生三向交握後,组建命令通道了!底下說明被動式資料傳輸通道的创建。

 

  1. Client 端發送資料傳輸供给的吩咐給 Server:與主動式連線不豆蔻梢头樣的是,在被動式連線時,Client 端在下達命令之後,並告訴 FTP Server 說『小编要选取 PASV 情势(正是 passive 啦!)的主意來進行資料傳輸』;

 

  1. Server 端挑選 > 1024 的埠口等待連線:在选取 client 的 PASV 必要之後,假如沒有特別的設定時 (最近的 FTP 伺性格很顽强在大起大落或巨大压力面前不屈器版本已經能够钦点passive port 來規定被動式連接的埠口號碼 ) ,Server 會隨機選取意气风发個大於 1024 的埠口,並經由命令通道告訴 client 端說:『笔者已經開了生龙活虎個 ftp-data 的埠口等妳連線喔!』並開始等待 client 端的連線;

 

  1. Client 端主動向 Server 端创立連線並繼續实现三向交握:經由命令通道搜查缉获 Server 的埠口之後, Client 端會隨機挑選另后生可畏個大於 1024 的埠口,並主動向 Server 端的等待連線的埠口進行連線動作,所以此連線封包是帶有 SYN 的標誌的喔!然後 Server 會回應意气风发個帶有 ACK 確認的封包,並繼續來完结另黄金时代個三向交握的程序,此時,資料傳輸的坦途就标准的确立。

 

 

 

 

 

 


FTP 的安全性問題與取代方案

 

Telnet

SSH

 

  1. 隨時更新到新型版本的 FTP 軟體,並隨時注意漏洞訊息;
  2. 专长 iptables 來規定能够应用 FTP 的網域;
  3. 善用 TCP_Wrappers 來規範能够登陆的網域;
  4. 擅长 FTP 軟體的設定來限定使用你 FTP 主機的使用者的例外權限啊;
  5. 应用 Super daemon 來進階管理您的 FTP 主機;
  6. 隨時注意使用者的家目錄、以至佚名使用者登录的目錄的『檔案權限』;
  7. 若不對曾外祖父開的話,或許也得以改正 FTP 的 port 。

 

 

 

 


什麼時候才要設定 FTP 啊!開放誰人連進來

 

 

開放的用戶身份與可能造成的危害 建議事項
實體用戶(Real user)
  • 在預設的條件下,開放 FTP 本來就提供了實體用戶登入之用。
  • 不過,需要瞭解的是,以實體用戶做為 FTP 登入者身份時,基本上,系統並沒有針對實體用戶來進行『限制』的,所以他可以針對整個檔案系統進行任何的工作。因此,如果您的 FTP 使用者沒能好好的保護自己的密碼,導致被入侵,那麼你的整個 Linux 系統將很有可能被毀滅啊!
  • 由於實體用戶本來就可以透過網路連接到主機來進行工作,因此實在沒有特別的需要開放 FTP 的服務啊!例如 sftp 本來就能達到傳輸檔案的功能囉!
  • 如果確定要讓實體用戶使用者利用 FTP 伺服器的話,那麼您就需要避免讓幾個系統用的帳號可以登入!這個時候可以將『不想讓他登入』的帳號寫入 /etc/ftpusrs 這個檔案當中啊!例如 root 就是個很好的例子!
訪客(Guest)
  • 通常會建立 guest 身份的案例當中,多半是由於主機提供了類似『個人 Web 首頁』的功能給一般身份使用者,那麼這些使用者總是需要管理自己的網頁空間吧?這個時候將使用者的身份壓縮成為 guest ,並且將他的可用目錄設定好,即可提供使用者一個方便的使用環境了!且不需要提供他 real user 的權限喔!
  • 僅提供需要登入的帳號即可,不需要提供系統上面所有人均可登入的環境啊!
  • 當然,我們在主機的設定當中,需要針對不同的訪客給他們不一樣的『家目錄』,而這個家目錄與使用者的權限設定需要相符合喔!例如要提供 test 這個人管理他的網頁空間,而他的網頁空間放置在 /home/test/www 底下,那我就將 test 在 FTP 提供的目錄僅有 /home/test/www 而已,比較安全啦!而且也方便使用者啊!
  • 針對這樣的身份者,需要設定較多的限制,包括:上下傳檔案數目與硬碟容量的限制、連線登入的時間限制、許可使用的指令要減少很多很多,例如 chmod 就不要允許他使用等等!
匿名者(anonymoust)
  • 提供匿名登入實在不是個好主意~因為畢竟你的系統為何要讓別人登入利用呢?
  • 不過,如果是提供整個學校單位來利用的話,那就另當別論了!
  • 無論如何,提供匿名登入都是一件相當危險的事情,因為,只要您一不小心,將重要的資料放置到匿名者可以讀取的目錄中時,那麼就很有可能會洩密!與其戰戰兢兢,不如就不要設定啊~
  • 果真要開放匿名登入時,很多限制都要進行的,這包括:(1)允許的工作指令要減低很多,幾乎就不許匿名者使用指令啦、(2)限制檔案傳輸的數量,盡量不要允許『上傳』資料的設定、(3)限制匿名者同時登入的最大連線數量,可以控制盜連喔!

套件安裝:

事實上,使用 Wu ftp 來架設你的 FTP 伺服器時,還是以 RPM 的点子來安裝比較好啊!此外,假设你的 Linux distribution 提供任何版本的 FTP 伺服器,呵呵!那麼就绝不采纳 wu ftp 也沒有關係啊!這是因為 wu ftp 實在是太古年龄大了,所以广大的駭客軟體都是針對他來設計的,也因為如此啊,所以才會產生『Wu FTP 伺性格很顽强在荆棘载途或巨大压力面前不屈器比較不安全』的情況啊!好了,底下笔者們以 Red Hat 7.x 的版本來進行說明吧。基本上,一個 FTP 伺性格很顽强在荆棘塞途或巨大压力面前不屈器包蕴 Server 與 Client 用项的套件最少要有:  

[root@test root]# rpm -qa | grep ftp
ncftp-3.0.3-6
ftp-0.17-12
wu-ftpd-2.6.1-20

 
其中:

  • wu-ftpd :這正是第少年老成的 FTP 伺性格很顽强在艰难险阻或巨大压力面前不屈器套件啦!
  • ftp :提供 ftp 指令,就是 client 端的工具啦!
  • ncftp :提供无名氏登陆的 FTP 網站的 client 端相當棒的另风度翩翩套連線 FTP 軟體!

若果沒有安裝,請馬上安裝吧!要是不曉得怎麼安裝,那麼請拿出『鳥哥的 Linux 私人商品房菜 -- 基礎學習篇』好好的將 mount CD 的一声令下、搜尋的下令,甚至 RPM 的指令瞧大器晚成瞧先!


Server 端設定:

 

 


Wu FTP 的結構

 

 

設定檔

: Wu FTP 的設定檔主要有上边這幾個:

  • /etc/ftpaccess:這是最根本的設定檔了!全部跟 Wu FTP 有關的設定內容,都得以在這個檔案做修訂;
  • /etc/pam.d/ftp, 與 /etc/ftpusers:這兩個檔案與 PAM 模組關係較大!在預設的情況中,只要在 /etc/ftpusers 這個檔案內的使用者『都无法应用 FTP 的性格很顽强在艰难困苦或巨大压力面前不屈務』
  • /etc/ftphosts:用來允許或拒絕(allow/deny)某部主機只怕某位使用者是还是不是能夠登陆FTP 主機的設定檔案,基本上,這檔案裡面包车型大巴設定也得以直接在 /etc/ftpaccess 當中設定喔!
  • /etc/xinetd.d/wu-ftpd:這個是用來啟動 FTP 的 daemon 設定檔案~當然啦,首假若掛在 xinetd 這個 daemon 下的,如若是掛在 inetd 這個 daemon 時,就有望是 /etc/inet.d 底下的檔案囉!

 

執行檔

:除了上边提到的這些設定檔之外,還有一点点執行檔也要求瞭解一下:

  • ftpcount :首要用來計算『方今連線的人數』,能够計算出各種身份的連線人數啊!
  • ftpwho:能够顯示出『近些日子連線的使用者是那個 User ?使用那個 PID?動作多长期了?』等等的資訊呢!
  • ftprestart:重新啟動 ftp 啊!
  • ftpshut:钦定時候關閉 FTP 的意气风发個指令喔!
  • in.ftpd:這個正是生死攸关的 Wu FTP 的 daemon 囉!我們啟動的 wu ftp 便是她的工作吧!

 

用戶端的运用執行檔

:這個部分的指令並不是 wu ftp 所提供的,但是粉首要,所以先提议說明喔!

  • ftp:就是最陽春的 client 端軟體囉!
  • ncftp:可以动用在佚名 FTP 網站喔!相當棒的軟體!能够援助整個目錄的下載呢!

 

 

 

 


最簡單的 ftpaccess 設定檔

 

 

[root@test root]# vi /etc/ftpaccess
# 1. 設定人物群組名稱
#   設定這個 FTP 伺服器的人物身份設定,使用 class 來設定的!他的語法是:
#   class <人物群組名稱> <用戶身份1,用戶身份2,..> <允許連線的來源>
 
class   all   real,guest,anonymous  *
 
# 上面的意思是說,我設定一個類別群組為 all ,這個 all  裡面就包含了
# 三種身份的使用者,就是 FTP 預設的 real, guest 與 anonymous 這三個,
# 需要注意的是,這三個類別的使用者之間是以逗號『,』隔開的,並沒有空白字元
# 而這個 class 允許的來源來自任何地方『*』。
# 這個 class 可以多重設定,並且,萬一重複設定時,以第一個出現的 class 類別
# 為準!舉個例子,假如我的 FTP 裡面的 real 僅允許學術網路登入,至於其他
# 的 guest 與 anonymous 則雖然可以由任何地方登入,但是不可以由 chinait.com
# 這個網域以及 61.141.0.0/16 這個網域登入時,那我可以這樣設定兩個 class 喔:
# class allone real,guest,anonymous *.edu.tw
# class alltwo guest,anonymous  !*.chinait.com !61.141.0.0/16 *
# 請注意到,驚嘆號『!』有代表『否,不允許』的意思存在,而星號『*』則代表
# 任何地方的意思,則如上面所設定時,如此一來,學術單位可以連到我的 FTP ,
# 至於 guest 與 anonymous 則可以任何地方連進,當然,除了上面的兩個網域之外
# 所以說,經由這個 class 的設定,就可以輕易的將三種身份是否可以登入主機的
# 狀態搞定了! ^_^
 
# 2. 設定系統的 FTP 管理員的 e-mail 信箱位址,與主機名稱!
#   單純的就是顯示出系統當中 FTP 伺服器管理員的網址啦!預設的設定如下:
 
email root@localhost
hostname vbird.adsldns.org
 
# 一般來說,我會將這個 e-mail 後面的位址寫上可以被使用者發信的信箱,例如:
# email testing@test.adsldns.org
# 這樣的格式!這個 email 可能會出現在進出網站時的歡迎畫面當中!
# 最大的任務是:當使用者發現問題的時候,可以跟系統的管理員聯絡啊!
# 所以當然要寫下『可以收信』的正常 email 囉!
# 至於那個 hostname 則僅與歡迎畫面時的變數有關!
 
# 3. 允許同一次連線當中,錯誤登入的次數
#   為了避免被不明攻擊者的『暴力攻擊』法,所以在一次連線當中,
#   僅允許對方最多有 5 次的登入機會,如果密碼或 ID 一直發生錯誤,
#   則會將該連線『踢』掉的啦!
 
loginfails 5
 
# 當然囉!如果您想將登入的次數改小一點的話,也可以使用『loginfails 3』
 
# 4. 向使用者顯示『README, 讀我』檔案的內容訊息!
#  當使用者登入或者變換目錄時,若目的端目錄有 README 這個檔案時
#  (可以附加檔名),則向使用者顯示該檔案的內容!語法為:
#  <readme> <README*> <動作>
#  一般來說,動作有『登入』與『變換目錄』,代號為 login 與 cwd=*
 
readme  README*    login
readme  README*    cwd=*
 
# 舉個例子來說,我是 testing 這個身份的使用者,在我的家目錄內有個檔案:
# /home/testing/data/README.important
# 那麼當我使用 FTP 軟體連進我的家目錄 (/home/testing) 然後切換目錄到
# /home/testing/data 後,我的螢幕就會出現『請讀取 README.important』
# 的字樣囉!以提醒使用者之用!
 
# 5. 與 readme 的意義蠻相同的!不過這個 message 卻會將後面所接的檔案的
#  內容直接顯示在螢幕上面,而不僅是告知使用者去讀取而已~
 
message /welcome.msg            login
message .message                cwd=*
 
# 上面的意思是說,當我 login 或者切換到任何有檔名為 .message 的目錄時,
# 該檔案的內容就會顯示到螢幕上面!一般來說,那個 /welcome.msg 就是
# 『進站歡迎畫面』囉!這個等一下我們在底下會獨立出一小節來介紹他!
 
# 6. 是否提供使用者線上立即執行的指令!
#  一般的格式為:
#  <指令名稱> <是否允許/yes/no> <針對的對象是誰>
 
compress        yes             all
tar             yes             all
chmod           no              guest,anonymous
delete          no              anonymous
overwrite       no              anonymous
rename          no              anonymous
umask           no              all
 
# 以上面的例子來說,我允許任何成功登入我主機的使用者(all)使用我的
# FTP 主機來執行壓縮這個指令的動作!但是我不許匿名者(anonymous)
# 使用我的 FTP 主機進行刪除(delete)以及改名(rename)的動作!
# 你當然還可以增加自己所想要提供,或者減少提供使用者使用的指令!
# 當然啦,既然 FTP 主要是針對『檔案』,所以指令以檔案的刪除、移動、
# 更改與壓縮為主!
 
# 7. 將使用者執行的部分指令歷程記錄到 /var/log/xferlog 這個檔案
#  FTP 進行上傳、下載或者其他使用者動作時,可以將過程訊息記錄下來,
#  記錄的檔案就是 /var/log/xferlog 這個檔案囉!語法為:
#  <log> <欲登錄的項目> <記錄的使用者身份> <何種動作>
 
log transfers anonymous,guest,real inbound,outbound
 
# 上面說明的是『針對檔案傳輸(transfers)進行記錄,而針對所有人均紀錄,
# 分別記錄上傳與下載(inbound,outbound)』,請注意,身份如果有多種,要以
# 逗號『,』隔開,不要加空白喔!所以,當你的 FTP 使用者連上主機,
# 並且有任何檔案傳輸的動作時,則檔案大小以及檔案數等資訊,就會被紀錄
# 到 /var/log/xferlog 裡面去啦!而除了檔案傳輸之外,還有什麼可以紀錄的呢?
# 基本上,那個『欲登錄的項目』內容就包含了下面幾項資料:
# a. log commands <身份> :例如『log commands real,anonymous』,表示
#  real 與 anonymous 這兩種身份的人,在 FTP 上面所下達的任何指令君會
#  被紀錄在 /var/log/xferlog 裡面
# b. log security <typelist> :例如『log security guest,anonymous』
#  表示當 guest 與 anonymous 使用者『違反安全機制』時,則會將當時
#  使用者所下達的指令或者其他動作紀錄下來!
 
# 8. 關閉 FTP 的設定檔!
#  我們可以設定關閉 FTP 這個服務的時間,就利用 shutdown 後面接的檔案!
 
shutdown /etc/shutmsg
 
# 如果 /etc/shutmsg 不存在,則 FTP 服務就不會被關閉!所以不存在沒關係!
# 而如果 /etc/shutmsg 存在的話,他的內容包含有底下這些資料(注意:
# 第一行為時間參數,共有七個時間參數,用空白鍵分隔,而提示文字可以隨便
# 編寫內容喔!也可以使用變數啊!):
# <年> <月> <日> <時> <分> <抵擋新連線> <刪除已連線> 
# <提示文字>
# 年:任何大於 1970 年的年份;月:0-11!請注意啊!是由 0-11 喔!
# 0 代表 1 月、 1 代表 2 月!
# 日:當然就是 1-31 囉!  ;時:由 0-23 ;分:0-59
# 抵擋新連線與刪除已連線:格式是 HHMM 例如 90 分鐘則是 0130 ,在關機前的
# 設定時內,會拒絕新連線與將以連線之通道切除喔!例如:
# 『2003 5 30 12 0 0230 0030
#  I will shutdown my FTP server !sorry!』
# 在 2003/6/30 的 12:00 要關閉 FTP ,而 12:00 之前的兩小時30分內(09:30)
# 就不許新的嘗試登入的連線,而在 30 分鐘前(11:30)就切掉已經已經連線之
# 使用者連線!事實上,這個 shutdown 蠻有趣的!因為實際上,您的 FTP
# 服務並沒有關掉,僅只是讓他人無法使用 FTP 而已啊!那麼如何重新啟動呢?
# 很簡單啊!將 /etc/shutmsg 殺掉,或者裡面的時間更動一下即可!
 
# 9. 匿名者的密碼驗證:
#  如果您的 FTP 允許 anonymous 的話,那麼還是需要讓匿名者輸入密碼的,
#  不過就是密碼的設定比較鬆散就是了!目前的密碼格式為:
#  <passwd-check> <no|trivial|rfc822> <動作>
 
passwd-check rfc822 warn
 
# 上面說的是,以匿名者登入的使用者也需要輸入密碼,而密碼的格式為 rfc822,
# 如果使用者的密碼不合格,那麼就警告(warn)使用者,但仍允許使用者登入!
# 密碼的格式方面目前有兩種(no是不需要密碼確認,所以不討論!)
# trivial:密碼當中必須含有 @ 這個 e-mail 的字元;
# rfc822 :密碼必須符合 frc822 的規範!
# 通常我們使用的是 rfc822 即可!至於動作主要有兩種動作:
# warn   :使用者輸入錯誤的密碼時,僅顯示警告訊息,仍允許其登入;
# enforce:使用者若輸入錯誤密碼,儲顯示警告訊息,並中斷連線喔!
# 注意:
# 如果你不想讓某個 email 的型態通過認證時,可以使用 deny-email 這個
# 項目來抵擋!舉個例子來說,你不想讓 IE 的預設郵件地址通過認證,可使用
# deny-email IE?0User@
# deny-email mozilla@
# 上面這兩個項目可以同時存在,如果還有不想讓他通過的 email address 
# 可以持續上面的設定多行!這有什麼用途呢?如果您不想讓 web browsers 
# 通過密碼的確認,而僅想讓類似一般的 FTP client 來連線,那麼這個
# 限制項目就有用的很了!因為他可以將 IE 之類的 browsers 擋下來啊!
 
# 10. 設定允許與不許登入 FTP 伺服器的使用者與群組
 
deny-uid %-99 %65534-
deny-gid %-99 %65534-
allow-uid ftp
allow-gid ftp
 
# 這個是在 Red Hat 系統上面新增出來的設定啦!在一般正常的系統當中,
# UID 小於 100 通常是系統帳號,而 UID 大於 65534 可能有安全上的問題,
# 所以,我們就直接將這兩段 UID 與 GID 切掉啊!讓他們無法登入,也就可以
# 拒絕某些不當的入侵攻擊了!那就是 deny-uid 與 deny-gid 的功效!
# 所以,上面的意義是,小於99與大於65534 的UID/GID都予以抵擋連線;
# 而開放的 UID 與 GID 則僅有 ftp 這個群組與使用者喔!
# deny-uid 後面除了接數字外,也可以直接接帳號名稱,例如要擋住 testing 
# 與 testqq 這個用戶時,可以設定:
# deny-uid testing testqq 
# 後面可以接多個 UID 或帳號或者使用範圍,例如抵擋 100 到 1000 之間的 UID 
# deny-uid 100-1000
# 至於 allow-uid 則恰好相反啊!就是允許的意思~

 

 

 


使用 Super daemon 管理 FTP 的情況

 

super daemon

再也啟動 xinetd

 

[root@test root]# vi /etc/xinetd.d/wu-ftpd
service ftp
{
        disable = yes  <==就是他,將他改為 no 即可!
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/in.ftpd
        server_args             = -l -a
        log_on_success          += DURATION USERID
        log_on_failure          += USERID
        nice                    = 10
}

 

鳥哥的 Linux 私房菜 -- 基礎學習篇

認識性格很顽强在荆棘满途或巨大压力面前不屈務

Telnet 伺服器

 

 

 

[root@test root]# /etc/rc.d/init.d/xinetd restart

[root@test root]# netstat -tl 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:ftp                   *:*                     LISTEN

[root@test root]# ftp localhost 
Connected to localhost (127.0.0.1).
220 localhost.localdomain FTP server (Version wu-2.6.1-20) ready.
Name (localhost:testing): testing  <==輸入登入者帳號
331 Password required for testing.
Password:  <==輸入你的密碼
230 User testing logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> exit<==離開 FTP

 

註:還是得小心一下您的防火牆機制與 /etc/hosts.deny 裡面是或不是將 in.ftpd 這個服務關掉了?!會形成無法連線的缘由有众多都以因為沒有將防火牆的機制打開的緣故!請再回頭詳細看一下簡易防火牆設定一文

 

 


歡迎畫面包车型客车确立、 Readme 檔案與關閉 FTP 訊息內容

歡迎畫面包车型地铁创制:

 

 

  • 风流倜傥旦你的使用者能够到達系統的根目錄,那麼他將取用 /welcome.msg 這個檔案;
  • 若是使用者只好在和煦的家目錄內活動時,那麼此時他的『根目錄』會變成他的『家目錄』!因為這樣他才離不開本身近些日子所在的目錄啊!举个例子test 這個使用者被节制在投机的家目錄內活動,这麼他的進站歡迎畫面則是取用 /home/test/welcome.msg 喔!
  • 至於就算是无名者登录的話,由於无名氏者一定都會被节制在佚名者登陆的目錄,所以您也一定要將該檔案放置在他們的根目錄喔!

 

 

 

%T  本地端的主機時間(格式為 Fri Mar 21 11:28:50 2003)
%F  使用者目前所在目錄之 partition 所剩空間(不一定支援所有系統)
%C  使用者目前所在的目錄
%E  系統管理員的 email ,這個就是剛剛設定 ftpaccess 內的 email 值
%R  遠端主機的 IP 或 hostname !
%L  本地端主機的名稱或 IP
%U  使用者的登入帳號名稱
%M  FTP 主機所能允許的使用者最大連線數量
%N  FTP 主機目前已經連線的使用者數量
%B  關於硬碟容量的限額
%Q  目前的 block 數量
%I  最大的可用 inodes 
%i  針對 inodes 的限額
%H  當過度使用硬碟空間時的時間限制
%h  當使用過度檔案時的時間限制
%s  預計關閉 FTP 的時間(與 /etc/shutmsg 有關)
%r  預計關閉 FTP 前禁止再連線的時間(與 /etc/shutmsg 有關)
%d  預計關閉 FTP 前已連線的中斷時間(與 /etc/shutmsg 有關)

 

 

[root@test root]# vi /welcome.msg
Welcome to my FTP site.
Now is the time ==> %T
The host name is %L
You are %U and from %R
There are %N person in my site, now.
If you have any problem please call me
%E
 
是的!內容只要上面這樣即可!,馬上來測試一下設定的結果
 
[root@test root]# ftp localhost
Connected to localhost (127.0.0.1).
220 vbird.adsldns.org FTP server (Version wu-2.6.1-20) ready.
Name (192.168.1.100:test): test
331 Password required for test.
Password:  <==輸入密碼
230-Welcome to my FTP site.
230-Now is the time ==> Fri Mar 21 12:03:49 2003
230-The host name is vbird.adsldns.org
230-You are vbird and from 192.168.1.100
230-There are 1 person in my site, now.
230-If you have any problem please call me
230-root@localhost
230-
230 User test logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> bye

 

.message

 

關閉 FTP 喔!

註:某个情況當中,使用者或然會希望一天之中有个别時候啟動 FTP 而一些時刻關閉 FTP ,举个例子 8-16 點啟動 FTP 而 16-隔天8點關閉 FTP ,這種情況下,您能够藉由 xinetd 這個 super daemon 的意义來達到這個目标!并非应用這個 shutmsg 喔!切記

 

 

 

[root@test root]# vi /etc/shutmsg
2003 2 30 12 00 0100 0030
我將要關閉連線、請不要再進行連線啦!
即將關機的時間:%s
新連線失敗的時間:%r
已連線關閉的時間:%d

註:上面的內容格式為兩段,第一段就是時間的參數,分別是:
年 月 日 小時 分鐘 HHMM HHMM (最後兩個分別是新連線與已連線的斷線時間)
第二行以後則是一些文字的敘述!可以參考 message 裡面的變數!

 

特別在乎:這個檔案並不會自動的毁灭,何况,要是設定錯誤,您只怕無法連上 FTP ,因而,在過了那個關閉 FTP 的時間點之後,以地点的例子來說,就是2000/03/30 ,您最佳將該檔案刪除啊!不然恐怕會查不出來『到底是那個環節形成自身的 FTP 無法連線』的困境喔!

 

 


节制最大線上人數

 

 

[root@test root]# vi /etc/ftpaccess
# 規範的格式為:
# <limit> <人物群組名稱> <最大連線數> <時間> <被拒絕時顯示的文件檔案>
 
limit all       20 Any      /etc/ftpmaxnumber
limit guest     10 Any      /etc/ftpmaxnumber
limit anonymous 5  Any0800-2000 /etc/ftpmaxnumber
 
由上面的限制當中,我們知道,在 all 這個人物群組當中,最大的同時上線
人數為 20 人,並且,這個設定是任何時刻均有效(Any),如果你是第 21 個
連線進來我的 FTP 的人,那麼您的螢幕將會出現 /etc/ftpmaxnumber 這個檔案
的內容,並且『無法連線進入我的 FTP 』!請特別留意 Any 的大小寫,若
寫錯時,這個設定將不會生效!
 
[root@test root]# vi /etc/ftpmaxnumber
這裡已經太多人啦!請您等一下再進入! ^_^

[root@test root]# /etc/rc.d/init.d/xinetd restart

 

請注意,那個 Any 大小寫不要搞錯了!别的, Any 後面沒接資料,表示『任何時間』的意趣,否則必要以 HHMM 的格式來書寫時間的樣式!

 

 


约束與撤消使用者的家目錄規範

 

 

[root@test root]# vi /etc/ftpaccess
 
restricted-uid *
restricted-uid 200-400 test testing

[root@test root]# /etc/rc.d/init.d/xinetd restart

 

 

 

 

[root@test root]# vi /etc/ftpaccess
unrestricted-uid test testing

 

 

 


時間相關的設定項目

 

 

 

 

[root@test root]# vi /etc/ftpaccess
# 時間參數預設都是以 秒 為單位的!

timeout accept 120
# FTP 這個 daemon 會等待一個 PASV 的連線多久?由於 client 端的連線可能
# 受限於一些網路頻寬或者其他的因素,導致無法立即連上時,我們的 daemon
# 預設就會等待 120 秒來期待 client 端的連線成功!

timeout connect 120
# 與 accept 有點類似,不過 accept 是在等待 client 端的要求之回應,而 
# connect 則是在等待確認的回應!亦即三向交握內的 client 端回應 ACK 的
# 封包囉!

timeout data 2400
# 當我們下載檔案的時候,最多 FTP 可以讓我們下載或上傳一個檔案多久?
# 一般來說,由於目前大家都使用 ADSL 來傳輸,所以資料傳送不算慢,
# 不過,萬一您的檔案太大了,導致傳送速度很慢,那就比較麻煩啦!
# 通常這個設定的預設值是 1200 ,不過,建議可以大一點,例如 2400 可達 40
# 分鐘,對於傳輸速度較慢的使用者會比較好一點!

timeout idle 1800
# 就是我們上面提到的,多久沒有動作會被踢掉?預設是 900 ,你可以改大一點!

timeout maxidle 1800
# 與 idle 類似!不過由於 Client 端可以要求延長 idle 的時間,因此,
# 還會有所謂的 maxidle 喔!您大可將這兩個咚咚都設定一樣即可!

limit-time anonymous 30
limit-time guest    100
# 這個項目在設定『一次連線內,多久會被強制斷線?』以上面的例子來說,
# anonymous 每次登入之後,可以取得 30 分鐘的工作時間,如果超過 30 分鐘,
# 系統會主動的將他踢出去!(強制斷線!)這個項目對於 real user 沒有效果!

 

 

 


流量與上傳下載的范围項目

 

 

整體檔案數目與檔案体积的限額:

 

郑重声明:本文版权归美高梅163888所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。