ftp在哪里ftp


公司自己的服务器,centos7上用vsftpd搭建了FTP服务,防火墙关闭了现在可以ftp命令访问,通过filezilla工具访问但是浏览器不能访问,浏览器没任何提示,curlftp://ip:port会提示curl:(67)essdenied:530大概是什么原因呀,要检查哪里?

在linux中添加ftp用户,并设置相应的权限,操作步骤如下:
1、环境:ftp为vsftp。被限制用户名为test。被限制路径为/home/test2、建用户:在root用户下:useradd-d/home/testtest//增加用户test,并制定test用户的主目录为/home/testpasswdtest//为test设置密码
3、更改用户相应的权限设置:usermod-s/sbin/nologintest//限定用户test不能,只能ftpusermod-s/sbin/bashtest//用户test恢复正常usermod-d/testtest//更改用户test的主目录为/test4、限制用户只能访问/home/test,不能访问其他路径,修改/etc/vsftpd/vsftpd.conf如下:chroot_list_enable=YES//限制访问自身目录#(defaultfollows)chroot_list_file=/etc/vsftpd/vsftpd.chroot_list编辑vsftpd.chroot_list文件,将受限制的用户添加进去,每个用户名一行改完配置文件,不要忘记重启vsFTPd服务器[root@linuxsir001root]#/etc/init.d/vsftpdrestart5、如果需要允许用户修改密码,但是又没有登录系统的权限:usermod-s/usr/bin/passwdtest//用户后将直接进入改密界面
6、SFTP指定端口号登陆sftp-oPort=60001root@192.168.0.254使用-o选项来指定端口号.-oPort=远程端口号

我在服务器上写了个备份远程MYSQL数据库的脚本,添加进计划任务,原本计划是每12小时执行一次,但是结果却不是我想象中的那样,不知道哪里错了,请指点一下crontab-l结果:通过FTP上看生成的文件,都是每分钟生成的(下图计划任务是调用自动备份远程数据库,每次共备份3个数据库)请教这哪里错了?

