Linux_FTP

1.ftp的基础知识

ftp是一种古老的数据传输工具,也是一个明文传输的协议。按照用户登录方式。可以分为
1.实体用户登录(real user)
2.访客(guest)
3.匿名用户(anonymous)

ftp工作时有两个端口在使用,分别是20,21端口。
命令传输通道ftp(20端口)
数据传输通道ftp-datta(21端口)

ftp的连接过程如下。
1.先是服务器端在21端口监听,等待客户端的连接
2.客户端发起连接,建立命令通道连接后告诉服务器端的客户端的数据端口号A,并等待服务器端的数据端口21和自己的端口A相连
3.由服务器端的21端口发起连接请求。连接客户端的A端口。

注意:如果客户端生活在防火墙,NAT服务器后面的话就很有可能连接失败,需要特别的设置。(如PASV)

2.安装FTP服务器。

准备服务

配置yum源 关闭selinux 配置防火墙然后reboot

可以使用下面的命令看下ftp被防火墙放过了吗


安装ftp服务器vsftpd和客户端lftpd(用来测试服务器)





测试服务

3.vsftpd.conf配置文件的参数

在/etc/vsftpd/vsftpd.conf下填写一些参数。让用户不局限于匿名用户,可以上传,下载限速,最大连接数等等配置都在这里。
dirmessage_enable=YES    当用户进入目录后的出现的内容
message_file=.message      内容在这个文件内

anonymous_enable=YES|NO        ##匿名用户登陆限制

重启服务后可以发现匿名登陆登陆失败了




write_enable=YES   客户端可以写
anon_upload_enable=YES  匿名用户可以上传
anon_mkdir_write_enable=YES 匿名用户可以新建目录

xferlog_enable=YES  客户端的行为会被记录到服务器端的日志系统中

pasv_enable=YES   允许被动式连接

