重庆网站制作技术,wordpress获取特定尺寸特征图像,1核1g WordPress 华为云,网站链接dw怎么做FTP服务器的配置与管理
项目场景
学院教职工在日常工作中#xff0c;经常需要传送一些文件和资料。可以使用移动存储设备转存再复制#xff0c;或者通过共享文件的方式实现#xff0c;但是两种方法都不是很简单、方便。相对于这两种方法#xff0c;使用FTP传送文件和资料…FTP服务器的配置与管理
项目场景
学院教职工在日常工作中经常需要传送一些文件和资料。可以使用移动存储设备转存再复制或者通过共享文件的方式实现但是两种方法都不是很简单、方便。相对于这两种方法使用FTP传送文件和资料要简单方便得多所以学院决定搭建FTP服务器来解决文件和资料的传送问题。
FTP基础知识
1什么是FTP FTP 文件传输协议。该协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的标准。FTP运行在OSI模型的应用层并利用TCP在不同的主机之间提供可靠的数据传输。TCP是一种面向连接的、可靠的传输协议。在实际传输中FTP靠TCP来保证数据传输的正确性并在发生错误的情况下对错误进行相应的修正。FTP支持断点续传。 2FTP服务器 FTP服务是Internet上最早应用于主机之间进行数据传输的基本服务之一。FTP服务的实现不依赖与平台即UNIX、Mac、Linux、Windows等操作系统中都可以实现FTP的客户端和服务器。 尽管现在已经普遍采用HTTP方式传送文件但FTP仍然是跨平台直接传送文件的主要方式。 3FTP的工作原理 FTP协议是一个客户机/服务器系统。用户通过一个支持FTP的客户机程序连接到远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令服务器程序执行用户所发出的命令并将执行结果返回给客户机。 一个FTP会话通常包含5个软件元素 用户接口UI 客户端协议解释器CPI 服务端协议解释器SPI 客户端数据传输协议CDTP 服务端数据传输协议SDTP
3FTP的工作原理 FTP 会话中会存在两个独立的TCP连接一个是CPI和SPI使用的被称为控制连接另一个是由CDTP和SDTP使用的称为数据连接。 控制连接由客户端发起并不传输数据只用来传送在实际通信过程中需要执行的FTP命令以及命令的响应。 FTP服务器监听端口号TCP 21来等待控制连接建立请求。 建立连接后服务器通过一定方式验证客户身份来决定 是否可以建立数据传输。 服务器通过自己的TCP20来发出数据 用户的TCP端口号是随机的并不是必须和图上一样 3FTP的数据传输模式 主动模式Active FTPFTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接然后开放N1号端口进行监听并向服务器发出PORT N1指令。服务器接收到指令后会用其本地的FTP数据端口默认是20来连接客户端指定的端口N1进行数据传输。 主动模式下FTP数据连接和控制连接的方向是相反的也就是说是服务器向客户端发起一个用于数据传输的连接。客户端的连接端口是由服务器端和客户端通过协商确定的。 被动模式Passive FTPFTP客户端随机开启一个大于1024的端口N向服务器的21端口发起连接同时会开启N1端口。然后向服务器发送PASV指令通知服务器自己处于被动模式。服务器收到指令后会开放一个大于1024的端口P进行监听然后PORT P指令通知客户端自己的数据端口是P。客户端收到命令后会通过N1端口连接服务器的端口P然后传输数据。 被动模式下FTP的数据连接和控制连接的方向是一致的。 选择模式的原则 客户端没有防火墙时用主动模式连接即可。 服务器端没有防火墙时用被动模式即可。 双方都有防火墙时vsftpd设置被动端口范围服务器端防火墙打开被动端口范围客户端用被动模式连接即可。 4FTP的用户类型 ①本地用户Real用户如果用户在远程FTP服务器上拥有Shell登录账号则称此用户为本地用户。本地用户可以通过输入自己的账号和口令来进行授权登录。当授权访问的本地用户登录系统后其登录目录为用户自己的家目录$HOME本地用户既可以下载又可以上传。 ②虚拟用户Guest用户如果用户在远程FTP服务器上拥有账号且此账号只能用于文件传输服务则称此用户为虚拟用户或Guest用户。虚拟用户可以通过输入自己的账号和口令来进行授权登录。当授权访问的虚拟用户登录系统后其登录目录是vsftpd为其指定的目录虚拟用户既可以下载又可以上传。 ③匿名用户Anonymous用户在登录FTP服务器时并不需要特别的密码就能访问服务器。当匿名用户登录系统后其登录目录为匿名FTP服务器的根目录/var/ftp匿名用户只能下载不能上传。
5centos下的FTP服务器软件vsftpd vsftpd 是“very secure FTP daemon”的缩写安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面是一个完全免费的、开放源代码的ftp服务器软件。 vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快安全易用。 6vsftpd服务的配置文件 vsftpd作为一个主打安全的FTP服务器有很多的选项设置。Vsftpd的配置文件 /etc/vsftpd/vsftpd.conf #主配置文件。 /etc/vsftpd/ftpusers #该文件用来指定哪些用户不能访问FTP服务器。 /etc/vsftpd/user_list #该文件用来指定用户是否被允许访问FTP服务器。 7vsftpd的数据目录 /var/ftp/ #匿名用户主目录。 /var/ftp/pub #匿名用户下载目录。 8vsftpd主配置文件/etc/vsftpd/vsftpd.conf vsftpd.conf 的内容非常单纯每一行即为一项设定。若是空白行或是开头为#的一行为注释性文字将会被忽略。内容的格式只有一种如下所示 optionvalue 要注意的是等号两边不能加空白。 ①默认配置 anonymous_enableYES说明设置是否允许匿名用户访问FTP服务器匿名用户使用的登陆名为ftp或anonymous口令为空匿名用户不能离开匿名用户主目录/var/ftp且只能下载不能上传。 local_enableYES说明设置是否允许本地用户访问FTP服务器 write_enableYES说明设置是否对用户开启写权限全局设置。在vsftpd配置文件中write_enableYES表示允许用户上传文件和创建新目录。如果设置为NO则用户只能下载文件不能上传或创建新目录。 ②匿名用户anonymous设置 anonymous_enableYES/NOYES 说明控制是否允许匿名用户登入YES 为允许匿名登入NO 为不允许。默认值为YES。 write_enableYES/NOYES 说明是否允许登陆用户有写权限。属于全局设置默认值为YES。 no_anon_passwordYES/NONO 说明若是启动这项功能则使用匿名登入时不会询问密码。默认值为NO。 ftp_usernameftp 说明定义匿名登入的使用者名称。默认值为ftp。 anon_root/var/ftp 说明使用匿名登入时所登入的目录。默认值为/var/ftp。注意ftp目录不能是777的权限属性即匿名用户的家目录不能有777的权限。 anon_upload_enableYES/NONO 说明如果设为YES则允许匿名登入者有上传文件非目录的权限只有在write_enableYES时此项才有效。当然匿名用户必须要有对上层目录的写入权。默认值为NO。当无法写入时注意查看自己对于文件夹的other的权限 anon_world_readable_onlyYES/NOYES 说明如果设为YES则允许匿名登入者下载可阅读的档案可以下载到本机阅读不能直接在FTP服务器中打开阅读。默认值为YES。 anon_mkdir_write_enableYES/NONO 说明如果设为YES则允许匿名登入者有新增目录的权限只有在write_enableYES时此项才有效。当然匿名用户必须要有对上层目录的写入权。默认值为NO。当无法写入时注意查看自己对于文件夹的other的权限 anon_other_write_enableYES/NONO 说明如果设为YES则允许匿名登入者更多于上传或者建立目录之外的权限如删除或者重命名。 chown_uploadsYES/NONO 说明设置是否改变匿名用户上传文件非目录的属主。默认值为NO。 chown_usernameusername 说明设置匿名用户上传文件非目录的属主名。建议不要设置为root。 anon_umask077设置匿名登入者新增或上传档案时的umask 值。默认值为077则新建档案的对应权限为700。 deny_email_enableYES/NONO 说明若是启动这项功能则必须提供一个档案/etc/vsftpd/banner_emails内容为email address。若是使用匿名登入则会要求输入email address若输入的email address 在此档案内则不允许进入。默认值为NO。 banned_email_file/etc/vsftpd/banner_emails此文件用来输入email address只有在deny_email_enableYES时才会使用到此档案。若是使用匿名登入则会要求输入email address若输入的email address 在此档案内则不允许进入。 ③本地用户设置 local_enableYES/NOYES 说明控制是否允许本地用户登入YES 为允许本地用户登入NO为不允许。默认值为YES。 local_root/home/username如果设置了chroot_local_userYES则没有必要 说明当本地用户登入时将被更换到定义的目录下。默认值为各用户的home目录。如果设置了chroot_local_userYES那么FTP用户将被限制在其主目录中无法访问系统中的其他文件和目录。在这种情况下设置local_root/home/ftp可能没有必要因为FTP用户的根目录已经被限制为其主目录。 但是如果需要将FTP用户的根目录设置为其他目录可以设置local_root选项。例如如果希望FTP用户的根目录为/var/ftp可以将local_root设置为/var/ftp。在这种情况下FTP用户将被限制在其主目录中同时其根目录将设置为/var/ftp。 需要注意的是如果不需要将FTP用户的根目录设置为其他目录可以不设置local_root选项。在这种情况下FTP用户的根目录将默认为其主目录。 write_enableYES/NOYES 说明是否允许登陆用户有写权限。属于全局设置默认值为YES。 local_umask022 说明本地用户新增档案时的umask 值。默认值为077。在vsftpd配置文件中local_umask参数用于设置上传文件时的默认权限掩码。默认情况下上传的文件权限为666上传的目录权限为777。如果设置了local_umask参数则会根据该参数设置的掩码来计算上传文件和目录的权限。 默认的umask为077表示新建文件的权限为600新建目录的权限为700。umask是一种权限掩码用于控制新建文件和目录的默认权限。它是一个三位八进制数每一位表示一种权限读、写、执行0表示允许1表示禁止。umask的值是从默认权限掩码中减去的例如umask为077表示从默认权限掩码中减去777得到的结果就是新建文件的权限为600新建目录的权限为700。这样设置可以保证新建的文件和目录只有所有者有读写执行的权限其他用户没有任何权限。 local_umask022表示上传的文件权限为644上传的目录权限为755。其中022是一个三位八进制数表示文件权限掩码。在Linux系统中文件权限掩码用于控制文件的默认权限。它是一个三位八进制数每一位表示一种权限读、写、执行0表示允许1表示禁止。例如022表示允许所有者和组成员读写其他用户只能读取755表示所有用户都可以读、写、执行。 file_open_mode0755 说明本地用户上传档案后的档案权限与chmod 所使用的数值相同。默认值为0666。 ④欢迎语设置dirmessage_enableYES/NOYES 说明如果启动这个选项那么使用者第一次进入一个目录时会检查该目录下是否有.message这个档案如果有则会出现此档案的内容通常这个档案会放置欢迎话语或是对该目录的说明。默认值为开启。message_file.message 说明设置目录消息文件可将要显示的信息写入该文件。默认值为.message。banner_file/etc/vsftpd/banner 说明当使用者登入时会显示此设定所在的档案内容通常为欢迎话语或是说明。默认值为无。如果欢迎信息较多则使用该配置项。ftpd_bannerWelcome to BOB’s FTP server 说明这里用来定义欢迎话语的字符串banner_file是档案的形式而ftpd_banner 则是字符串的形式。预设为无。 ⑤控制用户是否允许切换到上级目录 在默认配置下本地用户登入FTP后可以使用cd命令切换到其他目录这样会对系统带来安全隐患。可以通过以下三条配置文件来控制用户切换目录。chroot_list_enableYES/NONO 说明设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。chroot_list_file/etc/vsftpd.chroot_list 说明用于指定用户列表文件该文件用于控制哪些用户可以切换到用户家目录的上级目录。chroot_local_userYES/NONO 说明用于指定用户列表文件中的用户是否允许切换到上级目录。在vsftpd.conf配置文件中chroot_local_userYES表示将本地用户限制在其主目录中防止他们访问系统中的其他文件和目录。这是一种安全措施可以防止用户访问他们不应该访问的文件和目录从而保护系统的安全性。当chroot_local_user设置为YES时用户登录后将被限制在其主目录中无法访问其他目录。 chroot是change root的缩写意为改变根目录。在Linux和Unix系统中chroot是一种安全机制可以将进程限制在指定的目录中防止其访问系统中的其他文件和目录。通过chroot机制可以创建一个虚拟的根目录使进程只能访问该目录及其子目录而不能访问系统中的其他文件和目录。 在FTP服务器中chroot机制可以用于限制用户访问其主目录以外的文件和目录。通过将用户限制在其主目录中可以防止他们访问系统中的其他文件和目录从而提高系统的安全性。在vsftpd中可以使用chroot_local_user选项将本地用户限制在其主目录中。 allow_writeable_chrootYES允许用户在chroot环境中创建或修改文件 说明在vsftpd.conf配置文件中allow_writeable_chrootYES表示允许在chroot环境中创建可写文件。chroot环境是一种安全机制可以将用户限制在其主目录中防止他们访问系统中的其他文件和目录。但是如果不允许在chroot环境中创建可写文件则用户将无法在其主目录中创建或修改文件这可能会影响其正常使用FTP服务。 当allow_writeable_chroot设置为YES时用户可以在chroot环境中创建可写文件。这意味着用户可以在其主目录中创建或修改文件而不会受到chroot环境的限制。这可以提高FTP服务的灵活性和可用性。 需要注意的是允许在chroot环境中创建可写文件可能会降低系统的安全性因为用户可以在其主目录中创建或修改任何文件。因此如果不需要在chroot环境中创建可写文件则建议将allow_writeable_chroot设置为NO。
⑥数据传输模式设置 FTP在传输数据时可以使用二进制方式也可以使用ASCII模式来上传或下载数据。
ascii_upload_enableYES/NONO 说明设置是否启用ASCII 模式上传数据。默认值为NO。ascii_download_enableYES/NONO 说明设置是否启用ASCII 模式下载数据。默认值为NO。 ⑦访问控制设置 a.控制主机访问tcp_wrappersYES/NOYES 说明设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制默认为yes。 b.控制用户访问 对于用户的访问控制可以通过/etc目录下的vsftpd.user_list和ftpusers文件来实现。userlist_file/etc/vsftpd.user_list 说明控制用户访问FTP的文件里面写着用户名称。一个用户名称一行。指定用户列表文件的路径该文件中列出的用户将被允许或拒绝访问FTP服务器。userlist_enableYES/NONO 说明是否启用vsftpd.user_list文件。 userlist_denyYES/NOYES 说明决定vsftpd.user_list文件中的用户是否能够访问FTP服务器。若设置为YES则vsftpd.user_list文件中的用户不允许访问FTP若设置为NO则只有vsftpd.user_list文件中的用户才能访问FTP。 /etc/vsftpd/ftpusers 说明文件专门用于定义不允许访问FTP服务器的用户列表 注意:如果userlist_enableYES,userlist_denyNO,此时如果在vsftpd.user_list和ftpusers中都有某个用户时那么这个用户是不能够访问FTP的即ftpusers的优先级要高。 ⑧访问速率设置anon_max_rate0 说明设置匿名登入者使用的最大传输速度单位为B/s0 表示不限制速度。默认值为0。local_max_rate0 说明本地用户使用的最大传输速度单位为B/s0 表示不限制速度。预设值为0。 ⑨超时时间设置accept_timeout60 说明设置建立FTP连接的超时时间单位为秒。默认值为60。connect_timeout60 说明PORT 方式下建立数据连接的超时时间单位为秒。默认值为60。data_connection_timeout120 说明设置建立FTP数据连接的超时时间单位为秒。默认值为120。idle_session_timeout300 说明设置多长时间不对FTP服务器进行任何操作则断开该FTP连接单位为秒。默认值为300 。 ⑩日志文件设置xferlog_enable YES/NOYES 说明是否启用上传/下载日志记录。如果启用则上传与下载的信息将被完整纪录在xferlog_file 所定义的档案中。预设为开启。由于生成日志还挺大生产环境我们不开启。xferlog_file/var/log/vsftpd.log 说明设置日志文件名和路径默认值为/var/log/vsftpd.log。xferlog_std_formatYES/NONO 说明如果启用则日志文件将会写成xferlog的标准格式如同wu-ftpd 一般。默认值为关闭。log_ftp_protocolYES|NONO 说明如果启用此选项所有的FTP请求和响应都会被记录到日志中默认日志文件在/var/log/vsftpd.log。启用此选项时xferlog_std_format不能被激活。这个选项有助于调试。默认值为NO。同样这个功能只建议在调试的时候开启。 ⑪定义用户配置文件 在vsftpd中可以通过定义用户配置文件来实现不同的用户使用不同的配置。user_config_dir/etc/vsftpd/userconf 说明设置用户配置文件所在的目录。当设置了该配置项后用户登陆服务器后系统就会到/etc/vsftpd/userconf目录下读取与当前用户名相同的文件并根据文件中的配置命令对当前用户进行更进一步的配置。 ⑫FTP的工作方式与端口设置 FTP有两种工作方式PORT FTP主动模式和PASV FTP被动模式listenYES 说明 指定被动模式时的公网IP地址时只能监听在IPv4地址 关于listenYES 具体来说listenNO表示vsftpd服务不以inetd方式运行而是以独立守护进程的方式运行。如果将listen设置为YES则表示vsftpd服务以inetd方式运行。 vsftpd可以以两种方式运行独立守护进程和inetd方式 独立守护进程方式是指vsftpd作为一个独立的进程运行它会一直在后台运行等待客户端的连接请求。这种方式的优点是可以提高服务的响应速度和并发处理能力因为它不需要每次都重新启动一个新的进程来处理客户端的请求。 inetd方式是指vsftpd作为inetd的一个服务运行每当有客户端连接请求时inetd会启动一个新的vsftpd进程来处理该请求。这种方式的优点是可以节省系统资源因为它只在需要时才会启动一个新的进程来处理客户端请求。 总的来说独立守护进程方式适合处理高并发的情况而inetd方式适合处理低并发的情况。在实际应用中可以根据具体的需求来选择合适的运行方式。 listen_ipv6NO 说明与listen冲突默认监听IPv6地址当监听在IPv4时IPv6必须禁用否则vsftpd.service将无法启动。 关于什么情况下要设置listen_ipv6NO listen_ipv6是vsftpd.conf配置文件中的一个选项用于指定是否启用IPv6监听。如果将listen_ipv6设置为YES则表示vsftpd服务将同时监听IPv4和IPv6地址如果将其设置为NO则表示vsftpd服务只监听IPv4地址。 在一些特定的情况下可能需要将listen_ipv6设置为NO例如 1、系统不支持IPv6如果系统不支持IPv6那么启用IPv6监听是没有意义的此时应该将listen_ipv6设置为NO。 2、安全性考虑如果系统管理员认为IPv6网络存在安全风险或者不希望vsftpd服务被IPv6地址访问那么可以将listen_ipv6设置为NO只允许IPv4地址访问。 3、性能考虑如果系统的网络环境中只有IPv4地址那么启用IPv6监听会增加系统的负担此时可以将listen_ipv6设置为NO以提高系统的性能。 需要注意的是如果系统同时支持IPv4和IPv6而listen_ipv6被设置为NO那么只有IPv4地址能够访问vsftpd服务IPv6地址将无法访问。如果需要同时支持IPv4和IPv6那么应该将listen_ipv6设置为YES。 pasv_address47.95.120.253 说明指定被动模式时的公网IP地址 listen_port21 说明设置FTP服务器建立连接所监听的端口默认值为21。 connect_from_port_20YES/NO 说明指定FTP使用20端口进行数据传输默认值为YES。 ftp_data_port20 说明设置在PORT方式下FTP数据连接使用的端口默认值为20。 pasv_enableYES/NOYES 说明若设置为YES则使用PASV工作模式若设置为NO则使用PORT模式。在vsftpd.conf配置文件中pasv_enableYES表示启用被动模式Passive ModeFTP。被动模式FTP是一种FTP数据传输模式其中客户端使用随机端口连接FTP服务器的数据端口而不是使用标准的FTP数据端口端口20。这种模式可以避免由于防火墙或NAT设备的限制而导致的FTP连接问题。 需要设置pasv_enableYES的情况包括 当FTP服务器位于防火墙或NAT设备后面时需要启用被动模式FTP以便客户端可以连接到FTP服务器的数据端口。 当FTP服务器需要与其他系统进行数据交换时需要启用被动模式FTP以便其他系统可以连接到FTP服务器的数据端口。 需要注意的是如果FTP服务器没有被防火墙或NAT设备限制并且不需要与其他系统进行数据交换则可以不启用被动模式FTP。在这种情况下可以将pasv_enable设置为NO以禁用被动模式FTP。 如果您需要启用被动模式FTP则需要在vsftpd.conf配置文件中将pasv_enable设置为YES。如果未设置则默认情况下被动模式FTP将被禁用。请注意如果您使用被动模式FTP则还需要在防火墙中打开FTP数据端口范围默认情况下是端口1024到65535。否则客户端可能无法连接到FTP服务器的数据端口 pasv_max_port0 说明在PASV工作模式下数据连接可以使用的端口范围的最大端口0 表示任意端口。默认值为0。 pasv_min_port0 说明在PASV工作模式下数据连接可以使用的端口范围的最小端口0 表示任意端口。默认值为0。 9ftp命令 ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件。 无论是windows系统还是centos系统都可以在命令行方式下面使用FTP命令连接和访问FTP服务器. FTP的命令行格式为
ftp [选项] [主机名或IP地址]ftp命令连接成功后用户需要在FTP服务器上登录登录成功将会出现“ftp”提示符。在提示符后可以进一步使用ftp提供的下级命令可以用help命令取得可供使用的命令清单也可以在help后面指定具体的命令名称获得这条命令的说明。
常用的二级命令有
ftpopen 重新建立一个新的连接。
ftpcd: 改变目录。
ftpdir 列出当前远端主机目录中的文件。
ftpget从远端主机中传送至本地主机中。
ftpdelete: 删除远端主机中的文件。
ftpmget从远端主机接收一批文件至本地主机。
ftpmput将本地主机中一批文件传送至远端主机。
ftpmkdir在远端主机中建立目录。
ftpprompt交互提示模式。
ftpput将本地一个文件传送至远端主机中。
ftpbye: 终止主机FTP进程,并退出FTP管理方式.
ftplcd c:/aaa 这里就是定义你要get的文件放在本地的哪个地方 这里是放在c盘 aaa文件下10访问FTP服务器的方法 图形界面通过浏览器访问FTP服务器,如图所示。目前最新的浏览器移除了该功能
ftp://用户名密码FTP服务器IP例如ftp://xxx:123456ftp.dz.com 命令行界面ftp IP地址 配置实施
安装FTP服务
1安装包说明 vsftpd-3.0.2-25.el7.x86_64 说明提供了FTP服务的主要程序及相关文件。 2在可以联网的机器上使用yum工具安装如果未联网则挂载系统光盘进行安装。推荐防止自己安装少依赖
安装FTP客户端yum –y install ftp
安装FTP服务器yum –y install vsftpd3还可以使用rpm安装。
rpm -ivh vsftpd-3.0.2-25.el7.x86_64.rpm4查看安装状况,显示结果如图所示
rpm -qa|grep ftp5管理FTP服务器 ①可以通过service命令来管理FTP服务如图所示。
[rootlocalhost 桌面]# systemctl start vsftpd #启动FTP服务
[rootlocalhost 桌面]# systemctl restart vsftpd #重启FTP服务
[rootlocalhost 桌面]# systemctl stop vsftpd #停止FTP服务
[rootlocalhost 桌面]# systemctl status vsftpd #查看FTP服务工作状态FTP服务器配置流程
备份主配置文件cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak编辑主配置文件/etc/vsftpd/vsftpd.conf 。编辑用户配置文件/etc/vsftpd/user_list。编辑用户配置文件/etc/vsftpd/ftpusers。重新加载配置文件或重新启动FTP服务使配置文件生效。
配置匿名用户
要求允许匿名用户登录登录名为anonymous没有密码。匿名用户只能下载不能上传不能创建目录和文件不能对文件进行更名和删除。 匿名用户的主目录/var/ftp 匿名用户的下载目录/var/ftp/pub 步骤 1在匿名用户的下载目录创建目录files在files目录下创建文件test供下载使用。
mkdir files
vim /var/ftp/pub/files/test.txt #随便写信息2修改主配置文件vsftpd.conf修改相关选项。 备份主配置文件cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak 临时关闭SELinux
setenforce 0修改vsftpd配置文件
vim /etc/vsftpd/vsftpd.conf查找修改以下内容如果没有直接写在最后面。
anonymous_enableYES #允许匿名访问
ftp_usernameftp #定义匿名登入的使用者名称
anon_root/var/ftp #使用匿名登入时所登入的目录。
anon_other_write_enableNO #是否允许匿名登入者更多于上传或者建立目录之外的权限如删除或者重命名。
anon_mkdir_write_enableNO #是否允许匿名登入者有新增目录的权限
anon_upload_enableNO #是否允许匿名登入者有上传文件非目录的权限
anon_world_readable_onlyYES # 是否允许匿名登入者下载可阅读的档案可以下载到本机阅读不能直接在FTP服务器中打开阅读。
no_anon_passwordYES # 若是启动这项功能则使用匿名登入时不会询问密码。
pasv_enableYES #使用PASV工作模式
pasv_max_port9000 #被动模式最大
pasv_min_port8888 #被动模式最小范围允许读文件并且下载。
chmod 755 /var/ftp/pub/3重启vsftpd服务,使配置文件生效。
systemctl restart vsftpd.service开启21端口
添加指定需要开放的端口firewall-cmd --add-port21/tcp --permanent
重载入添加的端口firewall-cmd --reload
查询指定端口是否开启成功firewall-cmd --query-port21/tcp4使用ftp命令测试结果如图。
在D盘下的Test文件夹查看文件
上传文件创建目录均被拒绝
5使用资源管理器下载文件 资源管理器只能使用被动模式。
打开资源管理器输入
ftp://192.168.88.130/直接图形化界面把你需要下载的东西拖出来就好。
配置本地用户
1创建用户和组 创建一个组用于存放ftp用户
groupadd ftpgroups/home/ftp为自己建立的目录不存在就创建一个在ftp目录下创建files目录并在files目录下创建文件test1将files目录权限设置为ow。
格式
useradd -g ftpgroups -d /home/ftp/files 登陆用户名
命令useradd -g ftpgroups -d /home/ftp/files stu2useradd -g ftpgroups -d /home/ftp/files stu2chmod ow files设置密码 passwd 登陆用户名
passwd stu1
passwd stu2
#嫌写密码麻烦就强制修改简单的
echo 123 | passwd --stdin stu1
echo 123 | passwd --stdin stu2设置不允许用户登陆系统
格式usermod -s /sbin/nologin 用户名
命令 usermod -s /sbin/nologin stu1usermod -s /sbin/nologin stu2注意/sbin/nologin表示新建用户不能登录到服务器的操作系统仅能用作登录FTP服务器。 2修改主配置文件/etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/vsftpd.confchroot_local_userYES #用于指定用户列表文件中的用户是否允许切换到上级目录。
chroot_list_enableYES #设置是否启用chroot_list_file配置项指定的用户列表文件。
chroot_list_file/etc/vsftpd/chroot_list #用于指定用户列表文件该文件用于控制哪些用户可以切换到用户家目录的上级目录
user_config_dir/etc/vsftpd/userconfig#设置用户配置文件所在的目录。当设置了该配置项后用户登陆服务器后系统就会到/etc/vsftpd/userconf目录下读取与当前用户名相同的文件并根据文件中的配置命令对当前用户进行更进一步的配置。
allow_writeable_chrootYES #允许用户在chroot环境中创建或修改文件在/etc/vsftpd/目录下创建chroot_list文件并将stu1用户和stu2用户的用户名加入该文件. 注意文件中每行只能填写一个用户名。加入到该文件中的用户可以访问家目录和家目录以外的目录。则未加入chroot_list文件的用户只能访问家目录。 在/etc/vsftpd/目录下创建chroot_list文件并将stu1用户和stu2用户的用户名加入该文件.
vim /etc/vsftpd/chroot_list注意文件中每行只能填写一个用户名。加入到该文件中的用户可以访问家目录和家目录以外的目录。则未加入chroot_list文件的用户只能访问家目录。
ftp报错331Please specify password 530 Login incorrect
解决方法:
vi /etc/pam.d/vsftpd注释掉/etc/pam.d/vsftpd文件里这一行 #auth required pam_shells.so
#%PAM-1.0
#session optional pam_keyinit.so force revoke
auth required pam_listfile.so itemuser sensedeny file/etc/vsftpd/ftpusers onerrsucceed
#auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth第二种:
vi /etc/shells在最后一行下边加上
/sbin/nologin值得注意的是 添加完之后的代码下一行必须是~别自己乱加回车
两种方式任选一种就可以
这样最后重启服务器就可以解决啦! 参考https://blog.csdn.net/weixin_45302751/article/details/106267894#:~:textftp%E8%BF%9E%E6%8E%A5%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%B6%E6%8A%A5%E9%94%99USER%20%2A%2A%2A331Please%20specify%20passwordPASS%20%2A%2A%2A530%20Login%20incorrect----------------%3E%E7%BB%8F%E8%BF%87%E5%A4%A7%E9%87%8F%E6%8E%92%E6%9F%A5%E5%8F%91%E7%8E%B0%E4%BA%86%E9%94%99%E8%AF%AF%2C%E6%98%AF%E5%9B%A0%E4%B8%BA%E7%94%A8%E6%88%B7%E9%89%B4%E6%9D%83%E9%97%AE%E9%A2%98%E6%B2%A1%E8%A7%A3%E5%86%B3%E5%A5%BD%2C,%28%E5%9B%A0%E4%B8%BA%E7%94%A8%E6%88%B7%E6%98%AFnologin%E7%9A%84%2C%E6%89%80%E4%BB%A5%E5%AD%98%E5%9C%A8%29%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95%3A%E7%AC%AC%E4%B8%80%E7%A7%8D%3Avi%20%2Fetc%2Fpam.d%2Fvsftpd%E6%B3%A8%E9%87%8A%E6%8E%89%2Fetc%2Fpam.d%2Fvsftpd%E6%96%87%E4%BB%B6%E9%87%8C%E8%BF%99%E4%B8%80%E8%A1%8C%EF%BC%9A%23auth%20required%20pam_shells.so%23%25PAM-1.0%23session._331%20please%20specify%20the%20password. 测试 stu2去上级目录失败
stu1成功 参考https://blog.csdn.net/Dontla/article/details/130427094