vsftp下载 目前是最新的3.0.3版本——vsftpd-3.0.3.tar.gz 拷贝到Linux下解压,进入源码目录
vim MakeFile
make
编译完成之后,我们只需要两个文件vsftpd和vsftpd.conf
chmod +x vsftpd
cp vsftpd /bin
cp vsftpd.conf /etc
vim /etc/vsftpd.conf
anonymous_enable=YES local_enable=NO write_enable=YES anon_upload_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES listen=YES
adduser nobody
mkdir -p /usr/share/empty/
mkdir -p /var/ftp/
adduser -h /var/ftp ftp
FTP默认需要一个nobody用户 FTP默认需要一个empty目录 FTP匿名模式默认需要一个FTP用户 -h 限定ftp用户的工作目录为/var/ftp 注意:一旦限定了ftp用户的工作目录,该目录不能具有写权限,否则会报错,这个后面会说明。比如上面的/var/ftp,ftp目录不能具有写权限。chmod a-w /var/ftp去除用户主目录的写权限
anonymous_enable=NO local_enable=YES write_enable=YES listen=YES
adduser nobody
mkdir -p /usr/share/empty/
FTP默认需要一个nobody用户 FTP默认需要一个empty目录 这里没有指定nobody用户的工作目录,它默认为/home/nobody,可以在/etc/passwd 里面查看
vsftpd &
注意后面一定要加上&,将FTP服务放到后台运行,否则它是会阻塞控制台的。
匿名模式下,用户名为anonymous,密码输入1~65536之间任意数字即可,ftp不对密码字段作检查,这也就是匿名模式的由来。
浏览器地址栏输入ftp://192.168.0.100/ 改为你的IP
匿名模式下是没有写的权限。
为了方便测试,我们新建一个vsftp的账户,账户的主目录设置为根目录
adduser vsftp -h /
浏览器地址栏输入下面的地址:(账号vsftp ,密码add账户的时候会设置)
ftp://192.168.0.100/
此时,若用匿名模式是登陆不上去的。
出现的这个警告,是因为没有移植并使用libcap所导致的,但不影响使用。
配置文件在调用默认匿名用户anonymous时会去找ftp这个系统用户,但是ftp这个系统用户又不存在(可能被删除了) 找到: anonymous_enable=YES 修改为: anonymous_enable=NO 重新启动vsftpd使配置生效
匿名登陆和本地用户登陆都被禁止了。开启其中一个即可。 anonymous_enable=NO local_enable=YES //禁止匿名登陆 使能本地用户登陆
从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
没有添加nobody账户,这个是FTP服务必须的账户
/etc/vsftpd.conf 中修改listen=yes 使用独立模式