您的位置:宽带测速网 > 网站建设 > centos7 vsftp如何限制用户目录

centos7 vsftp如何限制用户目录

2025-06-25 13:02来源:互联网 [ ]

要在 CentOS 7 上使用 vsftpd 限制用户目录,请按照以下步骤操作:

    首先,确保已经安装了 vsftpd 和相关依赖包。如果没有,请使用以下命令安装:
sudo yum install vsftpdsudo yum install vsftpd-mysql
    创建一个新的 MySQL 数据库和用户,用于存储 FTP 用户信息。使用以下命令创建数据库和用户:
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 替换为您想要设置的密码。

    创建一个新的系统用户,用于限制 FTP 用户目录。使用以下命令创建新用户:
sudo useradd -m ftpuser -d /home/ftpuser -s /sbin/nologin

/home/ftpuser 替换为您想要设置的目录路径。

    将新创建的系统用户添加到 MySQL 数据库中:
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 步中设置的密码。

    配置 vsftpd 以使用 MySQL 数据库。编辑 /etc/vsftpd/vsftpd.conf 文件,取消以下行的注释,并填写正确的数据库连接信息:
mysql_enable=YESlocal_enable=YESwrite_enable=YESchroot_local_user=YESallow_writeable_chroot=YES
    /etc/vsftpd/user_list 文件中添加允许和拒绝的用户。如果文件不存在,请创建一个。使用以下命令添加用户:
sudo echo "ftpuser" >> /etc/vsftpd/user_listsudo chmod 644 /etc/vsftpd/user_list

如果您想要拒绝某个用户访问 FTP 服务器,只需在 user_list 文件中添加该用户的用户名,无需添加密码。

    重启 vsftpd 服务以应用更改:
sudo systemctl restart vsftpd

现在,您已经成功配置了 CentOS 7 上的 vsftpd,限制了用户目录。只有 ftpuser 可以访问其主目录(在本例中为 /home/ftpuser),并且无法访问其他用户的目录或系统目录。