FTP服务器
用户可以使用FTP(文件传输协议)让树莓派和其他电脑互相传输文件。虽然Raspbian自带的程序sftp-server可以让有着特定权限的用户传输文件和目录,但是很多时候还是需要限制他们的文件读取权限的。本文将介绍如何使用Pure-FTP搭建一个FTP服务器:
安装Pure-FTPd
首先安装Pure-FTPd,在终端输入下面的命令:
sudo apt-get install pure-ftpd
基本设置
先新建一个名为ftpgroup的用户组,再新建一个名为ftpuser的用户,但是这个“用户”不可以登入系统,也不可以有自己的主目录。在终端输入以下命令:
groupadd ftpgroup;useradd ftpuser -g ftpgroup -s /sbin/nologin –d /dev/null
FTP目录,虚拟用户及虚拟用户组
假设需要新建一个名为FTP的目录。
sudo mkdir /home/pi/FTP
然后将所有者改为ftpuser,再改权限为755:
sudo chown -R ftpuser:ftpgroup /home/pi/FTP;sudo chmod -R 755 /home/pi/FTP;
再新建一个名为upload的虚拟用户,映射到ftpuser和ftpgroup去,将其主目录设定为/home/pi/FTP,再把密码存在Pure-FTPd的数据库中:
sudo pure-pw useradd upload -u ftpuser -g ftpgroup -d /home/pi/FTP -m
输入了这个命令之后,程序会提示设定该用户的密码,需要盲输。其后建立虚拟用户数据库,在终端输入:
sudo pure-pw mkdb
最后,也是最重要的,是指定校验密码方法的优先值,只需要为/etc/pure-ftpd/conf/PureDB在/etc/pure-ftpd/auth目录中建立一个软链,在软链的文件名前加一个足够小的数字就可以了,例如60。在终端输入:
ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/60puredb
重新启动Pure-FTPd:
sudo service pure-ftpd restart
这时可以使用FTP客户端,例如FileZilla,来测试服务器了。
更多的设置
Pure-FTPd的设置简单直观。管理员只需要在/etc/pure-ftpd/conf目录中建立一个文件,以选项名为文件名,再将设定内容写入文件中即可。例如,如果需要将用户锁定在其各自的根目录,只要在这个目录中新建一个名为ChrootEveryone的文件,再写入yes,就可以了。下面是一些基本的设置建议:
先在终端输入:
sudo nano /etc/pure-ftpd/conf/ChrootEveryone
再写入yes,按下Ctrl和X后,按Y,再按Enter,保存修改后退出。
同样地,继续:
新建一个名为NoAnonymous的文件,写入yes;
新建一个名为AnonymousCantUpload的文件,写入yes;
新建一个名为AnonymousCanCreateDirs的文件,写入no;
新建一个名为DisplayDotFiles的文件,写入no;
新建一个名为DontResolve的文件,写入yes;
新建一个名为ProhibitDotFilesRead的文件,写入yes;
新建一个名为ProhibitDotFilesWrite 的文件,写入yes;
新建一个名为FSCharset的文件,写入UTF-8;
……
再次重启pure-ftpd,使上面的设置生效。
sudo service pure-ftpd restart
想查询Pure-FTPd的其他信息和官方文档,请浏览Pure-FTPd的官方网站。