chroot_local_user=YES   给登录的用户根切换(就是不能让登录的用户进根或其他目录里
chroot_list_enable=YES  部分用户被根切换开启
chroot_list_file=/etc/vsftpd/chroot_list 这个文件内的用户将被根切换

或者以上参数都不要。直接chroot_local_user=YES,禁锢所有用户的家目录
userlist_enable=YES  不受欢迎用户列表使能,这个列表和vsftpd.conf在一个目录中
anon_max_rate=0    限制匿名用户的传输速率,0为不限制
<匿名用户上传>
vim /etc/vsftpd/vsftpd.conf


anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub

<匿名用户下载>
anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载

<匿名用户删除>
anon_other_write_enable=YES|NO

<匿名用户建立目录>
anon_mkdir_write_enable=YES|NO

<匿名用户家目录修改>
anon_root=/direcotry

#<匿名用户上传文件默认权限修改>
anon_umask=xxx

#<匿名用户使用的用户身份修改>
chown_uploads=YES
chown_username=student


#<最大上传速率>
anon_max_rate=102400


#<最大链接数>
max_clients=2

4.虚拟用户创建和相关配置

创建虚拟帐号身份

vim /etc/vsftpd/ftpuser    ##文件名称任意       (奇数行为用户名,偶数行为密码)

db_load -T -t hash -f /etc/vsftpd/ftpuser ftpuser.db       加密上述用户列表


在/etc/pam.d/ckvsftpd下填写这两句话


vim /etc/vsftpd/vsftpd.conf 编辑配置文件     新加128-129行   修改125=后面文件名称为自己刚刚创建文件名称


虚拟帐号身份指定

guest_username=ftp

虚拟帐号家目录独立设定      添加130-131行


建立虚拟用户家目录,修改权限


mkdir /vuserdir/ftpuser{1..3} -p
touch /vuserdir/ftpuser1/user1file
touch /vuserdir/ftpuser2/user2file
touch /vuserdir/ftpuser3/user3file
mkdir /vuserdir/ftpuser{1..3}/pub
chmod 777 /vuserdir/ftpuser{1..3}/pub

这样我们就可以看到我们用刚刚创建的三个虚拟用户成功登陆ftp服务而且每个用户登陆的目录都不一样



虚拟帐号配置独立

配置文件中输入第132行

mkdir -p /etc/vsftpd/vuserconf

vim /etc/vsftpd/userconf/ftpuser1

在此文件中设定配置文件中的所有参数,此文件的优先级高









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux C FTP是一种在Linux操作系统下使用C语言开发的FTP(File Transfer Protocol,文件传输协议)客户端程序。它可以通过FTP协议在网络上进行文件的上传和下载。 Linux C FTP的实现主要涉及以下几个方面:socket编程、命令解析和响应处理、文件传输。 首先,Linux C FTP利用socket编程来建立与FTP服务器的连接,通过socket套接字进行数据的传输和通信。 其次,命令解析和响应处理是FTP客户端程序的关键。用户可以通过输入指令来进行各种操作,如登录、查看文件列表、上传和下载文件等。Linux C FTP通过解析用户的输入指令,并根据指令向FTP服务器发送请求。同时,它还能够接收FTP服务器返回的响应信息,并进行相应的处理和显示。 最后,文件传输是Linux C FTP的核心功能之一。通过FTP协议,可以实现文件在客户端和服务器之间的相互传输。用户可以选择上传文件到服务器或从服务器下载文件到本地。在文件传输过程中,Linux C FTP需要处理数据的分块、校验和传输中断等问题,以保证文件的完整性和可靠性。 总结来说,Linux C FTP是一种基于Linux操作系统的FTP客户端程序,通过socket编程实现与FTP服务器的连接和通信,通过命令解析和响应处理实现用户指令的解析和处理,通过文件传输实现文件的上传和下载。它为用户提供了方便快捷的文件传输功能,是网络上传输文件的重要工具之一。 ### 回答2: Linux C FTP是指在Linux系统下使用C语言编写的FTP(File Transfer Protocol,文件传输协议)客户端。FTP是一种用于在网络上传输文件的协议,它允许用户通过客户端与远程服务器进行文件的上传、下载和管理。 使用C语言编写Linux FTP客户端,可以通过套接字(Socket)来实现与服务器的通信。通过建立与远程服务器的连接,并发送相应的FTP命令来实现文件传输功能。 首先,客户端需要通过socket函数创建一个套接字,并指定远程服务器的IP地址和FTP服务器的端口号。然后,使用connect函数将套接字连接到服务器。 连接建立后,客户端可以使用send函数向服务器发送FTP命令,例如发送"USER"命令进行登录验证,发送"PASS"命令输入登录密码。利用recv函数接收服务器返回的响应信息,判断登录是否成功。 登录成功后,客户端可以发送"RETR"命令下载文件,指定要下载的文件名和保存的本地路径;发送"STOR"命令上传文件,指定要上传的本地文件名和服务器保存的路径。客户端还可以发送"LIST"命令获取服务器上的文件列表。 发送完FTP命令后,客户端通过recv函数接收服务器返回的响应信息,根据返回的响应状态码进行相应的处理。例如,状态码为"150"表示服务器准备传输文件,客户端可以通过recv函数接收数据并将数据写入指定的本地文件。 当文件传输结束后,客户端可以使用"QUIT"命令关闭连接并退出。 以上是简单介绍了使用Linux C语言编写FTP客户端的基本步骤。在实际应用中,还需要处理其他一些细节,比如错误处理、断点续传等,以提高文件传输的可靠性和效率。 ### 回答3: Linux C FTP是指在Linux系统下使用C语言编写的FTP客户端程序。FTP全称为File Transfer Protocol,是一种用于在网络上进行文件传输的标准协议。利用FTP,用户可以通过一个客户端程序连接到FTP服务器,进行上传和下载文件的操作。 Linux C FTP程序的编写需要使用C语言和Linux系统提供的相关库函数。首先,需要建立一个与FTP服务器的连接,可以使用socket函数创建一个套接字,并使用connect函数将套接字连接到服务器的IP地址和端口号。连接建立后,客户端需要与服务器进行握手和认证,通常通过用户输入用户名和密码进行身份验证。 在认证成功后,客户端可以发送FTP命令到服务器,包括获取文件列表、上传文件、下载文件等操作。这些FTP命令通过客户端发送给服务器进行处理。常用的FTP命令包括: - LIST:获取服务器上的文件列表 - RETR:从服务器下载文件 - STOR:上传文件到服务器 - DELE:删除服务器上的文件 - MKD:创建目录 - CWD:切换目录 - PWD:获取当前所在目录 客户端程序需要根据用户的操作,在C语言中编写相应的函数来执行对应的FTP命令。例如,下载文件可以使用recv函数接收服务器发来的文件数据,并使用write函数将数据写入到本地文件;上传文件则需要使用send函数将文件数据发送给服务器。 编写Linux C FTP程序,需要熟悉Linux系统的网络编程和FTP协议的相关知识。同时,还需要考虑到网络传输的安全性和稳定性等因素,例如可以使用SSL/TLS来加密数据传输,以及进行错误处理和异常处理,以提高程序的健壮性。 总之,Linux C FTP是一种在Linux系统下使用C语言编写的FTP客户端程序,通过与FTP服务器进行交互,实现文件的传输和管理。编写这样的程序需要了解Linux系统的网络编程和FTP协议的相关知识,并综合考虑程序的安全性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值