ftp服务搭建

ftp使用linux的用户信息,不靠谱

服务端

1.需要安装vsftpd服务
[root@nfs-31 ~]# yum -y install vsftpd
[root@nfs-31 ~]# rpm -qi vsftpd
Name        : vsftpd
Version     : 3.0.2
Release     : 29.el7_9
Architecture: x86_64
Install Date: Sat 31 Aug 2024 09:26:39 AM CST
Group       : System Environment/Daemons
Size        : 361349
License     : GPLv2 with exceptions
Signature   : RSA/SHA256, Fri 11 Jun 2021 11:06:15 PM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : vsftpd-3.0.2-29.el7_9.src.rpm
Build Date  : Thu 10 Jun 2021 12:15:50 AM CST
Build Host  : x86-02.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : https://security.appspot.com/vsftpd.html
Summary     : Very Secure Ftp Daemon
Description :
vsftpd is a Very Secure FTP daemon. It was written completely from
scratch.

#安装完成

2.修改ftp配置文件,设置用于共享的目录
2.1关闭所有的匿名用户功能,不安全
找出和匿名用户相关的配置参数
[root@nfs-31 ~]# rpm -ql vsftpd | grep '.conf$'
/etc/vsftpd/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf
[root@nfs-31 ~]# grep "anonymous_enable" /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
[root@nfs-31 ~]# sed -ri 's/^anonymous_enable=YES/#anonymous_enable=YES\nanonymous_enable=NO/' /etc/vsftpd/vsftpd.conf
[root@nfs-31 ~]# grep "anonymous_enable" /etc/vsftpd/vsftpd.conf
#anonymous_enable=YES
anonymous_enable=NO
2.2添加自定义的共享文件夹配置参数,笔记的解释,别写入linux中,写笔记上,否则可能会导致编码不识别,程序出错
直接在文件最低下,添加如下配置
# 配置解释
# local_root=/opt/ftp-dir/  指定本地用户的默认数据根目录 
# chroot_local_user=YES 禁锢本地用户的默认数据目录(禁止用户切换到其他目录)
# allow_writeable_chroot=YES 允许ftp用户登录后,可以创建数据

你只需要修改如下三个参数即可
# ftp用户,ops01登录ftp之后,只能看到/test_0224这个文件夹下的数据
[root@nfs-31 ~]# cat >> /etc/vsftpd/vsftpd.conf <<EOF
local_root=/opt/ftp-dir/
chroot_local_user=YES
allow_writeable_chroot=YES
EOF

3.创建linux用户(ftp使用linux的用户信息,不靠谱)
[root@nfs-31 ~]# useradd ops01
[root@nfs-31 ~]# echo "123456" | passwd --stdin ops01
Changing password for user ops01.
passwd: all authentication tokens updated successfully.

4.创建共享目录
[root@nfs-31 ~]# mkdir /opt/ftp-dir
[root@nfs-31 ~]# cd /opt/ftp-dir
[root@nfs-31 ftp-dir]# echo "123" > 1.txt
[root@nfs-31 ftp-dir]# ls
1.txt

5.更改共享目录权限
由于创建的目录在opt下,所有用户都有权限
如果没有对应权限,则无法访问共享目录
[root@nfs-31 opt]# chown -R ops01:ops01 ftp-dir/
[root@nfs-31 opt]# ll ftp-dir/
total 4
-rw-r--r-- 1 ops01 ops01 4 Aug 31 10:00 1.txt
[root@nfs-31 opt]# ll ftp-dir/1.txt
-rw-r--r-- 1 ops01 ops01 4 Aug 31 10:00 ftp-dir/1.txt

6.重启vsftpd服务
[root@nfs-31 ftp-dir]# systemctl restart vsftpd


客户端

[root@rsync-41 ~]# yum -y install ftp


#ftp remote_ip 可以访问远程服务器ftp
[root@rsync-41 ~]# ftp nfs-31
Connected to 172.16.1.31 (10.0.0.31).
220 (vsFTPd 3.0.2)
Name (nfs-31:root): ops01								#输入创建的用户名
331 Please specify the password.
Password:																#输入对应密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd																#由于禁止用户切换其他目录,只能看到/
257 "/"
ftp> ls																	#可以看到共享目录下的内容
227 Entering Passive Mode (10,0,0,31,48,33).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               4 Aug 31 02:00 1.txt
226 Directory send OK.


#测试上传下载功能
[root@rsync-41 ~]# ls
anaconda-ks.cfg  change_network.sh  host.ip
[root@rsync-41 ~]# pwd
/root
[root@rsync-41 ~]# ftp nfs-31
Connected to 172.16.1.31 (10.0.0.31).
220 (vsFTPd 3.0.2)
Name (nfs-31:root): ops01
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (10,0,0,31,176,238).
150 Here comes the directory listing.
-rw-r--r--    1 1000     1000            4 Aug 31 02:00 1.txt
226 Directory send OK.
ftp> get																							#下载用get,输入远程ftp服务器需要下载的文件名,不能修改目录,因为配置设置禁止用户切换目录
(remote-file) 1.txt
(local-file) 2.txt																		#下载到本地名
local: 2.txt remote: 1.txt
227 Entering Passive Mode (10,0,0,31,63,251).
150 Opening BINARY mode data connection for 1.txt (4 bytes).
226 Transfer complete.
4 bytes received in 4e-05 secs (100.00 Kbytes/sec)
ftp> put																							#上传用put,可以输入本地文件的路径及文件名
(local-file) /root/host.ip
(remote-file) host.ip.bak															#上传到远程ftp服务器文件名
local: /root/host.ip remote: host.ip.bak
227 Entering Passive Mode (10,0,0,31,206,108).
150 Ok to send data.
226 Transfer complete.
744 bytes sent in 0.00975 secs (76.29 Kbytes/sec)
ftp> exit
221 Goodbye.
[root@rsync-41 ~]# ls
2.txt  anaconda-ks.cfg  change_network.sh  host.ip

windows访问ftp

1.通过cmd终端

2.通过文件资源管理器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值