#简介FTP安装及配置,文档时间:2020-3-03-31.#1、redhat(centos)
1.安装软件```yum-yinstallvsftpd```
2.启动服务```sftpd```
3.查看相关文件```cd/etc/vsftpd-rw-------1rootroot125Mar222017ftpusers黑名单文件,此文件里的用户不允许访问FTP服务器-rw-------1rootroot361Mar222017user_list白名单文件,是允许访问FTP服务器的用户列表-rw-------1rootroot4599Mar222017vsftpd.conf核心配置文件-rwxr--r--1rootroot338Mar222017vsftpd_conf_migrate.shFTP服务```
4.创建chroot_list文件,后面锁定用户目录的时候会使用到```vichroot_listwq```
5.配置文件:```ftpd_banner=etologinxxfyftpserviceanonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESchroot_local_user=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_listallow_writeable_chroot=YESlisten=YESlisten_port=29999#启用pasv(被动)模式pasv_enable=YES#设置pasv模式中的可用端口范围(开始)pasv_min_port=30000#设置pasv模式中的可用端口范围(结束)pasv_max_port=30100#设置pasv模式中的外网IPpasv_address=你的服务器IP#关闭p功能p_sandbox=NOpam_service_name=vsftpduserlist_enable=YESuserlist_deny=NOtcp_wrappers=YES```>一般情况下最好将原配置文件进行备份,避免配置出现错误导致无法恢复。
5.添加防火墙规则```开放端口(--permanent永久生效,没有此参数重启后失效)firewall-cmd--zone=public--add-port=21/tcp--permanent重新载入firewall-cmd--reload查看firewall-cmd--zone=public--query-port=21/tcp如果不愿意关闭防火墙,需要防火墙添加FTP服务:firewall-cmd--permanent--zone=public--add-service=ftpfirewall-cmd--reload```>若防火墙自身关闭,无需进行此操作
6.创建一般用户,这些用户只可以在自己的用户目录下进行文件的上传```#创建ftpuseruseradd-d/var/ftp/0401-gftpmk0401#设置密码passwdmk0401#user_list文件中添加该账户#修改文件夹权限支持组内访问chmod-Rg rwx0401```>注意此处授予的组内访问,之后我们创建的超管用户,必须归属于ftp用户组。
6.创建超级用户,这些用户可以访问所有的文件```useradd-d/var/ftp/ftpadmin-gftpftpadminpasswdftpadmin#user_list文件中添加该账户#chroot_list中添加该用户```但需要注意的是,ftpadmin虽然可以跨越文件夹,但是对于linux权限管控的文件还是不能直接访问,例如之前的ftp文件夹,可以对FTP文件进行授权,开启对ftp组的访问权限。``````
7.重启服务```sftpd```
8.将ftp设置为开机自启动```chkconfigvsftpdon```#ubuntu版本
1.安装```apt-getinstallvsftpd```
2.配置文件位置`/etc/vsftpd.conf````#监听默认21端口listen=YES#listen_ipv6=YES#不允许匿名登录anonymous_enable=NO#允许本地用户登录local_enable=YES#允许上传文件到ftp服务器write_enable=YES#dirmessage_enable=YES#use_localtime=YES##Activateloggingofuploads/downloads.xferlog_enable=YES##MakesurePORTtransferconnectionsoriginatefromport20(ftp-data).connect_from_port_20=YES#chown_uploads=YES#chown_username=whoever#xferlog_file=/var/log/vsftpd.log#xferlog_std_format=YES#idle_session_timeout=600#data_connection_timeout=120#nopriv_user=ftpsecure#async_abor_enable=YES#ascii_upload_enable=YES#ascii_download_enable=YES#ftpd_banner=etoblahFTPservice.#deny_email_enable=YES#banned_email_file=/etc/vsftpd.banned_emails#chroot_local_user=YESchroot_local_user=YESchroot_list_enable=YES#(defaultfollows)chroot_list_file=/etc/vsftpd.chroot_list#ls_recurse_enable=YESsecure_chroot_dir=/var/run/vsftpd/empty#ThisstringisthenameofthePAMservicevsftpdwilluse.pam_service_name=vsftpdrsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pemrsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.keyssl_enable=NO#sftpduseautf8filesystem.#utf8_filesystem=YES#配置ftp服务器的上传下载文件所在的目录。local_root=/home/xxfyftp/ftp/#启用pasv(被动)模式pasv_enable=YES#设置pasv模式中的可用端口范围(开始)pasv_min_port=30000#设置pasv模式中的可用端口范围(结束)pasv_max_port=30100#设置pasv模式中的外网IPpasv_address=此处填写你的外网IP#关闭p功能p_sandbox=NO```>由于windows用户默认连接FTP服务器使用的是被动模式,而ubuntu上面默认是主动模式,因此需要在配置文件中显示的指定模式为被动模式。
3.配置用户```useraddxxfyftp-mpasswdxxfyftp```
4.配置用户目录权限。
5.开启防火墙```ufwallow21ufwallow30000:30010```
6.若服务器是运营商管理,需要运行商的安全组策略开启我们需要的21、30000-30100/tcp.#附录
1、配置相关解释```anonymous_enable=NO#不允许匿名用户登陆local_enable=YES#vsftpd所在系统的用户可以登录vsftpdwrite_enable=YES#允许使用任何可以修改文件系统的FTP的指令anon_upload_enable=NO#匿名用户不可以上传文件anon_mkdir_write_enable=NO#匿名用户不可以修改文件xferlog_enable=YES#启用一个日志文件,用于详细记录上传和下载。use_localtime=YES#使用本地时间而不是GMTvsftpd_log_file=/var/log/vsftpd.log#vsftpd日志存放位置dual_log_enable=YES#用户登陆日志connect_from_port_20=YES#开启20端口xferlog_file=/var/log/xferlog#记录上传下载文件的日志xferlog_std_format=YES#记录日志使用标准格式idle_session_timeout=600#登陆之后超时时间60秒,登陆之后,一分钟不操作,就会断开连接。chroot_local_user=YES#用于指定用户列表文件中的用户,是否允许切换到上级目录listen=YES#开启监听pam_service_name=vsftpd.vu#验证文件的名字userlist_enable=YES#允许由userlist_file指定文件中的用户登录FTP服务器tcp_wrappers=YES#支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)guest_enable=YES#起用虚拟用户guest_username=taokey#虚拟用户名local_enable=YES:是否允许本地用户访问;local_umask=022:设置本地用户所上传文件的默认权限掩码值(反掩码);local_root=/var/ftp:设置本地用户的FTP根目录(默认为用户的宿主目录);chroot_local_user=YES:是否将FTP本地用户禁锢在宿主目录中;allow_writeable_chroot=YES:允许被限制用户的主目录具有写权限;local_max_rate=0:限制本地用户的最大传输速率(0为无限制),单位为字节/秒(B/s)```
2、FTP常用命令``````
3、文件解释*ftpusers文件:此文件中列出的用户将禁止登录vsftpd服务器。默认包含root、bin、daemon等用于系统运行的特殊用户;*user_list文件:此文件中包含的用户可能被禁止,可能被允许,具体取决于主配置文件vsftpd.conf中的设置,当存在“userlist——enable=YES”时,user_list列表文件方可生效,若继续指定“userlist_deny=YES”,则功能与ftpusers文件一样,表示禁止此列表中的用户登录;若指定“userlist_deny=NO”,则仅允许列表中的用户登录。

今天要做一个网络日志的迁移程序,搬文件的话,想来想去还是用FTP吧。FTP用于通过TCP网络从一台主机向另外一台主机传送文件。这篇文章解说了怎样在Ubuntu14.04上安装FTP服务器。流行的FTP服务器端软件有:PureFTP,VsFTPD,ProFTPD。这里我采用轻量并且坑少的VsFTPd。在Ubuntu14.04上安装FTP服务第一步>>更新库linuxidc@linuxidc:~$sudoapt-getupdate第二步>>采用如下命令安装VSFTPD的包linuxidc@linuxidc:~$sudoapt-getinstallvsftpd第三步>>安装完成后打开/etc/vsftpd.conf文件,按如下所述修改。取消如下行的注释(行号为29和33)write_enable=YESlocal_umask=022>>取消如下行的注释(行号120)来阻止除了用户文件夹意外的文件夹。chroot_local_user=YES在文件最后增加如下一行:allow_writeable_chroot=YES>>添加如下行开启消极模式pasv_enable=Yespasv_min_port=40000pasv_max_port=40100第四步>>用如下命令重启vsftpd服务linuxidc@linuxidc:~$sudoservicevsftpdrestart第五步>>现在ftp服务器正在监听21端口。用如下命令创建用户。用/usr/sbin/nologin脚本来阻止ftp用户访问bash脚本。linuxidc@linuxidc:~$sudouseradd-mjohn-s/usr/sbin/nologinlinuxidc@linuxidc:~$sudopasswdjohn第六步>>开启nologin脚本的开机访问。打开/etc/shells并把如下行添加进去。/usr/sbin/nologin现在试着用刚创建的用户通过21端口连接ftp服务器。客户端采用winscp或filezilla。验证用户是不是真的不能访问home文件夹之外的文件夹。需要特别说明一下的是,在21端口上使用ftp是非常危险的。强烈建议使用SFTP。请看下面的SFTP的配置。安全的FTP(SFTP)SFTP称作“安全的FTP”,它使用ssh文件传输协议。所以我们需要安装openssh-server。如果还没装的话,执行如下命令。linuxidc@linuxidc:~$sudoapt-getinstallopenssh-server第七步>>为FTP用户创建一个新的用户组ess。linuxidc@linuxidc:~$ess第八步>>在/etc/ssh/sshd_config中做如下修改>>找到并注释掉下面一行Subsystemsftp/usr/lib/openssh/sftp-server在文件的最后增加如下行essChrootDirectory%hX11ForwardingnoAllowTcpForwardingnoForceCommandinternal-sftp第九步>>重启sshd服务linuxidc@linuxidc:~$sudoservicesshrestart第十步>>下面几步用来创建访问SFTP服务的用户。创建用户john,属于ess组并且执行/usr/bin/nologin脚本linuxidc@linuxidc:~$ess-s/usr/sbin/nologinlinuxidc@linuxidc:~$sudopasswdjohnChangeownershipforthehomedirectory.linuxidc@linuxidc:~$sudochownroot/home/john在home文件夹创建一个用于写入文件的文件夹并修改文件夹的所有者。linuxidc@linuxidc:~$sudomkdir/home/john/wwwlinuxidc@linuxidc:~$sudochownjohn:ess/home/john/www现在用SFTP试着连接服务器(端口:22),并确保用户可以往www文件夹上传文件,而且也不能访问home文件夹以外的文件。如果你想让FTP和SFTP并存,在创建用户时按照上面的第十步操作就行。对于已经存在的用户,可以像下面这样把他们移动到ess组,创建文件夹结构并修改所有权。linuxidc@linuxidc:~$ess-s/usr/sbin/nologinlinuxidc@linuxidc:~$sudochownroot/home/johnlinuxidc@linuxidc:~$sudomkdir/home/john/wwwlinuxidc@linuxidc:~$sudochownjohn:ess/home/john/www现在你可以通过FTP,也可以通过SFTP向www文件夹上传文件了。玩转vsftpd服务器的四大高级配置:vsFTPd配置教程:Ubuntu实用简单的FTP架设Ubuntu上架设FTP服务器和Apache服务器Ubuntu13.04安装LAMPvsftpdWebminphpMyAdmin服务及设置RHEL6平台下SeLinux和vsftpd的匿名上传的简单案例Linux系统vsftpd源码安装openSUSE13.2/13.1下安装配置FTP服务器vsftpd更多Ubuntu相关信息见Ubuntu专题页面ews.aspx?tid=2本文永久更新链接地址:

