通过网络传输数据的手段 1. ssh 2. http 3. nfs 4. rsync 5. ftp 6. samba ftp的简介: 1. ftp是应用层协议,是基于TCP 2. 使用21端口 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 1. 下载 把ftp服务器上的文件下载到本地客户端 把服务器上的资源下载本地客户端的当前目录 # get a.txt 表示把服务器当前目录下的a.txt 下载到客户端的当前目录下。 # get pub/a.txt 表示把服务器当前目录下的pub/a.txt下载到客户端的当前目录下的pub目录下! 2. 上传 默认情况下,是禁止匿名用户使用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