配置 ftp 虚拟用户认证模式,虚拟用户 ftp1 和 ftp2 映射为 ftp,ftp1 登录 ftp 后的目录为/var/ftp/vdir/ftp1,可以上传下载, 禁止上传后缀名为.docx 的文件;ftp2 登录 ftp 后的目录为 /var/ftp/vdir/ftp2,仅有下载权限。
时间: 2023-11-26 19:04:38 浏览: 39
好的,这是一个比较复杂的问题,需要分步骤来实现。首先需要确保已经安装了 vsftpd 软件包。
1. 配置 vsftpd.conf 文件
打开 /etc/vsftpd/vsftpd.conf 文件,找到以下配置项并修改:
```
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
user_sub_token=ftp
local_root=/var/ftp/vdir/$USER
```
这些配置项的含义如下:
- anonymous_enable=NO 禁止匿名访问
- local_enable=YES 允许本地用户登录
- write_enable=YES 允许上传和下载文件
- chroot_local_user=YES 将用户限制在其主目录中
- user_sub_token=ftp 将用户映射到 ftp 用户
- local_root=/var/ftp/vdir/$USER 用户的主目录
2. 创建虚拟用户
使用以下命令创建 ftp1 和 ftp2 虚拟用户:
```
sudo useradd -d /var/ftp/vdir/ftp1 -s /sbin/nologin ftp1
sudo useradd -d /var/ftp/vdir/ftp2 -s /sbin/nologin ftp2
```
3. 设置虚拟用户密码
使用以下命令为 ftp1 和 ftp2 用户设置密码:
```
sudo passwd ftp1
sudo passwd ftp2
```
4. 禁止上传 .docx 文件
打开 /etc/vsftpd/vsftpd.conf 文件,添加以下配置项:
```
user_config_dir=/etc/vsftpd/user_conf
```
为 ftp1 用户创建配置文件:
```
sudo mkdir /etc/vsftpd/user_conf
sudo nano /etc/vsftpd/user_conf/ftp1
```
添加以下配置项:
```
anon_upload_enable=NO
deny_file=*.docx
```
这些配置项的含义如下:
- anon_upload_enable=NO 禁止匿名用户上传文件
- deny_file=*.docx 禁止上传 .docx 文件
5. 限制 ftp2 用户权限
为 ftp2 用户创建配置文件:
```
sudo nano /etc/vsftpd/user_conf/ftp2
```
添加以下配置项:
```
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
```
这些配置项的含义如下:
- anon_upload_enable=NO 禁止匿名用户上传文件
- anon_mkdir_write_enable=NO 禁止匿名用户创建目录
- anon_other_write_enable=NO 禁止匿名用户修改或删除文件
6. 重启 vsftpd 服务
使用以下命令重启 vsftpd 服务:
```
sudo systemctl restart vsftpd
```
现在,你已经成功配置了 ftp 虚拟用户认证模式,并且 ftp1 和 ftp2 用户可以登录并访问其对应的目录,同时 ftp1 用户被禁止上传 .docx 文件,ftp2 用户被限制只能下载文件。