14.4exportfs命令14.5NFS客户端问题15.1FTP介绍15.2/15.3使用vsftpd搭建ftp14.4exportfs命令:exportfs命令是跟nfs-utils包一起安装的应用场景:我们共享了一个目录,需要更改或者增加目录,就需要更改配置文件和重启NFS服务。如果远程客户端正在挂载着使用着,如果停掉远程客户端就会挂起(nginx或者php),这个影响会很大。就是D进程不可中断的进程。只能先卸载下来(umount)在重启NFS,但有几十台机器就不合适了。就会使用exportfs~~1.exportfs常用选项-a全部挂载或者全部卸载一般使用-arv,就会让配置文件生效-r重新挂载-u卸载某一个目录-v显示共享目录以下操作在服务端上vim/etc/exports//增加/tmp/192.168.30.0/24(rw,sync,no_root_squash)exportfs-arv//不用重启nfs服务,配置文件就会生效~~
2.以下操作在客户端mount-tnfs192.168.30.134:/tmp/tmp或mount-tnfs-onfsvers=3192.168.30.134:/tmp//mnt/#(为解决已经出现nobody,下一节有讲)。要先umonut/mnt/ls-l!$-oremount,nfsvers=3(-o重新挂在完以后,可以使用-oremount。不卸载的话不能直接-oremount)实例:~~
1.[root@afeilinux-01~]#vim/etc/exports打开那个配置文件/home/nfstestdir192.168.30.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)/tmp/192.168.30.134(rw,sync,no_root_squash)在下面加入一行配置,选了no_root_squash(不限制root)此时写的是服务端的IP[root@afeilinux-01~]#exportfs-arv再exportfs-arv重新加载显示共享目录报错exportfs:Nooptionsfor/home/nfstestdir:suggest(sync)toavoidwarningexportfs:Nooptionsfor192.168.30.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000):suggest(sync)toavoidwarningexportfs:Nooptionsfor192.168.30.134/24(rw,sync,no_root_squash,no_subtree_check):suggest(sync)toavoidwarningexporting:192.168.30.134/24(rw,sync,no_root_squash,no_subtree_check)exportfs:Failedtostat192.168.30.134/24(rw,sync,no_root_squash,no_subtree_check):Nosuchfileordirectoryexporting:192.168.30.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)exportfs:Failedtostat192.168.30.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000):Nosuchfileordirectoryexporting:/home/nfstestdir检查配置文件[root@afeilinux-01~]#vim/etc/exports/home/nfstestdir192.168.30.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)/tmp/192.168.30.134/24(rw,sync,no_root_squash)发现第一行配置文件只能写成一行,两行会报错。第二行少了/。exporting192.168.30.134/24:/tmpexporting192.168.30.0/24:/home/nfstestdir显示有了双方关闭防火墙和selinux,不然会报错cat/var/log/messages|grepmount~~
2.[root@afeilinux-02~]#showmount-e192.168.30.134在02上showmount看一下有没有Exportlistfor192.168.30.134:192.168.30.134/24(rw,sync,no_root_squash)*192.168.30.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)*/home/nfstestdir[root@afeilinux-02~]#mount-tnfs192.168.30.134:/tmp//mnt/在02上挂载到/mnt(这时的IP写的是服务端的,就是制定服务端的IP及共享的目录)到本机的/mnt此时,02的/mnt就是01的/tmpmount.nfs:/mntisbusyoralreadymounted[root@afeilinux-02~]#df-h看一下有没有这个挂载文件系统容量已用可用已用%挂载点/dev/sda346G4.9G41G11%/devtmpfs476M0476M0%/devtmpfs487M7.7M479M2%/runtmpfs487M0487M0%/sys/fs/cgroup192.168.30.134:/home/nfstestdir46G4.9G41G11%/mnt是有的在[root@afeilinux-02mnt]#下挂载mount-tnfs192.168.30.134:/tmp//mnt/创建文件报错vi/mnt/1212.txt文件无法保存取消挂载[root@afeilinux-02mnt]#umount-l192.168.30.134:/tmp//mnt/再挂载[root@afeilinux-02~]#mount-tnfs192.168.30.134:/tmp//mnt/[root@afeilinux-02~]#vi/mnt/1212.txt在02上测试一下,在02的挂载点/mnt下建个文件[root@afeilinux-02~]#ls-l/mnt/1212.txt看一下-rw-r--r--.1rootroot07月3114:21/mnt/1212.txt属主属组为root[root@afeilinux-01~]#ls-l/tmp/1212.txt回到01上看一下-rw-r--r--.1rootroot07月3114:21/tmp/1212.txt属主属组也是root~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~14.5NFS客户端问题:~~NFS4版本会有该问题,尤其是centos6~~应用场景:客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody。方法如下两种:~
1.客户端挂载时加上-onfsvers=3#指定为3版本~
2.客户端和服务端都需要vim/etc/idmapd.conf//把“#Domain=local.domain.edu”改为“Domain=”(这里的,随意定义吧),然后再重启rpcidmapd服务(在centos7上是没有rpcidmapd服务的,需要的话重启rpcbind就可以)实例:客户端和服务端都需要vim/etc/idmapd.conf//把“#Domain=local.domain.edu”改为“Domain=”(这里的,随意定义吧),然后再重启rpcidmapd服务(在centos7上是没有rpcidmapd服务的,需要的话重启rpcbind就可以)需要的话重启rpcbind就可以[root@afeilinux-02~]#umount/mnt/先卸载02的挂载点[root@afeilinux-02~]#mount-tnfs-o,nfsvers=3192.168.30.134:/tmp//mnt/再-o,nfsvers=3[root@afeilinux-02~]#mount-tnfs-oremount,nfsvers=3192.168.30.134:/tmp//mnt/执行完上一步,才能-umount(没什么用,因为上一步已经挂载了,只是为了体现remount吧)-rw-r--r--.1rootroot07月3114:34/mnt/1213.txt不明白客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~15.1FTP介绍:应用场景:之前接触过lrzsz(windows与linux互传)。在文件太大(超过4G)或者,使用阿里云的机器存在跳板机(一台机器调到另一台机器,中间就有一个跳板机)的情况下,lrzsz会不好使。FTP就可以解决。可以让我们在linux服务器上,搭建FTP服务。客户端上(比如windows)安装一个客户端软件。就可以连到服务端,吧本地的文件传到服务器上去,也可以把服务器的文件下载到本地来。这就是FTP服务器~
1.FTP是FileTransferProtocol(文件传输协议,简称文传协议)的英文简称,用于在上控制文件的双向传输。~
2.FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。~
3.小公司用的多,大企业不用FTP,因为不安全(使用自动化发布的工具,可理解为版本的更新上线)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~15.2/15.3使用vsftpd搭建ftp:centos上自带的ftp服务软件包就叫vsftpd~1.centos上自带vsftpd~2.yuminstall-yvsftpd~3.useradd-s/sbin/nologinvirftp因为创建普通用户是可以通过ftp来登录系统的,这样不安全。所以要要设置一个虚拟用户,让他无法登录系统创建普通用户的目的就是让这些虚拟的用户做一个映射的。就是在上传或者下载的时候要有一个用户去执行,就是我们再次创建的这个用户~4.vim/etc/vsftpd/vsftpd_login//内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行这个文件为虚拟用户的密码文件,定义用户名和密码testuser1aminglinux~5.chmod600/etc/vsftpd/vsftpd_login~6.db_load-T-thash-f/etc/vsftpd/vsftpd_login/etc/vsftpd/vsftpd_login.dbdb_load将这个密码文件转换成计算机识别的二进制文件.db这个文件是不能直接cat的~7.mkdir/etc/vsftpd/vsftpd_user_conf创建虚拟用户的配置文件所在的目录,也是自定义的~8.cd/etc/vsftpd/vsftpd_user_conf~9.vimtestuser1//加入如下内容创建第一个用户的配置文件,用户的名字要跟上面定义的用户名保持一致(~
4.)local_root=/home/virftp/testuser1#定义虚拟用户的家目录anonymous_enable=NO#是否允许匿名用户write_enable=YES#是否允许可写local_umask=022#权限,和系统的权限是保持一致的anon_upload_enable=NO#是否允许匿名用户可上传anon_mkdir_write_enable=NO#是否允许匿名用户可创建用户并且写idle_session_timeout=600#当我们连接ftp空闲时间段,超出600秒断开(断开后重新登录)data_connection_timeout=120#数据传输的超出时间max_clients=10#最大的客户端是多少~10.mkdir/home/virftp/testuser1#创建虚拟用户的家目录touch/home/virftp/testuser1/aming.txt#测试的时候会看到这个文件(lftp)chown-Rvirftp:virftp/home/virftpvim/etc/pam.d/vsftpd//在最前面加上#用来定义密码文件在哪里(这个文件是用来认证的一个文件)。登录ftp需要有一个认证的过程,什么样的形式,去哪里找密码库,比对输入的用户密码对不对authsufficient/lib64/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_login红色标记的这个文件必须要是存在的,64位的ountsufficient/lib64/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_login~11.vim/etc/vsftpd/vsftpd.conf#编辑vsftpd的主配置文件将anonymous_enable=YES改为anonymous_enable=NO将#anon_upload_enable=YES改为anon_upload_enable=NO将#anon_mkdir_write_enable=YES改为anon_mkdir_write_enable=NO再最下面增加如下内容chroot_local_user=YESguest_enable=YES#与下面对应的guest_username=virftp#虚拟用户要映射到一个系统的用户(就是我们之前操作的)。就使用guest_usernamevirtual_use_local_privs=YES#告诉服务我们现在使用的是虚拟服务user_config_dir=/etc/vsftpd/vsftpd_user_conf#定义虚拟文件配置文件所在的路径allow_writeable_chroot=YES~sftpd//启动vsftpd服务测试ftp:~1.yuminstall-ylftp#为测试方便我们在linux上安装测试软件也可以在windows上安装ftp客户端。filezillaclientlftpftpuser1@127.0.0.1执行命令ls,看是否正常输出若不正常查看日志/var/log/messages和/var/log/securewindows下安装filezilla客户端软件,进行测试实例:[root@afeilinux-01~]#yuminstall-yvsftpd[root@afeilinux-01~]#useradd-s/sbin/nologinvirftp[root@afeilinux-01~]#vim/etc/vsftpd/vsftpd_logintestuser1aminglinux[root@afeilinux-01~]#chmod600/etc/vsftpd/vsftpd_login[root@afeilinux-01~]#db_load-T-thash-f/etc/vsftpd/vsftpd_login/etc/vsftpd/vsftpd_login.db[root@afeilinux-01~]#ls-l/etc/vsftpd/总用量36-rw-------.1rootroot12510月312018ftpusers-rw-------.1rootroot36110月312018user_list-rw-------.1rootroot511610月312018vsftpd.conf-rwxr--r--.1rootroot33810月312018vsftpd_conf_migrate.sh-rw-------.1rootroot387月3115:19vsftpd_login-rw-r--r--.1rootroot122887月3115:23vsftpd_login.db[root@afeilinux-01~]#mkdir/etc/vsftpd/vsftpd_user_conf[root@afeilinux-01~]#cd/etc/vsftpd/vsftpd_user_conf/[root@afeilinux-01vsftpd_user_conf]#[root@afeilinux-01vsftpd_user_conf]#vimtestuser1local_root=/home/virftp/testuser1anonymous_enable=NOwrite_enable=YESlocal_umask=022anon_upload_enable=NOanon_mkdir_write_enable=NOidle_session_timeout=600data_connection_timeout=120max_clients=10[root@afeilinux-01vsftpd__user_conf]#mkdir/home/virftp/testuser1[root@afeilinux-01vsftpd__user_conf]#touch/home/virftp/testuser1/aming.txt[root@afeilinux-01vsftpd__user_conf]#chown-Rvirftp:virftp/home/virftp[root@afeilinux-01vsftpd__user_conf]#vim/etc/pam.d/vsftpd#%PAM-1.0authsufficient/lib64/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_login#这个红色的文件是要存在的ountsufficient/lib64/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_login#%PAM-1.0authsufficient/lib64/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_ountsufficient/lib64/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_loginsessionoptionalpam_keyinit.soforcerevokeauthrequiredpam_listfile.soitem=usersense=denyfile=/etc/vsftpd/ftpusersonerr=eedauthrequiredpam_ountincludepassword-authsessionrequiredpam_loginuid.sosessionincludepassword-auth[root@afeilinux-01vsftpd__user_conf]#ls/lib64/security/pam_userdb.so#检查这个文件是存在的/lib64/security/pam_userdb.so[root@afeilinux-01vsftpd__user_conf]#vim/etc/vsftpd/vsftpd.conf#AllowanonymousFTP?(mentthisout).#这一行的下一行修改anonymous_enable=NO修改为NO#WhenSELinuxisenforcingcheckforSEboolallow_ftpd_anon_write,allow_ftpd_full_ess#这一行的下一行修改anon_upload_enable=NO注释去掉,修改为NO#newdirectories.#这一行的下一行修改anon_mkdir_write_enable=NO#注释去掉,修改为NO主配置文件的最下面加入:chroot_local_user=YESguest_enable=YESguest_username=virftpvirtual_use_local_privs=YESuser_config_dir=/etc/vsftpd/vsftpd_user_confallow_writeable_chroot=YES[root@afeilinux-01vsftpd__user_conf]#sftpd[root@afeilinux-01vsftpd__user_conf]#psaux|grepvsftpdroot56470.00.053276572?Ss15:460:00/usr/sbin/vsftpd/etc/vsftpd/vsftpd.confroot56520.00.0112724988pts/0R 15:490:00grep--color=autovsftpd[root@afeilinux-01vsftpd__user_conf]stat-lntptcp600:::21:::*LISTEN2565/vsftpdvsftpd监听21端口测试:tcp000.0.0.0:366530.0.0.0:*LISTEN-tcp000.0.0.0:1110.0.0.0:*LISTEN1/systemdtcp000.0.0.0:200480.0.0.0:*LISTEN5532/rpc.mountdtcp000.0.0.0:220.0.0.0:*LISTEN864/sshdtcp00127.0.0.1:250.0.0.0:*LISTEN981/mastertcp000.0.0.0:20490.0.0.0:*LISTEN-tcp000.0.0.0:472340.0.0.0:*LISTEN4701/rpc.statdtcp600:::3306:::*LISTEN1128/mysqldtcp600:::45100:::*LISTEN-tcp600:::39311:::*LISTEN4701/rpc.statdtcp600:::111:::*LISTEN1/systemdtcp600:::20048:::*LISTEN5532/rpc.mountdtcp600:::21:::*LISTEN5647/vsftpdtcp600:::22:::*LISTEN864/sshdtcp600::1:25:::*LISTEN981/mastertcp600:::2049:::*LISTEN-[root@afeilinux-01~]#yuminstall-ylftp[root@afeilinux-01~]#lftptestuser1@127.0.0.1口令:lftptestuser1@127.0.0.1:~>ls-rw-r--r--1100210020Jul3107:34aming.txtlftptestuser1@127.0.0.1:/>gettestuser1/aming.txt49bytestransferredlftptestuser1@127.0.0.1:/>exit[root@afeilinux-01~]#lstestuser1[root@afeilinux-01~]#cataming.txtdfsdfsgfsgfsdfsdsdgfsdfsdfsdsdfsdfsdfsdfsfsfsdxshell怎么实现跟ftp类似的功能:两种方法~
1.与~
2.~1.新建一个会话进去以后可以ls看一下。我们get下来的文件的路径可以自定义(比如到桌面上)~
2.使用xftp。在xshell界面按Ctrl Alt
F,会提示安装xftp具体操作在下一任务。(56)

FTP状态码:1xx-肯定的初步答复这些状态代码指示一项操作已经成功开始,但客户端希望在继续操作新命令前得到另一个答复。110重新启动标记答复。120服务已就绪,在nnn分钟后开始。125数据连接已打开,正在开始传输。150文件状态正常,准备打开数据连接。2xx-肯定的完成答复一项操作已经成功完成。客户端可以执行新命令。200命令确定。202未执行命令,站点上的命令过多。211系统状态,或系统帮助答复。212目录状态。213文件状态。214帮助消息。215NAME系统类型,其中,NAME是AssignedNumbers文档中所列的正式系统名称。220服务就绪,可以执行新用户的请求。221服务关闭控制连接。如果适当,请注销。225数据连接打开,没有进行中的传输。226关闭数据连接。请求的文件操作已成功(例如,传输文件或放弃文件)。227进入被动模式(h1,h2,h3,h4,p1,p2)。230用户已登录,继续进行。250请求的文件操作正确,已完成。257已创建“PATHNAME”。3xx-肯定的中间答复该命令已成功,但服务器需要更多来自客户端的信息以完成对请求的处理。331用户名正确,需要密码。332需要登录帐户。350请求的文件操作正在等待进一步的信息。4xx-瞬态否定的完成答复该命令不成功,但错误是暂时的。如果客户端重试命令,可能会执行成功。421服务不可用,正在关闭控制连接。如果服务确定它必须关闭,将向任何命令发送这一应答。425无法打开数据连接。426Connectionclosed;transferaborted.450未执行请求的文件操作。文件不可用(例如,文件繁忙)。451请求的操作异常终止:正在处理本地错误。452未执行请求的操作。系统存储空间不够。5xx-永久性否定的完成答复该命令不成功,错误是永久性的。如果客户端重试命令,将再次出现同样的错误。500语法错误,命令无法识别。这可能包括诸如命令行太长之类的错误。501在参数中有语法错误。502未执行命令。503错误的命令序列。504未执行该参数的命令。530未登录。532存储文件需要帐户。550未执行请求的操作。文件不可用(例如,未找到文件,没有访问权限)。551请求的操作异常终止:未知的页面类型。552请求的文件操作异常终止:超出存储分配(对于当前目录或数据集)。553未执行请求的操作。不允许的文件名。常见的FTP状态代码及其原因:150-FTP使用两个端口:21用于发送命令,20用于发送数据。状态代码150表示服务器准备在端口20上打开新连接,发送一些数据。226-命令在端口20上打开数据连接以执行操作,如传输文件。该操作成功完成,数据连接已关闭。230-客户端发送正确的密码后,显示该状态代码。它表示用户已成功登录。331-客户端发送用户名后,显示该状态代码。无论所提供的用户名是否为系统中的有效帐户,都将显示该状态代码。426-命令打开数据连接以执行操作,但该操作已被取消,数据连接已关闭。530-该状态代码表示用户无法登录,因为用户名和密码组合无效。如果使用某个用户帐户登录,可能键入错误的用户名或密码,也可能选择只允许匿名访问。如果使用匿名帐户登录,IIS的配置可能拒绝匿名访问。550-命令未被执行,因为指定的文件不可用。例如,要GET的文件并不存在,或试图将文件PUT到您没有写入权限的目录。

