vsFTPd 服務(wù)器初學(xué)者入門指導(dǎo)
vsftpd是一款在Linux發(fā)行版中最受推崇的FTP服務(wù)器程序,非常好用,我都用了好長(zhǎng)時(shí)間,那下面我就給大家介紹下vsftpd的入門指導(dǎo)。
1、關(guān)于vsFTPd服務(wù)器的一些常用功能的實(shí)現(xiàn);
1.1、關(guān)于匿名上傳下載的實(shí)現(xiàn);
關(guān)于匿名上傳,其實(shí)也比較簡(jiǎn)單,首先我們要修改一下vsftpd.conf ,此文件位于 /etc/目錄下,可能是/etc/vsftpd.conf,也可能是/etc/vsftpd/vsftpd.conf文件。以您的系統(tǒng)環(huán)境為準(zhǔn);
首先:我們要改一下vsftpd.conf,確保有以下幾行;
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_umask=022
其次:在ftp用戶家目錄的下建一個(gè)文件夾,并修改其權(quán)限為完全開放;
ftp用戶的家目錄在哪?我們前面已經(jīng)說了,要通過/etc/passwd來查看;也可以通過finger ftp來查看;
[root@localhost beinan]# finger ftp
Login: ftp Name: FTP User
Directory: /var/ftp Shell: /sbin/nologin
這說明ftp用戶的家目錄在/var/ftp ,我們要在這個(gè)目錄下建一個(gè)目錄,然后把他的權(quán)限設(shè)置為任何用戶可讀可寫可執(zhí)行就行了;一般的情況下,在發(fā)行版中,有一個(gè)/var/ftp/pub的目錄,如果沒有,您也可以自己建一個(gè);把配置文件改好后,只要把/var/ftp下的任何一個(gè)目錄的權(quán)限打開,都可以用來匿名上傳和下載;
比如您想讓匿名用戶上傳和下載都在/var/ftp/pub,就可以把/var/ftp/pub的權(quán)限打開,如果沒有這個(gè)目錄,您要自己建一個(gè);
[root@localhost ~]# mkdir /var/ftp/pub
[root@localhost ~]# chmod 777 /var/ftp/pub
這樣上傳的時(shí)候傳到pub目錄就OK了,對(duì)不對(duì)??
1.2、關(guān)于添加本地用戶及打開讀寫權(quán)限示例;
FTP用戶一般是不能登錄系統(tǒng)的,這也是為了安全。在系統(tǒng)中,沒有權(quán)限登錄系統(tǒng)的用戶一般也被稱之為虛擬用戶;虛擬用戶也是要寫進(jìn)/etc/passwd中;這只是一種虛擬用戶的方法,但說實(shí)在的并不是真正的虛擬用戶,只是把他登錄SHELL的權(quán)限去掉了,所以他沒有能力登錄系統(tǒng);
如果我們想把beinan這個(gè)用戶目錄定位在/opt/beinan這個(gè)目錄中,并且不能登錄系統(tǒng);我們應(yīng)該如下操作
[root@localhost ~]# adduser -d /opt/beinan -g ftp -s /sbin/nologin beinan
[root@localhost ~]# passwd beinan
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]#
其實(shí)這還是不夠的,還要改一下配置文件vsftpd.conf ,以確保本地虛擬用戶能有讀寫權(quán)限;
local_enable=YES
write_enable=YES
local_umask=022
1.4、如何實(shí)現(xiàn)虛擬路徑?
比如:
/home/a 映射為 ftp://localhost/a
/home/b/c 則為 ftp://localhost/c
其實(shí)這個(gè)不能說是vsFTPd的內(nèi)容,其實(shí)我們?cè)缇徒佑|過了,可能我們沒有注意,我們可以通過如下的方法來實(shí)現(xiàn)。
[root@localhost ~]# mount --bind [原有的目錄] [新目錄]
比如我的ftp的默認(rèn)目錄是/var/ftp,我想把/mnt/LinG/WinSoft文件夾,映射到/var/ftp目錄中,我就如下操作
我們要先在/var/ftp目錄中建一個(gè)目錄
[root@localhost ~]# mkdir /var/ftp/WinSoft
然后執(zhí)行mount命令
[root@localhost ~]# mount --bind /mnt/LinG/WinSoft /var/ftp/WinSoft
這樣就OK了。
1.5、打開vsFTP服務(wù)器的日志功能;
把下面xferlog_file前面的#號(hào)對(duì)掉,也就是把vsftp的log功能打開,這樣我們就能在/var/log目錄下查看vsftpd.log。這是vsFTP的日志功能,這對(duì)于我們來說是極為重要的。
xferlog_file=/var/log/vsftpd.log
1.6、如何定制歡迎信息;
如何定制歡迎信息,也就是我們登入有些FTP之后,會(huì)出現(xiàn)類似:歡迎您來到LinuxSir FTP,在這里,您會(huì)得到最真誠(chéng)的幫助,如果有什么問題和建議,請(qǐng)來信,多謝。
實(shí)現(xiàn)這個(gè)并不難,我們可以查看vsftpd.conf文件中,是否有這行。
dirmessage_enable=YES
message_file=.message
如果沒有就加上,如果dirmessage_enable=YES前面有#號(hào),就把#號(hào)去掉。其實(shí)FTP信息默認(rèn)的就是.message,所以可以不加 message_file= 來指定。自己指定也行,無所謂的事;
然后我們制定一個(gè).message文件,寫上您想要寫的東西,比如是.message的內(nèi)容是如下的:
--歡迎您來到LinuxSir FTP!
--在這里,您會(huì)得到最真誠(chéng)的幫助;
--如果有什么問題和建議,請(qǐng)來信,多謝。
我們可以用編輯器來寫這個(gè).message,我想這個(gè)過程就不用說了吧。
然后我們把.message這個(gè)文件復(fù)制到各個(gè)用戶的家目錄中。比如我的FTP的一個(gè)用戶是beinan,這個(gè)用戶所在的家目錄是/opt/beinan
我們就要把.message放在/opt/beinan這個(gè)目錄下。如果系統(tǒng)用戶ftp,他的目錄就是/var/ftp這個(gè)目錄,這個(gè)是默認(rèn)的,當(dāng)匿名用戶登入時(shí)就訪問的是/var/ftp這個(gè)目錄。我們要讓匿名用戶能看到歡迎信息。就要把.message放在/var/ftp目錄中。其它的用戶,也無非就是類似的操作。
1.7、硬盤空間有限,如何把帳號(hào)ftp默認(rèn)的家目錄更改到別處?
我的硬盤空間有限,如何把帳號(hào)ftp默認(rèn)的路徑/var/ftp更改到別處?或者是,我的linux所有的目錄都放在/根分區(qū),因?yàn)榭臻g緊張,我能否把ftp這個(gè)用戶的默認(rèn)路徑放到別的分區(qū)??
對(duì)于ftp這個(gè)用戶的管理,我們應(yīng)該查看/etc/passwd ,然后修改ftp用戶那行;
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
比如我們想把ftp用戶的家目錄改為/opt/ftp,則要把類似上一行改為
ftp:x:14:50:FTP User:/opt/ftp:/sbin/nologin
然后我們要建立ftp用戶的新的家目錄;
[root@localhost ~]# mkdir /opt/ftp
[root@localhost ~]# chmod 755 /opt/ftp
[root@localhost ~]# chown root:root /opt/ftp
如果默認(rèn)的ftp磁盤空間緊張,我們其實(shí)也可以用虛擬路徑映射的方法來解決;也就是mount --bind的辦法;看情況吧,哪個(gè)適合就是最好的方法;
1.8、如何讓vsFTP服務(wù)器限制鏈接數(shù),以及每個(gè)IP最大的鏈接數(shù)?
應(yīng)該改vsFTPd服務(wù)器的配制文件vsftpd.conf,加入下面的兩行:
max_clients=數(shù)字
max_per_ip=數(shù)字
舉例:我想讓我的vsFTP最大支持鏈接數(shù)為100個(gè),每個(gè)IP,最多能支持5個(gè)鏈接,所以我應(yīng)該在vsftpd.conf中加上如下的兩行:
max_clients=100
max_per_ip=5
改好了配制文件,不要忘記啟動(dòng)vsftp服務(wù)器。
1.9、如何限制傳輸速度?
anon_max_rate=數(shù)字
注:這是匿名的速度
local_max_rate=數(shù)字
注:這是vsFTP服務(wù)器上本地用戶的速度
注:這個(gè)數(shù)字的單位是byte,所以我們要計(jì)算一下。比如我想讓匿名用戶和vsFTP上的用戶都以80KB下載,所以這個(gè)數(shù)字應(yīng)該是1024x80=81920
所以我們要在vsftpd.conf中加入下面的兩行
anon_max_rate=81920
local_max_rate=81920
1.10、如何有選擇的把用戶限制在家目錄中呢?
我們要自己建一個(gè)文件,在/etc目錄中或/etc/vsftpd目錄中(假如您的vsftpd配置文件都是放在這個(gè)目錄的話);
#touch /etc/vsftpd.chroot_list
以beinan和nanbei這兩個(gè)用戶限制在他們所在的家目錄中,而其它的FTP用戶不做此限制。
在vsftpd.chroot_list這個(gè)文件中,把beinan和nanbei添上去就行,注意,每個(gè)用戶占一行。
beinan
nanbei
然后改/etc/vsftpd/vsftpd.conf文件,找如下的兩行
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
如果沒有這樣的兩行,就可以自己添加上去也是一樣的。
設(shè)置好后,重新vsFTPD服務(wù)器。
補(bǔ)充一之補(bǔ)充:如何把系統(tǒng)內(nèi)所有的FTP用戶都限制在家目錄中呢??經(jīng)juliaugong兄的提示,我查找了vsFTPd的洋文說明,證明這個(gè)選項(xiàng)是一刀切的解決所有的用戶都能限制在家目錄中
我們可以通過更改vsftpd.conf文件,加入如下的一行
chroot_local_user=YES
改完配制文件,不要忘記重啟vsFTPd服務(wù)器;
1.11、如何讓綁定IP到vsFTPd?
如何讓綁定IP到vsFTPd?也就是說,如何讓用戶只能通過某個(gè)IP來訪問FTP。其實(shí)這個(gè)功能很有意思。如果綁定的是內(nèi)網(wǎng)的IP,外部是沒有辦法訪問的。如果綁定的是對(duì)外服務(wù)的IP,內(nèi)網(wǎng)也只能通過對(duì)外服務(wù)的IP來訪問FTP
在vsftpd.conf中加一行,以我的局域網(wǎng)為例,請(qǐng)看第一帖中的操作環(huán)境,這樣外網(wǎng)就不能訪問我的FTP了,內(nèi)網(wǎng)也可能通過192.168.0.2來訪問FTP;
listen_address=192.168.0.2
通過上文的介紹,我相信那些初學(xué)者都知道了vsFTPd的基礎(chǔ)知識(shí),希望對(duì)你們有幫助!
【編輯推薦】
- vsFTPd 服務(wù)器初學(xué)者指南
- vsFTPd 服務(wù)器初學(xué)者精通手冊(cè)
- 史上最全的 vsftpd 問題集(上篇)
- 史上最全的 vsftpd 問題集(下篇)
- vsFTPd菜鳥變大蝦六大點(diǎn)
- 如果SELinux拒絕vsftpd上傳文件到用戶主目錄怎么辦
- 如何解決vsftpd下顯示的時(shí)間與系統(tǒng)時(shí)間不一致