一般如果有網絡ubuntu直接apt-get install 安裝vsftpd服務即可。
沒網絡只能下好vsftpd的tar包自己安裝配置。
1. 解壓
tar -xvf vsftpd-3.0.2.tar.gz //解壓
cd vsftpd-3.0.2 //進入解壓后的目錄
2. 提供安裝vsftpd服務的前提條件(根據上面more INSTALL的安裝說明)
//需添加一個nobody用戶。如果已有nobody用戶,則不需要添加。可以用命令 cat /etc/passwd | grep nobody 來查看
useradd nobody
mkdir /usr/share/empty //vsftpd服務器需要一個empty的空目錄放在/usr/share/下。如果存在就不需要了
如果需要開啟匿名用戶訪問,需要做以下幾步:
mkdir /var/ftp //創建匿名用戶使用的目錄
//創建ftp用戶並指定家目錄為/var/ftp,如果創建提示:user ftp exists(FTP用戶存在)就表示此用戶已經存在。
useradd -d /var/ftp ftp
3. 編譯安裝
make //編譯二進制文件
make install //編譯完后進行安裝
Q1: 在執行make時出現了問題:
sysdeputil.o: In function `vsf_sysdep_check_auth':
sysdeputil.c:(.text+0x109): undefined reference to `crypt'
sysdeputil.c:(.text+0x13a): undefined reference to `crypt'
collect2: ld 返回 1
make: *** [vsftpd] 錯誤 1
A1:
vi Makefile
LIBS = `./vsf_findlibs.sh` # 在此行末尾增加 -lcrypt 變成
LIBS = `./vsf_findlibs.sh` -lcrypt
Q2:
install: cannot create regular file `/usr/local/man/man8/vsftpd.8': No such file or directory
install: cannot create regular file `/usr/local/man/man5/vsftpd.conf.5': No such file or directory
make: *** [install] Error 1
A2:
mkdir /usr/local/man/man5
mkdir /usr/local/man/man8
4. 進行配置
cp vsftpd.conf /etc/ //將默認配置文件拷貝到/etc
cp RedHat/vsftpd.pam /etc/pam.d/vsftpd //為了讓vsftpd支持本地用戶登陸,將身份認證模塊文件拷貝到/etc/pam.d
vi /etc/vsftpd.conf
//進入vsftpd.conf進行配置如下
1. listen=yes //vsftpd工作在standalone模式
2. anonymous_enable=yes //允許匿名用戶登陸
3. local_enable=yes //允許本地用戶登陸
4. pam_service_name=vsftpd //使用PAM認證
/* vsftpd有兩種工作模式:standalone和xinetd守護進程模式,第1行listen=yes就是讓其工作在standalone模式下
* 此種模式每次修改配置文件必須重啟vsftpd服務才會生效*/
cp vsftpd.conf.5 /usr/local/man/man5
cp vsftpd.8 /usr/local/man/man8
/usr/local/sbin/vsftpd & //后台啟動vsftp
5. 關閉ftp服務
killall vsftpd //或是 pkill vsftpd
pgrep vsftpd //查看vsftpd服務器是否已經關閉
開機自啟動
用vi打開etc/rc.local在里面加入/usr/local/sbin/vsftpd & 即可。