要在 CentOS 7 上使用 vsftpd 限制用户目录,请按照以下步骤操作:
sudo yum install vsftpd
sudo yum install vsftpd-mysql
sudo mysql -u root -p
在 MySQL 提示符下,执行以下命令:
CREATE DATABASE ftpusers;
CREATE USER 'ftpuser'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON ftpusers.* TO 'ftpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
将 your_password
替换为您想要设置的密码。
sudo useradd -m ftpuser -d /home/ftpuser -s /sbin/nologin
将 /home/ftpuser
替换为您想要设置的目录路径。
sudo mysql -u root -p ftpusers -e "INSERT INTO users (username, password, homedir, shell) VALUES ('ftpuser', 'your_password', '/home/ftpuser', '/sbin/nologin');"
将 your_password
替换为您在第 2 步中设置的密码。
/etc/vsftpd/vsftpd.conf
文件,取消以下行的注释,并填写正确的数据库连接信息:mysql_enable=YES
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
/etc/vsftpd/user_list
文件中添加允许和拒绝的用户。如果文件不存在,请创建一个。使用以下命令添加用户:sudo echo "ftpuser" >> /etc/vsftpd/user_list
sudo chmod 644 /etc/vsftpd/user_list
如果您想要拒绝某个用户访问 FTP 服务器,只需在 user_list
文件中添加该用户的用户名,无需添加密码。
sudo systemctl restart vsftpd
现在,您已经成功配置了 CentOS 7 上的 vsftpd,限制了用户目录。只有 ftpuser
可以访问其主目录(在本例中为 /home/ftpuser
),并且无法访问其他用户的目录或系统目录。