一般如果有网络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 & 即可。