昨天看到有朋友說用tar包安裝的vsftp不能用本地用戶登錄,感覺十分詫異。但自己也僅做過rpm的,所以沒有發言權。今天在自己機器上用tar包成功安裝并配置了一個vsftp,現在把我的過程和大家說一下,希望對大家有所幫助!
一、安裝
1、下載最新的穩定版vsftpd-1.2.1.tar.gz
2、卸載原有的rpm的vsftpd
rpm-evsftpd
3、tarxvzfvsftpd-1.2.1.tar.gz
4、cdvsftpd-1.2.1
5、make
6、useraddnobody
7、mkdir/usr/share/empty
8、mkdir/var/ftp
9、useradd-d/var/ftpftp
10、chownroot.root/var/ftp
11、chmodog-w/var/ftp
說明:如果你象我一樣原來有rpm的vsftp,只是卸載了,可以省略6-11步,如果原來沒有安裝vsftp,請按部就班。
12、makeinstall
13、vi/etc/xinetd.d/vsftpd
把disable=yes改成no,保存退出。然后servicexinetdrestart,OK!新裝的vsftp已經可以工作了!
說明:默認安裝的vsftpd是以xinetd的方式啟動的。你需要上述操作,一會兒,我們再來講把它改成獨立啟動的服務。
14、ftp127.0.0.1
輸入用戶名ftp,密碼直接回車,OK!已經可以連接了!輸入quit退出。然后重新ftp127.0.0.1,輸入本地用戶和密碼,卻提示loginfaild!why?原來少一個本地用戶認證的pam文件。
15、cpRedHat/vsftpd.pam/etc/pam.d/ftp(注意,沒有這一步將不能使用本地用戶登錄?。?/p>
16、cpvsftpd.conf/etc/vsftpd.conf(現在,默認還是只能匿名用戶登錄)
17、vi/etc/vsftpd.conf
把anonmous_enable=YES改成NO(禁掉匿名鏈接,不安全)
把local_enable=YES前的注釋去掉(打開本地用戶連接的權限)
把write_enable=YES前的注釋去掉(打開本地用戶的寫權限)
把local_umask=022前的注釋去掉
servicexinetdrestart
18、再次測試
ftp127.0.0.1
使用ftp用戶空密碼登錄,將出現loginfaild
使用本地用戶登錄,OK!已經成功了!上傳文件,也OK![/list:u:93f3c4a2db]
這樣是不是就完事兒了?不是,做一個FTP,我們通常還需要一些特殊要求:比如一個用戶我只允許他下載,不允許他上傳;另一個用戶可以下載也可以上傳,但是他不能刪除文件,不能給文件改名;另外,我還需要我的FTP使用非常規的端口,限制下載的速度,還需要一個管理員用戶。那怎么辦?請看下面的部分!