FTP主被动模式:20端口传数据 21端口传指令
主动:server 去连接client 开放的端口
被动:slient去连接server开放的端口
ip 主机名 角色
192.168.88.69 server69 server
192.168.88.70 server70 master
服务端:
[root@localhost ~]# yum install -y vsftpd lftp
客户端:
[root@localhost ~]# yum install -y lftp
vsftpd 的核心配置文件:/etc/vsftpd/vsftpd.conf: FTP 服务器黑名单:/etc/vsftpd/ftpusers FTP 服务器黑名单:/etc/vsftpd/user_list 默认共享目录:/var/ftp/pub
服务端配置
[root@localhost ~]# systemctl start vsftpd [root@localhost ~]# systemctl enable vsftpd [root@localhost ~]# systemctl status vsftpd [root@localhost ~]# netstat -pantu | grep ftp tcp6 0 0 :::21 :::* LISTEN 2550/vsftpd [root@localhost ~]# cd /var/ftp/pub/ [root@localhost pub]# touch a.txt
实现匿名用户可以上传下载的功能并允许创建用户自己的目录
[root@localhost pub]# cd /etc/vsftpd/ [root@localhost vsftpd]# ls ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh [root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.bak [root@localhost vsftpd]# grep -v "#" vsftpd.conf.bak > vsftpd.conf [root@localhost vsftpd]# vim vsftpd.conf #往配置文件增加以下三条字段 anonymous_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES [root@localhost vsftpd]# chown -Rf ftp.ftp /var/ftp/pub [root@localhost vsftpd]# chmod -Rf 777 /var/ftp/pub [root@localhost vsftpd]# systemctl restart vsftpd 至此用户可以复制文件进来,可以新建文件夹,但是无法重命名和删除文件
实现匿名用户可以上传下载的功能并允许创建用户自己的目录,可以重命名和删除文件夹
[root@localhost vsftpd]# vim vsftpd.conf ###添加一下字段 anon_other_write_enable=YES [root@localhost vsftpd]# systemctl restart vsftpd 至此用户可以复制文件进来,可以新建文件夹并且可以重命名和删除文件
创建共享目录pekeka
[root@localhost vsftpd]# mkdir /var/ftp/pekeka [root@localhost vsftpd]# chown ftp.ftp /var/ftp/pekeka/ [root@localhost vsftpd]# vim vsftpd.conf ##注释那些信息,关闭匿名用户重命名和删除文件夹的权限 #anon_other_write_enable=YES anonymous_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES [root@localhost vsftpd]# systemctl restart vsftpd 至此用户可以复制文件进来,可以新建文件夹但是不可以在当前目录中重命名和删除文件
设置指定用户可以登录 FTP
指定指定用户pekeka1和pekeka2可以登录ftp并且根目录限制在web服务器的服务目录里面,不可以进去其他目录 [root@localhost vsftpd]# useradd -s /sbin/nologin pekeka1 [root@localhost vsftpd]# useradd -s /sbin/nologin pekeka2 [root@localhost vsftpd]# echo "123456" | passwd --stdin pekeka1 更改用户 pekeka1 的密码 。 passwd:所有的身份验证令牌已经成功更新。 [root@localhost vsftpd]# echo "123456" | passwd --stdin pekeka2 更改用户 pekeka2 的密码 。 passwd:所有的身份验证令牌已经成功更新。 [root@localhost vsftpd]# vim vsftpd.conf anon_other_write_enable=NO anonymous_enable=NO anon_upload_enable=YES anon_mkdir_write_enable=YES local_root=/var/www/html #本地用户的根目录为/var/www/html chroot_list_enable=YES #启用chroot 功能 chroot_list_file=/etc/vsftpd/chroot_list #设置锁定用户在根目录中的列表文件,此文件存放要锁定的用户名 allow_writeable_chroot=YES #允许锁定的用户有写的权限 [root@localhost vsftpd]# cat /etc/vsftpd/chroot_list pekeka1 pekeka2 [root@localhost vsftpd]# yum install -y httpd [root@localhost vsftpd]# chmod -Rf o+w /var/www/html/ [root@localhost vsftpd]# systemctl restart vsftpd 至此这两个用户可以对其根目录进行增加文件,删除修改重命名的操作
客户端用 lftp 登陆 FTP 查看情况:
[root@localhost ~]# lftp 192.168.88.69 -u pekeka1,123456 lftp pekeka1@192.168.88.69:~> ls drwxr-xr-x 2 1000 1000 6 Nov 28 07:58 新文件夹 lftp pekeka1@192.168.88.69:/> pwd ftp://pekeka1:123456@192.168.88.69/ lftp pekeka1@192.168.88.69:/> cd /var/ftp cd: Access failed: 550 Failed to change directory. (/var/ftp) lftp pekeka1@192.168.88.69:/> mkdir test mkdir 成功, 建立 `test' lftp pekeka1@192.168.88.69:/> ls drwxr-xr-x 2 1000 1000 6 Nov 28 08:01 test drwxr-xr-x 2 1000 1000 6 Nov 28 07:58 新文件夹