一、安装并配置vsftpd
在Linux中,可供我们选择的FTP服务器种类众多。但如果我们想在树莓派上 搭建一个安全、高性能且稳定性好的FTP服务器,那么就非vsftpd莫属了。Vsftpd 的全称是Very Secure FTP Daemon(非常安全的FTP进程),是一个基于GPL发布的类UNIX类操作系统上运行的FTP服务器,可以运行在Linux、BSD、Solaris、 HP-UX以及Irix等系统上面。同时,vsftpd也支持很多其他传统的FTP服务器不支持的良好特性,用八个字概括其特点就是“小巧轻快,安全易用”,十分合树莓派的胃口。
pi@raspberrypi:~ $ sudo apt-get install vsftpd
备份默认的配置文件:
pi@raspberrypi:~ $ cd /etc/
pi@raspberrypi:/etc $ sudo mv vsftpd.conf vsftpd.conf.orig
使用vi命令编辑新的FTP配置文件如下,该配置文件使能了本地用户登陆同时也使能匿名账号免密登陆,并指定默认的登陆路径为 /srv/ftp。
pi@raspberrypi:/etc $ sudo vi vsftpd.conf
anonymous_enable=YES
anon_mkdir_write_enable=NO
no_anon_password=YES
chown_uploads=YES
chown_username=pi
delete_failed_uploads=YES
local_enable=YES
local_root=/srv/ftp
allow_writeable_chroot=YES
anon_root=/srv/ftp/
write_enable=YES
local_umask=022
listen=YES
listen_ipv6=NO
listen_port=21
ftpd_banner=Welcome to LingYun IoT system Lab. FTP service.
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
#是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户不能访问ftp根目录以外的目录,当然要限制啦
chroot_local_user=YES
pam_service_name=vsftpd
#是否启动userlist为通过模式,YES的话只有存在于userlist文件中的用户才能登录ftp(可以理解为userlist是一个白名单),
# NO的话,白名单失效,和下面一个参数配合使用
userlist_enable=YES
#是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),NO表示黑名单失效,我们已经让
#userlist作为一个白名单,所以无需使用黑名单功能
userlist_deny=NO
#指定哪个文件作为userlist文件,我们稍后编辑这个文件
userlist_file=/etc/vsftpd.userlist
创建 vsftpd.userlist文件,该文件下指定允许登录的帐号:
pi@raspberrypi:/etc $ sudo vim vsftpd.userlist
anonymous
pi
把FTP根目录给相应用户和默认权限并创建空的测试文件,注意匿名用户(anonymous)也在该路径下,所以该目录不能给777的权限,否则匿名用户不能登录:
pi@raspberrypi:~ $ sudo chown pi.pi /srv/ftp/
pi@raspberrypi:~ $ sudo chmod 755 /srv/ftp/
pi@raspberrypi:~ $ touch /srv/ftp/raspberry_ftp
二、启动和测试
我们可以使用 service 命令重启vsftpd服务,启动后可以使用netstat命令查看vsftpd是否正常启动并正常监听FTP的21号端口:
pi@raspberrypi:/etc $ sudo service vsftpd restart
pi@raspberrypi:/etc $ sudo netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 5607/vsftpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 518/sshd
tcp6 0 0 :::22 :::* LISTEN 518/sshd
如果这里看不到vsftp的运行,则可能是vsftpd的配置问题,具体可以查看vsftpd的启动运行日志文件 /var/log/syslog 。也可以使用systemctl命令查看或重启:
pi@raspberrypi:/etc $ sudo systemctl status vsftpd.service
pi@raspberrypi:/etc $ sudo systemctl restart vsftpd.service
如果一切正常,我们就可以在浏览器上输入FTP站点地址匿名登录访问,FTP访问的地址格式为: ftp://树莓派IP, 如 ftp://192.168.2.20/
在之前的配置文件中,我们限定了匿名帐号是不能创建、上传、删除文件的,但可以使用本地用户登录后实现这些功能,这时候就可以使用FTP客户端软件flashfxp来使用客户端软件登录操作,如下图所示:
三、多用户管理配置
有时我们需要FTP支持多个帐号登录,而不同的帐号访问不同的路径。这时可以修改vsfptd的配置文件,需要在配置文件里添加一行 user_config_dir=/etc/vsftpd/userconfig , 即:
pi@raspberrypi:~ $ vim /etc/vsftpd.conf
anonymous_enable=YES
anon_mkdir_write_enable=NO
no_anon_password=YES
chown_uploads=YES
chown_username=pi
delete_failed_uploads=YES
local_enable=YES
local_root=/srv/ftp
allow_writeable_chroot=YES
anon_root=/srv/ftp/
write_enable=YES
local_umask=022
listen=YES
listen_ipv6=NO
listen_port=21
ftpd_banner=Welcome to LingYun IoT system Lab. FTP service.
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
#是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户不能访问ftp根目录以外的目录,当然要限制啦
chroot_local_user=YES
pam_service_name=vsftpd
#是否启动userlist为通过模式,YES的话只有存在于userlist文件中的用户才能登录ftp(可以理解为userlist是一个白名单),
# NO的话,白名单失效,和下面一个参数配合使用
userlist_enable=YES
#是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),NO表示黑名单失效,我们已经让
#userlist作为一个白名单,所以无需使用黑名单功能
userlist_deny=NO
#指定哪个文件作为userlist文件,我们稍后编辑这个文件
userlist_file=/etc/vsftpd.userlist
user_config_dir=/etc/vsftpd/userconfig
创建不同用户登录管理路径 /etc/vsftpd/userconfig 并对相应的用户进行配置:
pi@raspberrypi:~ $ sudo mkdir -p /etc/vsftpd/userconfig
pi@raspberrypi:~ $ cd /etc/vsftpd/userconfig/
pi@raspberrypi:/etc/vsftpd/userconfig $ sudo vim pi
local_root=/srv/pi
pi@raspberrypi:/etc/vsftpd/userconfig $ sudo vim guowenxue
local_root=/srv/guowenxue
创建不同用户登录的文件夹:
pi@raspberrypi:/etc/vsftpd/userconfig $ sudo mkdir -p /srv/guowenxue/
pi@raspberrypi:/etc/vsftpd/userconfig $ sudo mkdir -p /srv/pi
修改vsftpd.userlist 文件,运行添加的相应用户登录:
pi@raspberrypi:/etc $ sudo vim vsftpd.userlist
anonymous
pi
guowenxue
重启服务器生效,这时使用不同的用户登录会到不同的系统路径下,这样就可以做相应的权限管理:
pi@raspberrypi:/etc/vsftpd/userconfig $ sudo service vsftpd restart
本文来源于:树莓派上搭建FTP服务器-变化吧门户
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧门户观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。
- 赞助本站
- 微信扫一扫
-
- 加入Q群
- QQ扫一扫
-
评论