一 新建本地用户
1 [[email protected] ftp]# useradd ftpuser #用于登陆ftp的用户 2 [[email protected] ftp]# passwd ftpuser 3 Changing password for user ftpuser. 4 New password: 5 Retype new password: 6 passwd: all authentication tokens updated successfully.
二 本地用户配置项
2.1 基础配置
1 local_enable=YES #允许本地用户登陆 2 write_enable=YES #允许本地用户上传 3 local_umask=022 #设置上传的默认文件权限
2.2 安全选配
1 chroot_local_user=YES #开启用户目录限制,把所有用户都限制在用户主目录中 2 chroot_list_enable=YES #开启允许访问任何目录的功能 3 chroot_list_file=/etc/vsftpd/chrot_list #允许访问任何目录的用户依据文件保存位置
三 重启ftp服务
1 [[email protected] ~]# service restart vsftpd #Centos6系列 2 [[email protected] ~]# systemctl restart vsftpd #Centos7系列
四 测试登陆
注意:本地用户登陆后默认的主目录为该用户的家目录:/home/【用户名】
1 E:\Temp>ftp 192.168.10.10 2 连接到 192.168.10.10。 3 220 (vsFTPd 3.0.2) 4 用户(192.168.10.10:(none)): ftpuser 5 331 Please specify the password. 6 密码: 7 230 Login successful. 8 ftp> pwd 9 257 "/home/ftpuser"
五 测试上传及下载
5.1 上传测试
1 ftp> put ftpuser_upload.txt #上传至服务端 2 200 PORT command successful. Consider using PASV. 3 150 Ok to send data. 4 226 Transfer complete.
5.2 下载测试
1 [[email protected] ftp]# cd /home/ftpuser/ 2 [[email protected] ftpuser]# touch ftpuser_down.txt #新建用于测试的文件 3 ftp> get ftpuser_down.txt #下载至本地 4 200 PORT command successful. Consider using PASV. 5 150 Opening BINARY mode data connection for ftpdown.txt (0 bytes). 6 226 Transfer complete.
六 修改主目录配置
注意:本地用户登陆后默认的主目录为该用户的家目录:/home/【用户名】
6.1 添加配置项
1 local_root=/tmp/ftpuser #选配:设置所有本地用户的FTP根目录,但此配置无法区分不同用户 2 local_max_rate=0 #选配:限制最大传输速率(字节/秒)
6.2 查看修改后的目录权限
1 [[email protected] ~]# ll -d /tmp/ftpuser 2 drwxr-xr-x. 2 root root 6 Aug 28 19:39 /tmp/ftpuser/
6.3 新建ftp用户组
1 [[email protected] ~]# groupadd ftpgroup #创建ftp用户组 2 [[email protected] ~]# gpasswd -a ftpuser ftpgroup #将ftpuser添加到组
6.4 修改文件所属组
1 [[email protected] ~]# chown root:ftpgroup /tmp/ftpuser/ 2 #将/tmp/ftpuser/目录所属组改为ftpgroup 3 [[email protected] ~]# chmod 775 /tmp/ftpuser/ #修改权限为775,使所属组具备可读写执行权限 4 [[email protected] ~]# ls -ld /tmp/ftpuser/ #查看/tmp/ftpuser/目录权限 5 drwxrwxr-x. 2 root ftpgroup 21 Aug 28 19:42 /tmp/ftpuser/
注意:
1:强烈不建议将主目录中其他人权限改为可读写且执行。
2:同时也不建议将/tmp/ftpuser主目录所属人改为ftpuser(会报错)。
6.5 测试上传及下载
1 E:\Temp>ftp 192.168.10.10 2 连接到 192.168.10.10。 3 220 (vsFTPd 3.0.2) 4 用户(192.168.10.10:(none)): ftpuser 5 331 Please specify the password. 6 密码: 7 230 Login successful. 8 ftp> pwd #查看当前目录(不再是默认目录) 9 257 "/tmp/ftpuser" 10 ftp> get down.txt #下载文件 11 200 PORT command successful. Consider using PASV. 12 150 Opening BINARY mode data connection for down.txt (0 bytes). 13 226 Transfer complete. 14 ftp> put upload.txt #上传文件 15 200 PORT command successful. Consider using PASV. 16 150 Ok to send data. 17 226 Transfer complete.
七 总结
- 1 默认上传目录建议为:/home/【用户名】。
- 2 如允许上传,服务权限和系统目录权限必须同时具备。
- 3 本地用户访问传输的密码为明文,存在安全隐患。
- 4 本地用户连接方式,无论是否采用默认的主目录(/home/【用户名】)还是自定义的主目录(/tmp/ftpuser)
- 都能通过cd切换到其他任意目录,从而下载任意文件。因此chroot_local_user=YES必须限制。
- 5 可将允许随意切换目录的用户写入/etc/vsftpd/chrot_list,从而针对特定用户限制主目录。
原文地址:https://www.cnblogs.com/itzgr/p/9890853.html
时间: 2024-10-23 03:43:47