PureFTPd 是一款轻量级、高效且安全的 FTP 服务器,它支持虚拟用户,可以通过数据库来控制用户的权限。下面将详细介绍如何配置 PureFTPd,支持多用户并控制他们的权限。
在大多数 Linux 发行版中,可以使用包管理器来安装 PureFTPd。在 Debian/Ubuntu 系统中,可以使用以下命令:
sudo apt-get update sudo apt-get install pure-ftpd-common pure-ftpd-mysql
PureFTPd 使用 MySQL 数据库来存储用户信息和权限,需要创建一个数据库和一个表来存储这些信息。
CREATE DATABASE ftp_db; USE ftp_db; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) NOT NULL, password VARCHAR(64) NOT NULL, dir VARCHAR(255) NOT NULL, uid INT NOT NULL, gid INT NOT NULL, status ENUM('active', 'inactive') NOT NULL DEFAULT 'active' );
编辑 /etc/pure-ftpd/pureftpd.passwd
文件,添加用户和密码,每一行应该包含一个用户名和加密后的密码,格式如下:
username:{crypt}password
例如:
user1:{crypt}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx user2:{crypt}yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
然后,编辑 /etc/pure-ftpd/db/pureftpd.pdb
文件,将数据库信息添加到文件中:
SQL database configuration SQL_BACKEND=MYSQL SQL_HOST=localhost SQL_USER=root SQL_PASS=password SQL_NAME=ftp_db SQL_PREFIX=pureftpd_
为了控制用户的权限,可以在 users
表中设置 uid
、gid
和 dir
字段。uid
和 gid
字段用于设置用户的文件系统权限,而 dir
字段用于设置用户的主目录。
例如,如果希望用户 user1
能够访问 /home/user1
目录,并且具有 1001
的用户 ID 和 1001
的组 ID,可以执行以下 SQL 命令:
INSERT INTO users (name, password, dir, uid, gid) VALUES ('user1', '{crypt}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', '/home/user1', 1001, 1001);
需要重启 PureFTPd 服务以使更改生效:
sudo systemctl restart pure-ftpd-mysql
现在,PureFTPd 已经配置好支持多用户,并且可以通过数据库来控制用户的权限了。
1. 如何在 PureFTPd 中设置用户的访问权限?
2. PureFTPd 使用什么数据库来存储用户信息和权限?
感谢您的观看,如果您有任何问题或建议,请在评论区留言,我们将随时为您解答。