温馨提示×

centos7 vsftp如何限制用户目录

小樊
81
2025-01-01 14:03:52
栏目: 智能运维

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

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

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

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

  1. 将新创建的系统用户添加到 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 步中设置的密码。

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

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

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

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

0