Linux操作系统实用技术第九课FTP与FTP服务器课件.ppt
Linux操作系统实用技术第九课 FTP与FTP服务器,河北经贸大学王春海,本节内容,网络服务本质:协议、服务、端口FTP基础原理安装配置FTP服务器FTP服务与防火墙中FTP客户端,网络服务的本质,网络的最终目的是提供服务。计算机网络的最终目的,是为互联网上的人,提供多种多样的服务。使用网络的目的,是为了享受“服务”。在网络服务中,其构成的几个要素是:IP地址服务所需要的协议:TCP或UDP服务所需要的端口号(165535)这几者缺一不可,IP地址,是指运行服务的这台计算机的地址在TCP/IP网络中,有“面向连接的”TCP协议,和“不面向连接”的UDP协议。TCP协议是一种可靠的协议,它可以保证数据的正确性与完整性。UDP是一种不可靠的协议,它不保证数据的正确性与完整性,它只负责以近可能快的方式传送数据,并不保证数据是否传到、收到的数据是否正确。,终端用户A,在使用“服务器B”提供的“服务”时,终端用户A需要与服务器B建立一个连接,通过这个连接传送数据。,假设服务器B使用TCP协议,协议端口号234工作站A在访问服务器B时,A会从自己的空闲的TCP端口中选择一个端口,例如5678,连接服务器B的TCP协议的234端口,建立连接后,A可以访问B所提供的服务。即:202.206.197.123:TCP:5678202.206.197.198:TCP:234,一个服务器,使用一个端口,可以同时为多个用户提供服务。,一个计算机可以同时访问多个服务,与多个服务器同时建立连接计算机端口号不同,在一个网络中,只要IP地址不同,可以使用相同的服务端口号,一台服务器可以同时提供多个服务,但服务端口号不能相同,一台服务器可以使用多个IP地址提供多个服务。同一IP地址提供的服务端口号不能相同,同样,工作站也可以有多个不同IP地址,那么,什么是服务呢?,所谓服务,是一个运行在操作操作系统之上的一个具有特定功能的软件。实际上,服务本身就是一个计算机软件,具有指定功能的软件,仅此而己。不同的服务,具有约定的服务端口。实际上,不同的服务,可以有相同的端口。但为了满足在同一台计算机(实际上是一个IP地址)上同时提供多个服务的要求,人为的将服务的端口分开。,标准的服务端口,一些标准的服务端口中有:Web服务器,使用TCP的80端口SSL Web服务器,使用TCP的443端口FTP服务器,使用TCP的21*端口DNS服务器,使用TCP与UDP的53端口邮件服务器,使用TCP的25与110端口QQ,使用UDP的8000、TCP的4000等端口,标准的网络服务可以省略端口,使用正常的服务时,不用另加端口号,例如,访问web服务器,使用http:/域名或IP即可,例如,访问sohu网站,只需要键入http:/。实际上访问的是:80端口。因为是标准服务端口,客户端程序会“自动”加入目标端口80。如果一个网站没有使用标准的TCP的80端口,在访问的时候,需要加上端口,例如http:/ip:81等。,这是刚才介绍的网络连接拓扑图,实际上,在真正的网络中,从客户端A到服务器B,建立连接的过程要复杂的多。,大家把上面这个图记一下。如果A1要访问B1,应该是怎么个过程。在以后的“网络安全与代理服务器、防火墙”一节课中,会深入介绍这些。,什么是FTP,FTP(File Transfer Protocol),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。,FTP有什么用,FTP服务器用于上传、下载文件及文件夹,是Internet的3大基本服务(Web、FTP、E-mail)之一,在实际工作中有着比较重要的作用。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。,FTP工作原理,下传文件为例,当你启动FTP从远程计算机下载文件时,此时启动了两个程序:一个本机上的FTP客户程序,它向FTP服务器提出拷贝文件的请求。另一个是远程计算机的上的FTP服务器程序,它响应客户端的请求并把客户端指定的文件发送到客户端计算机中。在上传文件时,远程计算机的FTP服务器接收客户端上传的程序。,下传和下载,在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和“上传”(Upload)。“下载”文件就是从远程主机拷贝文件至自己的计算机上;“上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。,访问FTP服务器需要身份认证,使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。,匿名FTP,匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous,Internet上的任何人在任何地方都可使用该用户ID。实际上,对于匿名FTP服务器,可以使用任意的用户名和密码登录,下载FTP服务器所允许的资源。,FTP协议与FTP服务器,FTP工作原理:FTP采用“客户机/服务器”方式,客户端要在自己的本地计算机上安装FTP客户程序,支持FTP协议的服务器就是FTP服务器。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。,FTP采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装FTP客户程序。FTP客户程序有字符界面和图形界面两种。字符界面的FTP的命令复杂、繁多。图形界面的FTP客户程序,操作上要简洁方便的多。对于Windows与Linux来说,都内置(集成)了FTP客户端程序,无论是图形界面还是字符界面。在命令提示符(终端)下可以直接使用字符界面的FTP客户端程序。在Windows中,IE、资源管理器可以是FTP图形界面。,除此之外,还有许多第三方的、专用的FTP客户端软件。例如cuteftp、flashftp等,FTP连接模式,FTP的连接模式有三种:主动模式(PORT);被动模式(PASV);单端口传输模式;在互联网的所有服务中,FTP服务器的连接模式是比较复杂的。,FTP服务器:Port模式,FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。,PORT模式,FTP服务器:PASV模式,PASV模式在建立控制通道的时候和Port模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。,单端口模式,除上述两种模式之外,还有一种单端口模式。该模式的数据连接请求由FTP服务器发起。使用该传输模式时,客户端的控制连接端口和数据连接端口一致。因为这种模式无法在短时间连续输入数据、传输命令,因此并不常用,FTP网络中的防火墙问题,很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。,对于一个FTP服务器来说,需要:支持多用户,允许指定的用户以指定的权限(上传或下载、删除)访问服务器上指定的目录。有的FTP可以限制客户端IP地址、每个用户指定的并发连接数量、每个用户登录的次数,vsFTP内容提要,vsFTP服务器的安装和启动FTP客户端命令简介用户管理文件vsftpd.users和vsftpd.user_list的内容主要配置文件sftpd.conf解析FTP(File Transfer Protocol,文件传输协议)服务器提供Internet文件传输服务。Linux中常用的有WU-FTP、ProFTP、PureFTP及vsFTP等。在Fedora 8下自带的是vsFTP,它是一个小巧、高效、安全的FTP服务器软件.本章将介绍vsFTP服务器的安装、配置及使用等。,vsFTP简介,vsFTP是一种基于GPL的在UNIX/Linux中非常安全且快速的FTP服务器,其中vs是“Very Secure”的缩写,具有安全、高速和稳定的性能。在速度方面,使用ASCII模式下载数据时,速度是WU-FTP的两倍,如果Linux使用的是2.4.x版本的内核,在千兆以太网上的下载速度可达86Mbps。在稳定性方面,在单机服务器上支持4000个以上的并发连接,最高可支持15000个并发连接。除此之外,vsFTP还具有如下特性:支持基于IP的虚拟FTP服务器;支持虚拟用户;支持PAM或xinetd/tcp_wrappers的认证方式;支持两种运行方式:standalone和xinetd方式;支持每个虚拟用户的独立配置;支持带宽限制。,vsFTP的运行模式,一种是独立(standalone)运行模式,另外一种是xinetd(eXtended Internet Services Daemon,即:扩展的Internet服务守护进程)模式。两种模式运行机制是不同的,独立运行模式适合专业的FTP服务器,且FTP总是一直有人访问,占用资源比较大,如果FTP服务器总是有人访问和登入建议采用这种模式。如果FTP服务器访问人数比较少,建议您用xinetd模式。xinetd模式的运行方式一直监听端口,当客户端(Client)有FTP连接请求时,首先会将连接传至xinetd,xinetd再将此要求传至vsftpd,启动相应的vsftp服务进程(即:vsftpd)。以下的内容主要是介绍独立模式下的vsftpd启动和配置方式。,vsFTP服务器的安装,在Fedora 8中带的vsFTP服务器版本为vsftpd-2.0.5-19.fc8,在安装之前可用如下命令检查是否已安装vsftpd:#rpm qa vsftpd vsftpd-2.0.5-19.fc8若是在安装Linux时没有选择安装vsFTP服务器,可以从Fedora 8安装光盘DVD中的Packages目录下找出名为vsftpdd-2.0.5-19.fc8.i386.rpm的文件,然后输入以下指令,系统即将自动完成vsFTP服务器的安装:#rpm ivh vsftpd-2.0.5-19.fc8.i386.rpm,vsFTP服务器的启动,安装完成后,系统将会生成一个名为vsftpd的服务。要启动vsftpd,最简单的方式如下:#/etc/rc.d/init.d/vsftpd start starting vsftpd for vsftpd:ok 也可以使用命令:#service vsftpd start 来启动vsftpd。,自动启动vsFTP服务器,如果想在图形界面下启动vsFTP服务器,可以选择“系统”|“管理”|“服务”选项,在打开“服务配置”画面后,选中“vsftpd”项目,然后单击工具栏中的“开始”按钮即可启动vsftpd服务器,图12-1“服务状态设置”设置画面,演示,创建W1、W2用户,在客户端登录setsebool-P ftp_home_dir=1,FTP客户端命令简介,要登录到vsFTP服务器,在Windows系统中可以使用图形化的FTP客户端软件,如CuteFTP和LeapFTP等,也可以直接在命令行状态下使用FTP命令。直接登录浏览器 ftp:/w2:123456192.168.189.131ftp:/用户名:密码要访问的FTP服务器,FTP命令的格式,FTP(机器名、网址或IP地址)若连接成功,系统提示输入用户名(Name)及密码(Password)。进入FTP站点后,用户就可以使用相应的命令进行各种操作了。,FTP的常用命令,测试vsftpd是否已经启动,可用telnet检验vsftpd是否已经启动:#telnet 127.0.0.1 21 Trying 127.0.0.1.Connected to 127.0.0.1.Escape character is.220(vsFTPd 2.0.5)从上面的内容可以看出能telnet到本机的vsftp服务器的21号端口,确认vsftpd已经被启动,按“Ctrl+”中断会话 再按“q”退出telnet telnet q Connection closed.#,测试ftp的运行,默认情况下,安装好vsftp服务器后就可以使用匿名用户anonymous(或ftp)下载文件了。例如,使用匿名用户下载文件。操作步骤如下:1)生成一个用于测试的文件welcome.txt。默认情况下,匿名用户下载目录/var/ftp/pub下没有任何内容,为了进行测试,可以先生成一个测试文件welcome.txt。#echo“Welcome to my vsFTP Server”/var/ftp/pub/welcome.txt,测试ftp的运行(续),2)使用匿名用户(ftp或anonymous)登录ftp:#ftp 127.0.0.1Connected to 127.0.0.1(127.0.0.1).220(vsFTPd 2.0.5)Name(127.0.0.1:root):anonymous 331 Please specify the password.Password:/输入Email地址或任意字符串作为anonymous匿名账号的口令230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.,测试ftp的运行(续),3)列表显示匿名FTP服务器目录并进入pub目录。ftp ls 227 Entering Passive Mode(127,0,0,1,126,111)150 Here comes the directory listing.drwxr-xr-x 2 0 0 4096 Oct 03 19:09 pub 226 Directory send OK.ftp cd pub 250 Directory successfully changed.,测试ftp的运行(续),4)显示/var/ftp/pub目录下的内容并下载welcome.txt文件。ftp ls 227 Entering Passive Mode(127,0,0,1,44,205)150 Here comes the directory listing.-r-xr-xr-x 1 0 1 31 Oct 03 19:09 welcome.txt226 Directory send OK.ftp get welcome.txt227 Entering Passive Mode(127,0,0,1,99,247)150 Opening BINARY mode data connection for welcome.txt(31bytes).226 File send OK.31 bytes received in 0.000188 secs(1.6e+02 Kbytes/sec)ftp!ls anaconda-ks.cfg install.log install.log.syslog welcome.txt通过显示本地文件命令“!ls”确认已经将文件welcome.txt下载到本地。,测试ftp的运行(续),5)测试是否能上传文件到/var/ftp/pub目录。ftp put install.log local:install.log remote:install.log 227 Entering Passive Mode(127,0,0,1,233,16)550 Permission Denied.从上面信息可以看出上传文件失败6)退出FTP ftp bye 221 Goodbye.,vsFTP服务器的配置,安装好vsFTPD后,会在/etc/vsftpd目录下生成ftpusers和user_list文件,同时会生成vsftpd.conf文件。,用户管理文件ftpusers,/etc/vsftpd/ftpusers是vsFTP服务器中用来管理帐号的配置文件。但需要注意的是:本文件中列出的用户名是指不允许登录vsFTP服务器的用户,默认的文件内容如下:rootCandy etc#cat ftpusers#Users that are not allowed to login via ftpRootBinDaemonGamesNobody从上面例子可以看出,默认情况下,root帐号是不允许登录vsFTP服务器的。如希望让root登录,只需修改此文件,在“root”前加“#”注释掉即可。但从安全角度考虑,建议用户不要使用root登录FTP。对于此文件中的其它帐号,均为系统帐号,建议不要做任何修改。,/etc/vsftpd/user_list文件,rootCandy etc#cat/etc/vsftpd/user_list#vsftpd.user_list#If userlist_deny=NO,only allow users in this file#IF userlist_deny=YES(default),never allow users in this file,and#do not even prompt for a password.RootBinGamesNobody此文件中指定的用户默认情况(即在/etc/vsftpd/vsftpd.conf中设定了userlist_deny=YES)下也不能访问FTP服务器,而如果在vsftpd.conf中设定了userlist_deny=NO,则仅仅允许此文件中指定的用户访问FTP服务器。此方面的例子将在后面介绍。,主要配置文件vsftpd.conf,/etc/vsftpd/vsftpd.conf是vsftp服务器的主要配置文件,建议大家认真理解里面的内容,以使vsFTP服务器发挥最大的效能。此文件的设置格式如下:参数设置值 若是以“#”开头的行表示注释文字,会被服务器所忽略。下面将分类解释各参数的含义:,Anonymous_enable=yes(允许匿名登陆)Dirmessage_enable=yes(切换目录时,显示目录下.message的内容)Local_umask=022(FTP上本地的文件权限,默认是077)Connect_form_port_20=yes(启用FTP数据端口的数据连接)*Xferlog_enable=yes(激活上传和下传的日志)Xferlog_std_format=yes(使用标准的日志格式)Ftpd_banner=XXXXX(欢迎信息)Pam_service_name=vsftpd(验证方式)*Listen=yes(独立的VSFTPD服务器)*Anon_upload_enable=yes(开放上传权限)Anon_mkdir_write_enable=yes(可创建目录的同时可以在此目录中上传文件)Write_enable=yes(开放本地用户写的权限),Anon_other_write_enable=yes(匿名帐号可以有删除的权限)Anon_world_readable_only=no(放开匿名用户浏览权限)Ascii_upload_enable=yes(启用上传的ASCII传输方式)Ascii_download_enable=yes(启用下载的ASCII传输方式)Banner_file=/var/vsftpd_banner_file(用户连接后欢迎信息使用的是此文件中的相关信息)Idle_session_timeout=600(秒)(用户会话空闲后10分钟)Data_connection_timeout=120(秒)(将数据连接空闲2分钟断)Accept_timeout=60(秒)(将客户端空闲1分钟后断)Connect_timeout=60(秒)(中断1分钟后又重新连接)Local_max_rate=50000(bite)(本地用户传输率50K)Anon_max_rate=30000(bite)(匿名用户传输率30K),Pasv_min_port=50000(将客户端的数据连接端口改在 Pasv_max_port=60000 5000060000之间)Max_clients=200(FTP的最大连接数)Max_per_ip=4(每IP的最大连接数)Listen_port=5555(从5555端口进行数据连接)Local_enble=yes(本地帐户能够登陆)Write_enable=no(本地帐户登陆后无权删除和修改文件),vsftpd.conf虚拟用户用户选项,guest_enable=YES|NO 若是启动这项功能,所有的不以匿名登录的用户,都视为“guest”类型,而此类用户的实际权限就是“guest_username”选项中所指定的帐号。默认不启用此选项。guest_username=定义vsFTPD的guest用户登录时在系统中的帐号名称,默认值为ftp。,vsftpd.conf连接选项,(1)监听地址与控制端口 listen_address=ip address listen_port=port_value(2)FTP模式与数据端口 port_enable=YES|NO Connect_from_port_20=YES|NO ftp_data_port=port number port_promiscuous=YES|NO pasv_enable=YES|NO pasv_min_port=port number pasv_max_port=port number pasv_promiscuous=YES|NO pasv_address=(3)ASCII模式 ascii_upload_enable=YES|NO ascii_download_enable=YES|NO,vsftpd.conf性能与负载控制选项,超时选项 idle_session_timeout=data_connection_timeout=accept_timeout=numerical value connect_timeout=numerical value 负载控制 max_clients=numerical value max_per_ip=numerical value anon_max_rate=value local_max_rate=value,设置速率举例,设定系统本地用户允许的最大数据传输速率,以Bytes/s为单位。默认为0。此选项对所有的用户都生效。此外,也可以在用户个人配置文件中使用此选项,以指定特定用户可获得的最大数据传输速率。例如,为特定用户设置传输速率。操作步骤如下:在/etc/vsftpd/vsftpd.conf中指定用户个人配置文件所在的目录,如:user_config_dir=/etc/vsftpd/userconf 生成/etc/vsftpd/userconf目录。mkdir/etc/vsftpd/userconf用户个人配置文件是在该目录下,生成与特定用户同名的文件,如:touch/etc/vsftpd/userconf/user1 在用户user1的个人配置文件中设置local_max_rate参数,如:local_max_rate=80000(即为80KB/s)以上步骤设定FTP用户user1的最大数据传输速度为80KBytes/s。vsFTPD 对于速度控制的变化范围大概在80%到120%之间。比如我们限制最高速度为100KBytes/s,但实际的速度可能在80KBytes/s 到120KBytes/s 之间。当然,若是线路带宽不足时,速率自然会低于此限制。,vsftpd.conf安全措施选项,(1)用户登录控制 pam_service_name=vsftpd 指出vsFTPD进行PAM认证时所使用的PAM配置文件名,默认值是vsftpd,默认PAM配置文件是/etc/pam.d/vsftpd。/etc/vsftpd.ftpusers vsFTPD禁止列在此文件中的用户登录FTP服务器。这个机制是在/etc/pam.d/vsftpd中默认设置的。userlist_enable=YES|NO 若是启用此功能,vsFTPD将读取/etc/userlist_file参数所指定的文件中的用户列表。当列表中的用户登录FTP服务器时,该用户在提示输入密码之前就被禁止了。即该用户名输入后,vsFTPD查到该用户名在列表,vsFTPD就直接禁止该用户登录,不会再进行询问密码等后续步聚,这可避免明文(Clear Text)在网络上传输。默认值为NO。,vsftpd.conf安全措施选项(续),userlist_file=/etc/vsftpd.user_list 指出userlist_enable选项生效后,被读取的包含用户列表的文件。默认值是/etc/vsftpd.user_list。userlist_deny=YES|NO 此选项在userlist_enable 选项启动后才生效。决定禁止还是只允许由/etc/userlist_file指定文件中的用户登录FTP服务器。YES,默认值,禁止文件中的用户登录,同时也不向这些用户发出输入口令的提示。若设为停用(即为NO),则只允许在文件中的用户登录FTP服务器 tcp_wrappers=YES|NO 若值为YES,将在vsFTPD中使用TCP_wrappers远程访问控制机制,因此可利用/etc/hosts.allow与/etc/hosts.deny文件来定义可联机或是拒绝的来源地址。但默认不启用此选项。,vsftpd.conf安全措施选项(续),(2)目录访问控制 chroot_list_enable=YES|NO chroot_list_file=/etc/vsftpd/chroot_list chroot_local_users=YES|NO passwd_chroot_enable,vsftpd.conf安全措施选项(续),(3)文件操作控制 hide_ids=YES|NO ls_recurse_enable=YES|NO write_enable=YES|NO secure_chroot_dir=,vsftpd.conf安全措施选项(续),(4)新增文件权限设定 anon_umask=匿名用户新增文件的umask 数值。默认值为077。这表示匿名用户新增的文件权限最大为700(777077700)。file_open_mode=表示上传文件的权限,与chmod命令所使用的数值相同。如果希望上传的文件可以执行,设此值为0777。默认值为0666。local_umask=本地用户新增文件的umask 数值。默认值为077(其他大多数的FTP服务器都是使用022。您也可以修改为022)。,vsftpd.conf提示信息选项,ftpd_banner=login banner string banner_file=/directory/vsftpd_banner_file dirmessage_enable=YES|MO message_file=,vsftpd.conf日志设置选项,xferlog_enable=YES|NO xferlog_file=xferlog_std_format=YES|NO log_ftp_protocol=YES|NO,vsftpd.conf其他设置,setproctitle_enable=YES|NO text_userdb_names=YES|NOuser_localtime=YES|NO check_shell=YES|NO nopriv_user=pam_service_name=,vsFTP服务器的使用举例1,【例】配置匿名用户,使之可以上传/下载文件。操作步骤如下:(1)在/var/ftp/创建一个上传目录,并修改权限。cd/var/ftp/首先进入/var/ftp目录。mkdir/var/ftp/incoming/创建incoming目录。chmod 777/var/ftp/incoming/更改incoming目录的权限为777。,vsFTP服务器的使用举例1(续),(2)编辑/etc/vsftpd/vsftpd.conf文件 vi/etc/vsftpd/vsftpd.conf 确保 anonymous_enabled=YES有效。找到“#anon_upload_enable=YES”行,去掉前面的注释符号“#”,并在下面添加如下行:chown_uploads=YESanon_umask=077anon_mkdir_write_enable=YESanon_world_readable_only=NO(3)存盘退出。通过前面的配置后,匿名用户ftp(或anonymous)既可下载文件,又可上传文件到incoming目录,也能在incoming目录下创建新的目录。,vsFTP服务器的使用举例2,【例】配置vsFTPD,使本地用户user1具有上传/下载、user2只具有下载功能,其中user1和user2同属于students组。操作步骤如下:(1)创建用户组 students和FTP的主目录groupadd studentsmkdir/var/ftprootuseradd-G students d/var/ftproot M user1注:-G:用户所在的组;-d:表示创建用户主目录的位置;-M:不建立默认的用户主目录,也即在/home下不创建用户主目录。useradd G students d/var/ftproot M user2,vsFTP服务器的使用举例2(续),(2)改变目录的属主和权限chown user1.students/var/ftproot/把/var/students的属主定为user1。chmod 750/var/students 即自己具有所有权限,同组成员只具有读和执行权限,而其他人不具有任何权限。(3)修改配置文件/etc/vsftpd/vsftpd.conf 设置local_enable=yes,write_enable=yes和chroot_local_usr=yes三个选项即可。,vsFTP服务器的使用举例3,【例】配置vsftpd通过pam认证方式,添加虚拟用户。操作步骤如下:(1)在/etc/pam.d/目录中创建一个文件ftp#touch/etc/pam.d/ftp(2)在/etc/pam.d/ftp里面加上如下两行:auth required/lib/security/pam_userdb.so db=/etc/vsftpd_loginaccount required/lib/security/pam_userdb.so db=/etc/vsftpd_login(3)创建用户密码文件logins.txt,例如,此包含user1和user2,密码均为“karma”。#touch logins.txtUser1KarmaUser2Karma(4)在系统中创建一个真实的用户,如:user3,#useradd user3,vsFTP服务器的使用举例3(续),(5)把/etc/hosts复制到user3的用户主目录/home/user3,并改变它的属主#cp/etc/hosts/home/user3/hosts#chown user3.students/home/user3/hosts(6)通过db_load创建虚拟用户的库文件。#db_load-T-t hash-f logins.txt/etc/vsftpd_login.db(7)更改vsftpd.conf文件,加入如下的几行pam_service_name=ftpguest_enable=YESguest_username=user3/user3即为上面创建的系统本地用户。anon_world_readable_only=NO(8)重启vsftpd服务器,然后就可以以虚拟用户user1和user2登录系统了。#service vsftpd restart,