目錄
1、vsFTPd,目前常用FTP服務(wù)器套件;
2、ftp 用戶管理解說(shuō);
3、vsFTPd的安裝;
4、vsFTPd的服務(wù)器的啟動(dòng)和關(guān)閉;
5、vsFTPd的服務(wù)器和防火墻及SELINUX的關(guān)系;
6、500 OOPS: vsftpd: refusing to run with writable anonymous root
7、關(guān)于vsFTPd配置文件的說(shuō)明;
8、關(guān)于vsFTPd服務(wù)器的一些常用功能的實(shí)現(xiàn);
9、實(shí)例:實(shí)體用戶上傳下載的實(shí)現(xiàn)
+++++++++++++++++++++++++++++++++++++++++++
正文
+++++++++++++++++++++++++++++++++++++++++++
1、vsFTPd,目前常用FTP服務(wù)器套件;
vsFTPd是一款在Linux發(fā)行版中最受推崇的FTP服務(wù)器程序;特點(diǎn)是小巧輕快,安全易用;能讓其自身特點(diǎn)得發(fā)發(fā)揮和掌握,也然最主要的是會(huì)用;
目前在開(kāi)源操作系統(tǒng)中常用的FTPD套件主要有ProFTPD、PureFTPd和wuftpd等;至于哪個(gè)FTP服務(wù)器套件更好,哪個(gè)是你最熟悉的,哪個(gè)就是最好的;
2、ftp 用戶管理解說(shuō);
FTP服務(wù)器對(duì)用戶的管理,在默認(rèn)的情況下是根據(jù) /etc/passwd及/etc/group
來(lái)進(jìn)行的,所以我們一定要了解Linux系統(tǒng)用戶和用戶組的管理,用戶和用戶組的管理是一切應(yīng)用的的基礎(chǔ),有的弟兄不想去了解基礎(chǔ)的東西,就想一步成架好
各種服務(wù)器,事實(shí)證明這種學(xué)習(xí)方法是最不明智的;雖然在您可能在幾分鐘啟動(dòng)了ftp服務(wù)器,但遇到問(wèn)題時(shí),您不一定能知道是哪里出錯(cuò);所以基礎(chǔ)還是極為重
要的;
推薦文章:
《Linux 用戶(user)和用戶組(group)管理概述》
2.1、匿名ftp 用戶和用戶組的理解;
當(dāng)我們?cè)L問(wèn)各大FTP上訪問(wèn)時(shí),可能我們不去想我們以什么身份登錄的,如果他的FTP允許匿名登錄的話;比如我們?cè)跒g覽器上打入;
ftp://mirrors.kernel.org
或
ftp://ftp:ftp@mirrors.kernel.org
我們會(huì)發(fā)現(xiàn)上面的兩行最終都能訪問(wèn),而且顯示的結(jié)果也完全一樣,最終都跳到 ftp://mirrors.kernel.org
地址;那我們?cè)L問(wèn)這個(gè)FTP時(shí),是不是有用戶和密碼呢?是的,也是需要在的,只是在服務(wù)器端允許匿名訪問(wèn),而匿名訪問(wèn)的用戶名和密碼都是ftp,只是我們
因?yàn)槟涿L問(wèn),沒(méi)有感覺(jué)到他有用戶名和密碼罷了。第二個(gè)地址就是以ftp用戶,密碼也是ftp來(lái)訪問(wèn)
ftp://mirrors.kernel.org;
如果我們以ftp命令連接 mirrors.kernel.org 時(shí),我們會(huì)發(fā)現(xiàn)需要輸入用戶ftp,密碼ftp才能訪問(wèn);
在FTP服務(wù)器中,匿名用戶的用戶名和密碼都是ftp ;這個(gè)用戶可以在您的操作系統(tǒng)中的 /etc/passwd 中能找得到;可能有類似下面的一行;
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
說(shuō)明:
/etc/passwd 是系統(tǒng)用戶的配置文件;/etc/group是系統(tǒng)用戶組配置文件,您可以通過(guò) 《Linux 用戶(user)和用戶組(group)管理概述》 及其相關(guān)文檔中了解一些用戶管理的一些基礎(chǔ)知識(shí);
在ftp用戶這行中,我們看到七個(gè)字段,每個(gè)字段寫字段之間用:號(hào)分割;
ftp 是用戶名
x 是密碼字段,是隱藏的;
14 是用戶的UID字段,可以自己來(lái)設(shè)定,不要和其它用戶的UID相同,否則會(huì)造成系統(tǒng)安全問(wèn)題;
50 用用戶組的GID,可以自己設(shè)定,不要和其它用戶組共用FTP的GID,否則會(huì)造成系統(tǒng)全全問(wèn)題;
FTP User 是用戶說(shuō)明字段;
/var/ftp 是ftp用戶的家目錄,可以自己來(lái)定義;
/sbin/nologin 這是用戶登錄SHELL ,這個(gè)也是可以定義的,/sbin/nologin
表示不能登錄系統(tǒng);系統(tǒng)虛擬帳號(hào)(也被稱為偽用戶)一般都是這么設(shè)置。比如我們把ftp用戶的/sbin/nologin 改為 /bin/bash
,這樣ftp用戶通過(guò)本地或者遠(yuǎn)程工具ssh或telnet以真實(shí)用戶身份登錄到系統(tǒng)。這樣做對(duì)系統(tǒng)來(lái)說(shuō)是不安全的;如果您認(rèn)為一個(gè)用戶沒(méi)有太大的必要登
錄到系統(tǒng),就可以只給他FTP帳號(hào)的權(quán)限,也就是說(shuō)只給他FTP的權(quán)限,而不要把他的SHELL設(shè)置成 /bin/bash 等;
關(guān)于ftp用戶組的理解:
我們查看 /etc/group 的時(shí)候,會(huì)發(fā)現(xiàn)類似這樣一條;
ftp:x:50:
/etc/group 是用戶組的管理配置文件,上面這行表示用戶組ftp,x是密碼段,50是GID;我們對(duì)照在/etc/passwd中的ftp那行得知ftp用戶是屬于ftp用戶組的,因?yàn)閒tp用戶那行中的GID和ftp用戶組的GID是相同的;
2.2、匿名ftp 用戶和ftp用戶組是否可以刪除
在一般情況下是不能把/etc/passwd和/etc/group 中有把ftp用戶和用戶組的行刪除的,因?yàn)镕TP服務(wù)器是需要他們來(lái)對(duì)FTP用戶實(shí)現(xiàn)管理,在默認(rèn)的情況下。
雖然不能刪除,但對(duì)/etc/passwd及/etc/group中的ftp用戶及ftp用戶組的一些相關(guān)的東西是能修改的;比如我們可以把ftp
用戶的家目錄改掉,也可以把ftp用戶的UID改掉 ... ...
前提是你對(duì)用戶管理有所了解,系統(tǒng)用戶管理是一切應(yīng)用基礎(chǔ)之一,可能初學(xué)Linux的弟兄并不了解用戶管理的重要性,但慢慢您就會(huì)發(fā)現(xiàn)這個(gè)道理;
3、vsFTPd的安裝;
在最新的各大發(fā)行版中的安裝盤中都有vsFTPd的軟件包,您用相應(yīng)發(fā)行版提供的軟件包管理工具就能安裝上;當(dāng)然您可以到各大發(fā)行版的FTP鏡像中
找到vsftpd的軟件包;當(dāng)然也能用軟件包的管理工具在線安裝;vsftpd的軟件包本來(lái)不大,花不了多長(zhǎng)時(shí)間,兩分鐘就夠了吧;因?yàn)楸疚氖浅鯇W(xué)者教
程,我嚴(yán)重推薦您用發(fā)行版提供的軟件來(lái)安裝,不推薦您自己來(lái)編譯源碼包的安裝方式;
如果您用的是Fedora 或Redhat 系統(tǒng),可以用下面的命令在線安裝;
[root@localhost ~]# yum install vsftpd
如果是debian 類系統(tǒng),可以用apt 來(lái)在線安裝;
[root@localhost ~]# apt-get install vsftpd
如果您是RPM的系統(tǒng),也可以找到vsftpd-xxxx.rpm 的包來(lái)通過(guò)rpm命令來(lái)安裝;
[root@localhost ~]# rpm -ivh vsftpd*.rpm
您可以下載源碼包來(lái)安裝
比如我們下載的是 vsftpd-2.0.3.tar.gz ;
[root@localhost ~]# tar zxvf vsftpd-2.0.3.tar.gz
[root@localhost ~]# cd vsftpd-2.0.3
[root@localhost ~]# make ;make install
[root@localhost ~]# cp vsftpd.conf /etc
然后修改/etc/vsftpd.conf ,在配置文件的最后一行加入下面一行;
listen=yes
源碼包安裝的方法,如果您的系統(tǒng)是RPM包管理的系統(tǒng),可以刪除/etc/xinetd.d/vsftpd 這個(gè)文件;然后啟動(dòng)xinetd 服務(wù)器;
[root@localhost ~]# /etc/init.d/xinetd restart
停止 xinetd: [ 確定 ]
啟動(dòng) xinetd: [ 確定 ]
vsFTPd運(yùn)行有兩種模式,在RPM包管理的系重審統(tǒng),大多是由Fedora/Redhat
開(kāi)發(fā)而來(lái),對(duì)于這樣的系統(tǒng)有xinted服務(wù)器一說(shuō);對(duì)于非RPM包管理的系統(tǒng),一般沒(méi)有xinted這一說(shuō)。為了保證本文檔的統(tǒng)一,我們都不要用
xinetd模式,而用initd運(yùn)行模式來(lái)啟動(dòng)和管理服務(wù)器,也就是獨(dú)立運(yùn)行模式; 至于什么是xinted和inted 模式,您可以參考《 用vsFTPd自架Linux網(wǎng)絡(luò)安裝服務(wù)器》
4、vsFTPd的服務(wù)器的啟動(dòng)和關(guān)閉;
vsFTPd服務(wù)器啟動(dòng)和關(guān)閉是極容易的;我們可以直接把服務(wù)器運(yùn)行調(diào)到后臺(tái)運(yùn)行;這是幾乎所有服務(wù)器管理的運(yùn)行方式;
4.1、vsFTPd服務(wù)器啟動(dòng)和關(guān)閉的通用方法;
運(yùn)行vsftpd命令,要用到root權(quán)限,如果您當(dāng)前操作用戶并非是root,可以用su切換到root權(quán)限;關(guān)于root權(quán)限的切換,您有兩種方式,一種是su,另一種是sudo;請(qǐng)參考:《Linux 系統(tǒng)中的超級(jí)權(quán)限的控制》
vsFTPd服務(wù)器的運(yùn)行;
[root@localhost ~]# /usr/sbin/vsftpd &
[root@localhost ~]# /usr/local/sbin/vsftpd &
vsFTPd服務(wù)器是否運(yùn)行起來(lái);
我們可以通過(guò)pgrep vsftpd 來(lái)查看vsftpd是否運(yùn)行起來(lái);
[root@localhost ~]# pgrep vsftpd
4248
上面顯示vsFTPd服務(wù)器運(yùn)行起來(lái)了,您可以通過(guò)ftp命令、lftp工具或gftp或其它的FTP客戶端來(lái)測(cè)試連接;
vsFTPd 服務(wù)器關(guān)閉:
我們用pkill vsftpd 來(lái)殺死vsftpd進(jìn)程,這樣就把vsFTPd關(guān)閉,用psgrep vsftpd 來(lái)查看進(jìn)程,如果沒(méi)有進(jìn)程,證明vsFTPd已經(jīng)關(guān)掉;當(dāng)然也要用到root權(quán)限。
[root@localhost ~]# pkill vsftpd
[root@localhost ~]# pgrep vsftpd
4.2、在Fedora/Redhat/CentOS中vsFTPd 服務(wù)器的啟動(dòng)和關(guān)閉:
在Fedora/Redhat/CentOS中,也可以用下面的方法來(lái)啟動(dòng)vsFTPd;當(dāng)然也要用到root權(quán)限;
[root@localhost beinan]# /etc/init.d/vsftpd start
為 vsftpd 啟動(dòng) vsftpd: [ 確定 ]
重新啟動(dòng)vsFTPd用下面的命令;
[root@localhost beinan]# /etc/init.d/vsftpd restart
關(guān)閉 vsftpd: [ 確定 ]
為 vsftpd 啟動(dòng) vsftpd: [ 確定 ]
關(guān)掉vsFTPd服務(wù)器,應(yīng)該用下面的命令;
[root@localhost beinan]# /etc/init.d/vsftpd stop
關(guān)閉 vsftpd: [ 確定 ]
5、vsFTPd的服務(wù)器和防火墻及SELINUX的關(guān)系;(重要)
我在論壇上看到有些弟兄說(shuō)vsFTPd服務(wù)器啟動(dòng)正常,但卻不能訪問(wèn)或用戶不能上傳文件,我感覺(jué)應(yīng)該是防火墻或SELINUX的事;可能FTPD服
務(wù)器被防火墻或SELINUX的安全機(jī)制防住了。所以您必須要讓防火墻通過(guò)ftp,當(dāng)然也要讓SELINUX通過(guò)ftp服務(wù)器才行;
在Fedora/Redhat/CentOS中,您要設(shè)置一下防火墻,可以把防火墻關(guān)掉,或者在自定義中讓ftp “通過(guò)”防火墻;
[root@localhost ~]# system-config-securitylevel-tui
或者運(yùn)行一下如下的命令,清除防火墻規(guī)則(通用);
[root@localhost beinan]# iptables -F
關(guān)于SELINUX服務(wù)器的解說(shuō) ,可能老手或新手對(duì)SELINUX都有點(diǎn)麻煩,建議您SELINUX;或者讓vsFTPd服務(wù)器跳過(guò)SELINUX啟動(dòng);也就是說(shuō)要用到 4.1、vsFTPd服務(wù)器啟動(dòng)和關(guān)閉的通用方法;;這在Fedora/Redhat/CentOS中這樣啟動(dòng)vsFTPd服務(wù)器是有效的;
當(dāng)然您可也可以關(guān)掉SELINUX,在/etc/selinux/config 配置文件如下;
/etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=Disabled #這樣就把SELINUX服務(wù)器關(guān)掉了,請(qǐng)重新啟動(dòng)系統(tǒng);
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
6、500 OOPS: vsftpd: refusing to run with writable anonymous root
如果我們已經(jīng)把vsFTPd服務(wù)器啟動(dòng)好了,但登錄測(cè)試是會(huì)出現(xiàn)類似下面的提示;
500 OOPS: vsftpd: refusing to run with writable anonymous root
這表示ftp用戶的家目錄的權(quán)限不對(duì),應(yīng)該改過(guò)才對(duì);
[root@localhost ~]# more /etc/passwd |grep ftp
ftp:x:1000:1000:FTP User:/var/ftp:/sbin/nologin
我們發(fā)現(xiàn)ftp用戶的家目錄在/var/ftp,就是這個(gè)/var/ftp的權(quán)限不對(duì)所致,這個(gè)目錄的權(quán)限是不能打開(kāi)所有權(quán)限的;是您運(yùn)行了chmod 777 /var/ftp所致;如果沒(méi)有ftp用戶這個(gè)家目錄,當(dāng)然您要自己建一個(gè);
如下FTP用戶的家目錄是不能針對(duì)所有用戶、用戶組、其它用戶組完全開(kāi)放;
[root@localhost ~]# ls -ld /var/ftp
drwxrwxrwx 3 root root 4096 2005-03-23 /var/ftp
修正這個(gè)錯(cuò)誤,應(yīng)該用下面的辦法;
[root@localhost ~]# chown root:root /var/ftp
[root@localhost ~]# chmod 755 /var/ftp
有的弟兄可能會(huì)說(shuō),那匿名用戶的可讀、可下載、可上傳怎么辦呢?這也簡(jiǎn)單,在/var/ftp下再建一個(gè)目錄,權(quán)限是777的就行了,再改一改vsftpd.conf就OK了;沒(méi)有什么難的;
vsFTPd出于安全考慮,是不準(zhǔn)讓ftp用戶的家目錄的權(quán)限是完全沒(méi)有限制的,您可以去讀一下vsFTPd的文檔就明白的了;否則也不能稱為最安全的FTP服務(wù)器了,對(duì)不對(duì)?
7、關(guān)于vsFTPd配置文件的說(shuō)明;
vsftpd.conf是vsFTPd服務(wù)器的配置文件,此文件一般是/etc/vsftpd.conf或/etc/vsftpd/vsftpd.conf ,以系統(tǒng)為準(zhǔn)吧。。
vsftpd.conf配置文件就是vsFTPd服務(wù)器的全局控制文件,此配置文件中,每行應(yīng)該算做一個(gè)規(guī)則;前面帶有#號(hào)的服務(wù)器不會(huì)解釋,這和apache 的配置文件類似;#后所接的內(nèi)容一般是說(shuō)明性的,或者是關(guān)掉某些功能的選項(xiàng);
vsftpd.conf
這個(gè)配置文件并不包括所有您想實(shí)現(xiàn)的功能,有些功能的實(shí)現(xiàn),我們要自己動(dòng)手來(lái)解決,我們要學(xué)會(huì)查vsFTPd的文檔和FAQ等,雖然是英文的,但都是比較
簡(jiǎn)單的;我們要習(xí)慣看洋文文檔,為什么呢?因?yàn)長(zhǎng)inux本來(lái)就是洋人厲害,重量級(jí)的軟件都是洋人的。呵,兄弟不要抱怨,誰(shuí)讓我們落后了呢?
注意:修改完配置文件后,一定要重啟vsFTPd服務(wù)器才能生效,切記~~
8、關(guān)于vsFTPd服務(wù)器的一些常用功能的實(shí)現(xiàn);
8.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)限為完全開(kāi)放;
ftp用戶的家目錄在哪?我們前面已經(jīng)說(shuō)了,要通過(guò)/etc/passwd來(lái)查看;也可以通過(guò)finger ftp來(lái)查看;
[root@localhost beinan]# finger ftp
Login: ftp Name: FTP User
Directory: /var/ftp Shell: /sbin/nologin
這說(shuō)明ftp用戶的家目錄在/var/ftp
,我們要在這個(gè)目錄下建一個(gè)目錄,然后把他的權(quán)限設(shè)置為任何用戶可讀可寫可執(zhí)行就行了;一般的情況下,在發(fā)行版中,有一個(gè)/var/ftp/pub的目
錄,如果沒(méi)有,您也可以自己建一個(gè);把配置文件改好后,只要把/var/ftp下的任何一個(gè)目錄的權(quán)限打開(kāi),都可以用來(lái)匿名上傳和下載;
比如您想讓匿名用戶上傳和下載都在/var/ftp/pub,就可以把/var/ftp/pub的權(quán)限打開(kāi),如果沒(méi)有這個(gè)目錄,您要自己建一個(gè);
[root@localhost ~]# mkdir /var/ftp/pub
[root@localhost ~]# chmod 777 /var/ftp/pub
這樣上傳的時(shí)候傳到pub目錄就OK了,對(duì)不對(duì)??
8.2、關(guān)于添加本地用戶及打開(kāi)讀寫權(quán)限示例;
FTP用戶一般是不能登錄系統(tǒng)的,這也是為了安全。在系統(tǒng)中,沒(méi)有權(quán)限登錄系統(tǒng)的用戶一般也被稱之為虛擬用戶;虛擬用戶也是要寫進(jìn)/etc
/passwd中;這只是一種虛擬用戶的方法,但說(shuō)實(shí)在的并不是真正的虛擬用戶,只是把他登錄SHELL的權(quán)限去掉了,所以他沒(méi)有能力登錄系統(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 ~]#
檢查用戶對(duì)ftp家目錄有沒(méi)有權(quán)限,權(quán)限不是755則修改ftp家目錄權(quán)限,并且再為用戶ftp新建一個(gè)目錄pub:
[root@localhost ~]#finger ftp
Login: ftp Name: FTP User
Directory: /home/ftp/ Shell: /bin/false
[
root
@localhost ~]#ls -l /home/
drwxr-xr-x 30 chimin chimin 4096 2010-07-29 00:12 chimin
drwxrwxrwx 3 root root 4096 2010-07-28 19:26 ftp
[
root
@localhost ~]
#chmod 755 /home/ftp/
[root
@localhost ~]#mkdir /home/ftp/pub; chmod 777 /home/ftp/pub
其實(shí)這還是不夠的,還要改一下配置文件vsftpd.conf ,以確保本地虛擬用戶能有讀寫權(quán)限;
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
8.4、如何實(shí)現(xiàn)虛擬路徑?
比如:
/home/a 映射為 ftp://localhost/a
/home/b/c 則為 ftp://localhost/c
其實(shí)這個(gè)不能說(shuō)是vsFTPd的內(nèi)容,其實(shí)我們?cè)缇徒佑|過(guò)了,可能我們沒(méi)有注意,我們可以通過(guò)如下的方法來(lái)實(shí)現(xiàn)。
[root@localhost ~]# mount --bind [原有的目錄](méi) [新目錄](méi)
比如我的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了。
8.5、打開(kāi)vsFTP服務(wù)器的日志功能;
把下面xferlog_file前面的#號(hào)對(duì)掉,也就是把vsftp的log功能打開(kāi),這樣我們就能在/var/log目錄下查看vsftpd.log。這是vsFTP的日志功能,這對(duì)于我們來(lái)說(shuō)是極為重要的。
xferlog_file=/var/log/vsftpd.log
8.6、如何定制歡迎信息;
如何定制歡迎信息,也就是我們登入有些FTP之后,會(huì)出現(xiàn)類似:歡迎您來(lái)到LinuxSir FTP,在這里,您會(huì)得到最真誠(chéng)的幫助,如果有什么問(wèn)題和建議,請(qǐng)來(lái)信,多謝。
實(shí)現(xiàn)這個(gè)并不難,我們可以查看vsftpd.conf文件中,是否有這行。
dirmessage_enable=YES
message_file=.message
如果沒(méi)有就加上,如果dirmessage_enable=YES前面有#號(hào),就把#號(hào)去掉。其實(shí)FTP信息默認(rèn)的就是.message,所以可以不加 message_file= 來(lái)指定。自己指定也行,無(wú)所謂的事;
然后我們制定一個(gè).message文件,寫上您想要寫的東西,比如是.message的內(nèi)容是如下的:
--歡迎您來(lái)到LinuxSir FTP!
--在這里,您會(huì)得到最真誠(chéng)的幫助;
--如果有什么問(wèn)題和建議,請(qǐng)來(lái)信,多謝。
我們可以用編輯器來(lái)寫這個(gè).message,我想這個(gè)過(guò)程就不用說(shuō)了吧。
然后我們把.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í)就訪問(wèn)的是/var/ftp這個(gè)目錄。我們要讓匿名用戶能看到歡迎信息。就要把.message放在/var/ftp目錄中。其它的用戶,也無(wú)非
就是類似的操作。
8.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í)也可以用虛擬路徑映射的方法來(lái)解決;也就是mount --bind的辦法;看情況吧,哪個(gè)適合就是最好的方法;
8.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ù)器。
8.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
8.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
如果沒(méi)有這樣的兩行,就可以自己添加上去也是一樣的。
設(shè)置好后,重新vsFTPD服務(wù)器。
補(bǔ)充一之補(bǔ)充:如何把系統(tǒng)內(nèi)所有的FTP用戶都限制在家目錄中呢??經(jīng)juliaugong兄的提示,我查找了vsFTPd的洋文說(shuō)明,證明這個(gè)選項(xiàng)是一刀切的解決所有的用戶都能限制在家目錄中
我們可以通過(guò)更改vsftpd.conf文件,加入如下的一行
chroot_local_user=YES
改完配制文件,不要忘記重啟vsFTPd服務(wù)器;
8.11、如何讓綁定IP到vsFTPd?
如何讓綁定IP到vsFTPd?也就是說(shuō),如何讓用戶只能通過(guò)某個(gè)IP來(lái)訪問(wèn)FTP。其實(shí)這個(gè)功能很有意思。如果綁定的是內(nèi)網(wǎng)的IP,外部是沒(méi)有辦法訪問(wèn)的。如果綁定的是對(duì)外服務(wù)的IP,內(nèi)網(wǎng)也只能通過(guò)對(duì)外服務(wù)的IP來(lái)訪問(wèn)FTP
在vsftpd.conf中加一行,以我的局域網(wǎng)為例,請(qǐng)看第一帖中的操作環(huán)境,這樣外網(wǎng)就不能訪問(wèn)我的FTP了,內(nèi)網(wǎng)也可能通過(guò)192.168.0.2來(lái)訪問(wèn)FTP;
listen_address=192.168.0.2
8.11、如何讓匿名用戶擁有刪除上傳文件的權(quán)限?
我們可以通過(guò)更改vsftpd.conf文件,加入如下的一行
anon_other_write_enable=yes
[摘自]http://www.linuxsir.org/main/?q=node/152
作者:北南南北,正在修訂之中 來(lái)自:LinuxSir.Org