curl-usftpuser1:password1sftp://--insecurecurl--ftp-ssl-k-usftpuser1:password1ftp:///curl--ftp-ssl-kftp://sftpuser1:password1@/curl-uusername--keyC:cygwinhomeXJ0002T.sshid_rsa--pubkeyc:cygwinhomeXJ0002T.sshid_rsa.pub-Tc: emp2 est4.txtsftp://server/SFTP/--insecure下载保存到本地多级目录,可以自动创建目录(--create-dirs)curl-od:/lei/demo/test.jpg--create-dirs/uploads/allimg/181029/13-1Q0291J111.jpg上传curlept-ranges:bytes2.下載#下载FTP指定文件/CUR/UAT/TEST/a1.txt,以原文件名命名保存到当前目录curlftp://192.168.1.200//CUR/UAT/TEST/a1.txt-u"applog:2Yv0kgAml0AYi6tr"-O-s#下载FTP指定文件a2.txt,以a2_bak.txt命名保存curlftp://192.168.1.200//CUR/UAT/TEST/a2.txt-u"applog:2Yv0kgAml0AYi6tr"-oa2_bak.txt-scurlftp://192.168.1.200//CUR/UAT/TEST/a2.txt-u"applog:2Yv0kgAml0AYi6tr"-o/home/mppay/tmp/bak/a2.txt-s3.上傳#上传c1.txt文件到FTP指定目录下(目录必须以"/"结尾),并以原文件名命名保存(目錄不存在則創建目錄)curlftp://192.168.1.200/CUR//-u"applog:2Yv0kgAml0AYi6tr"-T"c1.txt"--ftp-create-dirs-s#上传aa.txt文件到FTP指定目录下,并以bb.txt命名保存curlftp://192.168.1.200/CUR//c2_bak.txt-u"applog:2Yv0kgAml0AYi6tr"-T"c2.txt"-s#同时上传多个文件curlftp://192.168.1.200/CUR//-u"applog:2Yv0kgAml0AYi6tr"-T"{c1.txt,c2.txt}"-s4.下載#下載dddd目錄下的d1.txt文件,并以原文件名命名保存(dddd目錄不存在則創建目錄)curlftp://192.168.1.200/CUR/UAT/TEST/dddd/d1.txt-u"applog:2Yv0kgAml0AYi6tr"-O--ftp-create-dirs#下載dddd目錄下的d2.txt文件,并以d2_bak.txt文件保存curlftp://192.168.1.200/CUR/UAT/TEST/dddd/d2.txt-u"applog:2Yv0kgAml0AYi6tr"-o"d2_bak.txt"#如下命令報錯,下