[TOC] 文件传输协议FTP(File Transfer Protocol)用来在两台计算机之间互相传送文件。FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令。另一个是数据链路,用来上传或下载数据。在上传文件到实例前,您需要为实例搭建FTP站点。 # Centos安装vsftp ## 安装vsftp ``` yum install vsftpd -y ``` ## 添加ftp账户和目录 i. 检查nologin文件的位置。 通常在/usr/sbin或者/sbin下。 ii. 创建账户。 以下命令创建/ftpdata/www/wwwroot目录,并指定该目录为ftpuser的家目录 ``` mkdir -p /ftpdata/www/wwwroot useradd -d /ftpdata/www/wwwroot -s /sbin/nologin ftpuser ``` iii 修改账户密码 `passwd ftpuser` iv 修改指定目录的权限 `chown -R ftpuser.root /ftpdata/www/wwwroot` ``` chown -R 用户名:组名 ./ chown -R ftpuser1.root /home/vsftpd/ftpuser1 chown -R ftpuser1.root /home/vsftpd/ftpuser2 ``` ## 配置vsftp i. 打开vsftp配置文件 `vi /etc/vsftpd/vsftpd.conf` ii 修改配置文件中 `anonymous_enable=YES` 为` anonymous_enable=NO` iii 删除如下配置前的注释符号 # ``` local_enable=YES write_enable=YES chroot_local_user=YES ``` iv. 按Esc键并输入` :wq` ,保存修改并退出编辑 ## 修改shell配置 i. 打开shell配置文件 `vi /etc/shells` ii 查看文件中是否有`/usr/sbin/nologin`或`/sbin/nologin`,没有则追加到文件中 ```autoit # 因为vsftpd服务程序所在的目录中,默认存放着两个名为用户名单的文件,ftpusers和user_list # 在ftpusers和user_list两个用户文件中将root用户删除就可以登录了 [root@localhost ~]# cat /etc/vsftpd/user_list root bin daemon [root@localhost ~]# cat /etc/vsftpd/ftpusers root bin daemon ``` ## 设置 SELinux 域允许策略 ```coffeescript # 先按照前面实验中的步骤开启SELinux域的允许策略,以免再次出现操作失败的情况 [root@localhost ~]# setsebool -P ftpd_full_access=on [root@localhost ~]# getsebool -a | grep ftp ftp_home_dir –> off ftpd_anon_write –> off ftpd_connect_all_unreserved –> off ftpd_connect_db –> off ftpd_full_access –> off ftpd_use_cifs –> off ftpd_use_fusefs –> off ftpd_use_nfs –> off ftpd_use_passive_mode –> off httpd_can_connect_ftp –> off httpd_enable_ftp_server –> off sftpd_anon_write –> off sftpd_enable_homedirs –> off sftpd_full_access –> on sftpd_write_ssh_home –> off tftp_anon_write –> off tftp_home_dir –> off ``` ## 启动vsftp服务并测试登录 i 启动vsftp服务 `service vsftpd start` ii 使用账户ftpuser测试是否可以登录FTP。 本示例中的目录是`/ftpdata/www/wwwroot` ## 登录 ``` yum install ftp ftp 127.0.0.1 命令"!ls"查看登录远程[ftp服务器](https://so.csdn.net/so/search?q=ftp%E6%9C%8D%E5%8A%A1%E5%99%A8&spm=1001.2101.3001.7020)时的本地服务器目录 ``` # Ubuntu和Debian安装vsftp ## 更新软件源 `apt-get update` ## 安装vsftp `apt-get install vsftpd -y` ## 添加ftp账户和目录 i. 检查nologin文件的位置。 通常在/usr/sbin或者/sbin下。 ii. 创建账户。 以下命令创建/ftpdata/www/wwwroot目录,并指定该目录为pwftp的家目录 ``` mkdir -p /ftpdata/www/wwwroot useradd -d /ftpdata/www/wwwroot -s /sbin/nologin pwftp ``` iii 修改账户密码 `passwd pwftp` iv 修改指定目录的权限 `chown -R pwftp.pwftp /ftpdata/www/wwwroot` ## 配置vsftp i. 打开vsftp配置文件 `vi /etc/vsftpd.conf` ii. 修改配置文件中 `anonymous_enable=YES` 为 `anonymous_enable=NO` iii. 删除如下配置前的注释符号 # ``` local_enable=YES write_enable=YES chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list ``` iv. 按Esc键并输入` :wq `,保存修改并退出编辑。 v. 打开`/etc/vsftpd.chroot_list`文件,添加ftp的账户名,然后保存退出 ## 修改shell配置 i. 打开shell配置文件 `vi /etc/shells` ii 查看文件中是否有`/usr/sbin/nologin`或`/sbin/nologin`,没有则追加到文件中 ## 启动vsftp服务并测试登录 i 启动vsftp服务 `service vsftpd start` ii 使用账户pwftp测试是否可以登录FTP。 本示例中的目录是`/ftpdata/www/wwwroot` # 登录 ``` ftp [hostname| ip-address] ``` ## 安装ftp ``` yum install ftp ``` ``` 连接ftp服务器   格式:ftp \[hostname| ip-address\]   a)在linux命令行下输入:ftp 10.18.34.115   b)服务器询问你用户名和口令,分别输入yint和相应密码,待认证通过即可。   2. 下载文件   下载文件通常用get和mget这两条命令。   a) get   格式:get \[remote-file\] \[local-file\]   将文件从远端主机中传送至本地主机中.   如要获取服务器上E:\\rose\\1.bmp,则   ftp> get /rose/1.bmp 1.bmp (回车)   b) mget         格式:mget \[remote-files\]   从远端主机接收一批文件至本地主机.   如要获取服务器上E:\\rose\\下的所有文件,则   ftp> cd /rose   ftp> mget \*.\* (回车)   注意:文件都下载到了linux主机的当前目录下。比如,在 /root/yint下运行的ftp命令,则文件都下载到了/root/yint下。   3.上传文件   a) put   格式:put local-file \[remote-file\]   将本地一个文件传送至远端主机中.   如要把本地的1.bmp传送到远端主机E:\\rose,并改名为333.bmp   ftp> put 1.bmp /rose/333.bmp (回车)   b) mput   格式:mput local-files   将本地主机中一批文件传送至远端主机.   如要把本地当前目录下所有bmp文件上传到服务器E:\\rose 下   ftp> cd /rose (回车)   ftp> mput \*.bmp (回车)   注意:上传文件都来自于主机的当前目录下。比如,在 /root/yint下运行的ftp命令,则只有在/root/yint下的文件linux才会上传到服务器E:\\rose 下。   4. 断开连接   bye:中断与服务器的连接。   ftp> bye (回车) ``` > 参考 > 搭建vsftp 多用户 多目录https://blog.csdn.net/chanye2cj/article/details/126011955 https://www.cnblogs.com/lei0213/p/8657039.html > https://blog.csdn.net/hanchao_h/article/details/72731996?locationNum=11&fps=1 > https://blog.51cto.com/tonychiu/326636 > https://help.aliyun.com/document_detail/41279.html