FTP 实名登录 虚拟用户登录
yum install vsftps -y二、启动服务
cp /etc/passwd /var/ftp/pub三、更改配置文件
service vsftpd start
打开浏览器输入ftp://192.168.4.103就可以看到 pub目录了 进入目录可以看到passwd文件
安装lftp客户端
[root@server05 pub]# yum install lftp -y
[root@server05 tmp]# lftp 192.168.4.103
lftp 192.168.4.103:~> ls
drwxr-xr-x 2 0 0 4096 Sep 17 11:21 pub
使用 get + 文件 便可以把文件下载到使用lftp登录前的目录下
[root@server05 /]# vim /etc/vsftpd/vsftpd.conf四、实名登录
将第27行的注释去掉 允许匿名用户上传
将第31行的注释去掉 允许匿名用户创建文件夹
重启服务
在/tmp 下创建一个abc 文件
[root@server05 /]# lftp 192.168.4.103
lftp 192.168.4.103:/> cd pub/
lftp 192.168.4.103:/pub> mkdir
Usage: mkdir [-p] files...发现不能建文件夹lftp 192.168.4.103:/pub> put /tmp/abc
put: Access failed: 553 Could not create file. (abc)
发现不能上传文件
[root@server05 tmp]# cd /var/ftp/
[root@server05 ftp]# ll
total 4
drwxr-xr-x. 2 root root 4096 Sep 17 04:21 pub
发现other用户的没有 写 权限
[root@server05 ftp]# chmod o+w pub/
重启vsftp 服务
[root@server05 /]# lftp 192.168.4.103
lftp 192.168.4.103:~> ls
drwxr-xrwx 2 0 0 4096 Sep 17 11:21 pub
lftp 192.168.4.103:/> cd pub/
lftp 192.168.4.103:/pub> put /tmp/abc
lftp 192.168.4.103:/pub> ls
-rw------- 1 14 50 0 Sep 17 11:52 abc
-rw-r--r-- 1 0 0 1734 Sep 17 11:21 passwd
此时文件上传了 如果还不可以 关闭防火墙:
iptables -F
setenforce 0
创建用户并指定家目录
[root@server05 /]# useradd -d /var/ftp/ftpusr ftpusr
给 ftpusr 设置密码
[root@server05 ftp]# echo "ftpusr" | passwd ftpusr --stdin
Changing password for user ftpusr.
passwd: all authentication tokens updated successfully.
以ftpusr的身份登录
[root@server05 ftp]# lftp ftp://192.168.4.103 -u ftpusr
Password:
lftp ftpusr@192.168.4.103:~>
lftp ftpusr@192.168.4.103:~> put /tmp/abc
lftp ftpusr@192.168.4.103:~> ls
-rw-r--r-- 1 502 502 0 Sep 17 12:07 abc
用浏览器访问ftp
ftp://192.168.4.103
可以打开 pub 不能打开ftpusr 说明匿名用户没有权限访问
[root@server05 ftp]# ll
total 8
drwx------. 4 ftpusr ftpusr 4096 Sep 17 05:07 ftpusr
drwxr-xrwx. 2 root root 4096 Sep 17 04:52 pub
----------------------------------------------------------------------------------------------------------------------------------------------------------------
注意点:
1、通过使用chroot使实名用户的活动范围限制在家目录:
更改配置文件中的:
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list还可以在chroot_list添加特殊的用户,不受活动范围限制
2、允许被动连接及设置监听的端口范围
pasv_enable=YES
pasv_min_port=65400
pasv_max_port=65449
3、关于selinux的设置:
在不关闭selinux的情况下实现上传方法:
setsebool -P allow_ftpd_full_access 1
使FTP有登录到ftp用户的家目录的权限:
setsebool -P ftp_home_dir 1
4、关于防火墙的设置:
-A INPUT -p tcp --dport 21 --sport 1024:65534 -j ACCEPT
-A INPUT -p tcp --dport 65400:65449 --sport 1024:65534 -j ACCEPT
五 虚拟用户登录
一、本地数据文件方式1. 添加虚拟用户口令文件[root@CentOS5 /]#vi /etc/vsftpd/vftpuser.txt添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。bobyuan #用户名123456 #密码markwang #用户名123456 #密码2. 生成虚拟用户口令认证文件将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件。首先查看系统有没有安装生成口令认证文件所需的软件db4-utils。[root@CentOS5 /]#rpm –qa |grep db4-utils下面使用db_load命令生成虚拟用户口令认证文件。[root@CentOS5 /]#db_load –T –t hash –f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db#纠结了半天不成功 最后成功之前执行了 chmod 600vftpuser.db 不知时候有关系3. 编辑vsftpd的PAM认证文件在/etc/pam.d目录下,新建文件 (这是最后成功时的方式 新建一个文件(如果系统是64位的 路径是 lib64。。。))[root@CentOS5 /]#vi /etc/pam.d/vsftpd.vuauth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuseraccount required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
4. 建立本地映射用户并设置宿主目录权限所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。[root@CentOS5 /]#useradd –d /home/vftpsite –s /sbin/nologin vftpuser[root@CentOS5 /]#chmod 700 /home/vftpsite5. 配置vsftpd.conf(设置虚拟用户配置项)[root@CentOS5 /]#vi /etc/vsftpd/vsftpd.confguest_enable=YES #开启虚拟用户guest_username=vftpuser #FTP虚拟用户对应的系统用户pam_service_name=vsftpd.vu#PAM认证文件
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
user_config_dir=/etc/vsftpd/vftpuser_conf #最后成功时 此目录下有无配置文件均可
virtual_use_local_privs=YES
6. 重启vsftpd服务[root@CentOS5 /]#service vsftpd restart
selinux iptables 等设置 同上
虚拟用户权限配置
vi admin
write_enable=yes
download_enable=yes
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_world_readable_only=no
~
vi upload 用户只有上传权限
local_root=/var/ftp/share
download_enable=no
anon_upload_enable=yes
anon_other_write_enable=no
anon_mkdir_write_enable=yes
anon_world_readable_only=no
1.virtual_use_local_privs参数当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。 当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。 当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。 当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。 当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY