通过网络传输数据的手段
ftp的简介:
FTP的模型
-------- 命令连接 ---------
| Client | <-------------------> | Server |
| | | |
| | 数据连接 | |
| | <-------------------> | |
--------- ----------
1)命令连接(控制连接)
这个连接,始终是打开的。
客户端,通过这个连接,来发送命令。
2)数据连接
用来传输数据的。
数据连接,是按需打开的。
在传输数据时,才打开数据链接。
了解ftp服务器的“数据连接"的模式
1)主动模式
服务器主动连接客户端。
2)被动模式
客户端主动连接服务器。
FTP的服务器端程序
1) vsftpd
very secure ftp daemon
非常安全的ftp服务器。
2) proftpd
3) pureftpd
客户端ftp程序
1)命令行界面
ftp
lftp
2) 图形界面
gftpd
安装: yum install vsftpd
说明: vsftpd软件,包含了客户端ftp
vsftpd的主要程序:
1) /etc/vsftp 配置文件目录
2) /etc/init.d/vsftpd 服务程序的脚本
3) /usr/sbin/vsftpd 主程序
启动vsftpd
# /etc/init.d/vsftpd start
或
# service vsftpd start
设置为开机启动
# chkconfig vsftpd on
关闭防火墙(先关闭,用于测试)
在生产环境中,需要打开防火墙,再对指定端口开放。
# /etc/init.d/iptables stop
安装ftp客户端
# yum install ftp
说明:也可以直接安装服务器端的vsftpd
使用ftp客户端
# ftp ftp服务器端的IP地址
提示输入用户名和密码
用户名:
ftp或anonymous 表示使用“匿名用户”登录。
如果登录失败,需要检查服务器的vsftpd的配置文件
还可以输入其他系统用户,或普通用户。
vsftpd的配置文件
/etc/vsftpd/vsftpd.conf
anonymous_enable=YES
表示允许匿名用户登录,默认是不允许匿名用户登录。
local_enable=YES
表示是否允许系统用户和普通用户以ftp登录
write_enable=YES
是否允许系统用户和普通用户上传文件
anon_upload_enable=YES
是否允许匿名用户上传文件
anon_mkdir_write_enable=YES
是否允许匿名用户创建目录
dirmessage_enable=YES
当dirmessage_enable为YES时,通过ftp进入某个目录后,
就会自动的把该目录下的.message文件输出。
目的在于:自动提示。
xferlog_enable=YES
是否使用传输日志,如果为YES,则所有数据传输,都会被记录到传输日志文件中。
xferlog_file=….
用来指定传输日志的文件
chown_uploads=YES
是否允许改变文件上传后的属主。
疑问:设置为NO之后,数组被修改为文件上传者。
chown_username=
表示文件上传后,文件的所有者修改为谁
//待确认!
chroot_list_enable=YES 是否把chroot_list_file中指定的用户以ftp登录后,被限制在其家目录中访问。
而且把他的家目录显示为"/"目录。
chroot_list_file=
userlist_enable=YES
userlist_deny=NO
如果userlist_enable=YES,
那么,userlist_deny将生效:
如果userlist_deny=YES, 那么/etc/vsftpd/user_list文件中的用户名,将不能ftp登录
如果userlist_deny=NO, 那么/etc/vsftpd/user_list文件中的用户名, 可以ftp登录
使用ftp时,有两个当前目录:
1)客户端的当前目录
就是使用ftp登录之前的当前目录
可以使用lcd命令来改变。
2)服务器端的当前目录
使用匿名用户登录ftp服务器
使用匿名用户登录时(用户名输入为ftp或anonymous)
使用pwd显示的是 /
注意,此时的/并不是服务器上的/
而是 /var/ftp
下载
把ftp服务器上的文件下载到本地客户端
把服务器上的资源下载本地客户端的当前目录
# get a.txt
表示把服务器当前目录下的a.txt 下载到客户端的当前目录下。
# get pub/a.txt
表示把服务器当前目录下的pub/a.txt下载到客户端的当前目录下的pub目录下!
上传
默认情况下,是禁止匿名用户使用ftp上传文件。
匿名用户不能在“根目录”(/var/ftp)下上传文件
匿名用户上传文件,需要:
1)把vsftpd的配置文件中的anonymous_enable设置为YES
anonymous_enable=YES
2)在服务器的对应目录中对ftp用户授权
setfacl -m u:ftp:rwx /var/ftp/upload
表示匿名用户可以在/var/ftp/upload目录下上传文件了
非匿名用户的使用
以下用户都是指vsftpd服务器端的用户
1)root用户
默认情况下,禁止root用户通过ftp登录
为什么?
因为vsftpd是使用pam来实现用户认证(登录检查)
而pam的配置文件 /etc/pam.d/vsftpd中:
---------------------------------------------------------------------------------------------
uth required pam\_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=su
表示/etc/vsftpd/ftpusers文件中的所有用户不能通过ftp登录
如果把root从该文件中删除,那么就可以使用root用户ftp登录。
但是,实际生产环境中,不应该允许root用户ftp登录, 因为不安全!
2) 使用普通用户
使用普通用户的用户名和密码就可以登录。
登录后的,默认的当前目录,就是该 普通用户的家目录
此时,ftp> pwd
所显示的路径中的/就是服务器端真正的根目录
直接使用get下载,put上传
1)普通用户登录以后,默认的当前目录是,该用户的家目录
2)上传和下载时,都要把当前目录切换到合适的位置。
客户端的当前目录使用lcd切换,服务器端的当前目录使用cd切换
3)使用系统用户
uid为1-499, 而且不能用来登录系统
用法和普通用户类似。
ftp客户端中有很多命令
ftp > help
可以显示能够使用的命令
最常用的命令:
put
get
cd
lcd
ls
手机扫一扫
移动阅读更方便
你可能感兴趣的文章