Raspbian版本:
安装:
因为使用的是默认的pi用户,所以下面的命令都带着sudo。
- 安装Pure-FTP
sudo apt-get install pure-ftpd
2. 创建用户组ftpgroup,创建用户ftpuser,并指定组为ftpgroup,不能登录,没有家目录
sudo groupadd ftpgroup
sudo useradd ftpuser -g ftpgroup -s /sbin/nologin -d /dev/null
3. 为用户ftpuser创建一个FTP的文件夹,并让其能够访问(修改文件夹的属主为ftpuser,属组为ftpgroup)
sudo mkdir /home/pi/FTP
sudo chown -R ftpuser:ftpgroup /home/pi/FTP
4. 创建一个虚拟用户upload,并映射到ftpuser用户、ftpgroup组,家目录设置为/home/pi/FTP
sudo pure-pw useradd upload -u ftpuser -g ftpgroup -d /home/pi/FTP -m
该行命令执行之后会要求输入密码(两次)。-m 选项作用是将用户密码加入PDB数据库(/etc/pure-ftpd/pureftpd.pdb)中,不需要重启FTP。
多个虚拟账户能够映射到同一系统用户。
5. 为虚拟用户创建数据库
sudo pure-pw mkdb
该行命令会读取/etc/pure-ftpd/pureftpd.passwd,并生成/etc/pure-ftpd/pureftpd.pdb文件。在第四步中添加-m选项之后,这步可以省略。
6. 重启Pure-FTP
sudo service pure-ftpd restart
如果要修改账号的一些信息,例如修改家目录,可以执行命令:
sudo pure-pw usermod upload -d /data/web -m
同样,不需要重启。
需要注意的就是,虚拟账户要访问的目录一定需要其映射的系统账户也能够访问。
注:
我们登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。
匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。
本地用户登录:使用系统用户登录,在/etc/passwd中。
虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。
FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。
详情:https://github.com/xzycn/documentation/blob/master/remote-access/ftp.md