(2)配置 ftp 虚拟用户认证模式,虚拟用户 ftp1 和 ftp2 映射为 ftp,ftp1 登录 ftp 后的目录为/var/ftp/vdir/ftp1,可以上传下载, 禁止上传后缀名为 .docx 的文件;ftp2 登录 ftp 后的目录为 /var/ftp/vdir/ftp2,仅有下载权限
时间: 2023-11-26 21:04:42 浏览: 44
要配置 FTP 虚拟用户认证模式,并映射虚拟用户 `ftp1` 和 `ftp2` 为 `ftp` 用户,同时设置不同的目录和权限,可以按照以下步骤进行操作:
1. 安装 vsftpd 软件包(如果尚未安装):
```
sudo apt update
sudo apt install vsftpd
```
2. 创建虚拟用户数据库文件:
```
sudo touch /etc/vsftpd/virtual_users.db
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
```
3. 编辑虚拟用户配置文件:
```
sudo nano /etc/pam.d/vsftpd_virtual
```
4. 在文件中添加以下内容:
```
auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users
```
5. 保存并退出文件。
6. 创建虚拟用户配置文件:
```
sudo nano /etc/vsftpd/virtual_users.txt
```
7. 在文件中添加以下内容,将 `ftp1` 和 `ftp2` 映射为 `ftp` 用户,并设置不同的目录和权限:
```
ftp1
ftp
/var/ftp/vdir/ftp1
ftp2
ftp
/var/ftp/vdir/ftp2
```
8. 保存并退出文件。
9. 修改 vsftpd 配置文件:
```
sudo nano /etc/vsftpd.conf
```
10. 确保以下配置项的值如下:
```
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd_virtual
guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/var/ftp/vdir/$USER
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
```
11. 保存并退出文件。
12. 重启 vsftpd 服务:
```
sudo systemctl restart vsftpd
```
现在,你可以使用虚拟用户 `ftp1` 和 `ftp2` 连接到 FTP 服务器。`ftp1` 用户能够上传和下载文件,但禁止上传后缀名为 `.docx` 的文件。`ftp2` 用户仅有下载权限。他们分别登录后的目录为 `/var/ftp/vdir/ftp1` 和 `/var/ftp/vdir/ftp2`。
请注意,上述步骤假设你使用的是 Ubuntu 或基于 Ubuntu 的 Linux 发行版。如果你使用其他发行版,请根据需要调整命令和文件路径。