相关理论知识 rpm包安装下的配置文件位置
一个用户对文件的访问要两个方面都有权限才可 一个是配置文件里面的设置 另一个是该目录本身的权限(rwx)
匿名用户
本地用户
5中的被动模式数据端口
虚拟用户
也可直接使用主配置文件
服务器 vsftpd
客户端 ftp
ubuntu 16.04上
sudo apt-get install vsftpd
默认共享路径/var/ftp
查看其配置文件 /etc/vsftpd.conf
listen=NO #是否监听端口,独立运行守护程序
listen_ipv6=YES
anonymous_enable=NO #是否开启匿名访问
local_enable=YES #是否 启用本机账户ftp功能
write_enable=YES #是否允许写操作
local_umask=022 #本地用户上传权限掩码
anon_upload_enable=YES #是否允许匿名用户上传
anon_mkdir_write_enable=YES #是否允许匿名帐户创建目录
dirmessage_enable=YES #用户进入目录是否显示消息
use_localtime=YES
xferlog_enable=YES#是否开启xferlog日志功能
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
connect_from_port_20=YES #主动模式 启用20端口
默认被动模式
#chown_uploads=YES
#chown_username=whoever
#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=Welcome to blah FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails
#chroot_local_user=YES
#chroot_local_user=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
#ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd #通过vsftd文件设置账户的验证机制
在虚拟账户访问时此文件需要修改
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
#utf8_filesystem=YES
这里测试本地账户登录
listen=YES #是否监听端口,独立运行守护程序
listen_ipv6=YES
anonymous_enable=NO #是否开启匿名访问
local_enable=YES #是否 启用本机账户ftp功能
write_enable=YES #是否允许写操作
local_umask=022 #本地用户上传权限掩码
dirmessage_enable=YES #用户进入目录是否显示消息
xferlog_enable=YES#是否开启xferlog日志功能
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
pam_service_name=vsftpd
chroot_local_user=YES#将默认共享目录/var/ftp禁锢为客户的根目录
服务器端创建一个本地用户tom 并设置密码
useradd -s /sbin/nologin tom
sudo passwd tom
echo ‘123456’ |passwd --stdin tom centOS
windows终端访问 530失败
可看到它的记录日志
查看vsftpd服务是否开启
查看日志文件
换个账户登录成功
ftp> ls
可以得到远程主机的本地目录。
一:get命令(从远程主机下载文件到本机):
ftp> get
(remote-file) <输入要下载到本地的文件>
(local-file) <输入要保存的名字>
二:put命令(从本机上传文件到远程主机):
ftp> put
(local-file) <输入要上传到远程主机的文件>
(remote-file) <输入要保存到远程主机的名字>
数据上传下载测试
已下载
到配置文件中加入一行本地用户的家目录设置
下次登录时会自动进入此目录操作
local_root=/var/ftp/pub/
出现500错误
wu@wu-virtual-machine:/var/ftp$ ftp 192.168.111.128
Connected to 192.168.111.128.
220 (vsFTPd 3.0.3)
Name (192.168.111.128:wu): wu
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/var/ftp/pub/
Login failed.
然后怎么都不能启动服务
错误代码为2,查询Linux的系统错误代码,错误信息为"errno2 : No such file or directory"。
是刚才配置文件中新指定了用户的家目录不存在
必须指定一个已存在的目录