服务的报错
报错530 认证失败(密码错误或者服务器不允许)
报错550 服务未开启
报错553 服务器的文件权力过小
报错500 服务器的文件权力过大
1.配置yum源并下载vsftpd
[cn]
name=cn
baseurl=file:///mnt
gpgcheck=0
yum源配置完成后,用yum命令安装vsftpd服务。
ftp服务的登录
用ls命令来验证ftp登录是否成功
ftp匿名登陆进入的目录默认都为/var/vsftpd/pub
在服务端自身匿名登录ftp
若在客户端直接执行ftp命令来登录是无法登录ftp服务的
可以看到在调用ls命令后,并没有列出当前目录的文件,而是进行了倒计时读秒,这说明我们的ftp登陆是失败的。
将ftp服务加入防火墙允许名单然后重启防火墙
firewall-cmd --permanet --add-service=ftp
firewall-cmd --reload
在将ftp服务加入到防火墙允许运行的环境下后并重新加载防火墙服务后便可以在客户端登陆服务器了
若不指定服务器端存在的用户,则默认都为匿名用户。
若想使用服务器端存在的用户登录,便可以使用“lftp ip -u user”来登录ftp服务,使用该命令后进入的是登录用户的家目录。
eg:lftp 172.25.254.142 -u student(ftp登录进入id为172.25.254.142主机的student用户的家目录)
用ls命令查看后,没有读秒(说明登陆成功),但并没有文件列出(因为student用户的加目录下并没有文件或目录)
ftp匿名用户服务
vim /etc/vsftpd/vsftpd.conf vsftp服务的配置文件
12 anonymous是否允许匿名用户登陆
16 lcoal_enable是否允许本地用户登录
19 write_enable是否允许用户写文件
29 anon_upload_enable=YES
添加 anon_mkdir_write_enable=YES 允许匿名用户建立目录
添加 anon_world-readable_only=NO(允许匿名用户可以在服务器读取(下载)没有权限的文件)
anon_other_write_enable=YES(用户匿名用户删除文件)
添加 anon_umask=022 修改umask为022.使新建目录权限为755,新建文档权限为644
开启 chown_upload_name=YES
添加 chowm_username=student 修改上传者身份为student(要先开启但设置的umask不会生效,因为umask针对的是匿名用户,student不是匿名用户)
dd if=/dev/zero of=/mnt/file bs=1M count=1000上传一个文件并查看上传速率
添加限速 anon_max_rate=102400(默认单位为字节)
添加max_clients=2 允许最大使用服务器的用户数量(考虑服务器的负载,防止服务器宕机)
添加anon_root=/root 设置匿名用户根目录
匿名用户的登录
修改配置文件禁止匿名用户登录
在修改anonymous_enable=NO后匿名用户无法登录。
本地用户的登录
在位修改配置文件前,服务器端的用户是可以通过ftp服务登陆的。
修改本地用户登录为NO(禁止本地用户登录)
可以看到,在禁止本地用户登陆后,客户端便无法通过本地用户访问ftp服务了。
允许本地用户上传文件
本地用户可以上传文件
匿名用户的文件上传
1.开启29行被注释的配置文件
2.增加ftp的组为/var/ftp/pub
3.chmod 775 /var/ftp/pub
修改配置文件允许匿名用户上传文件
已经开启了匿名用户上传的服务,但报错553(文件权限过小,若修改文件权限为777,会报错500(文件权限过大))
修改ftp下的pub用户组为ftp,然后给文件775的权限,这样用户就可以上传文件了。
允许匿名用户创建文件
anon_mkdir_write_enable=YES | NO匿名用户是否可以创建目录
允许匿名用户创建文件(给配置文件加“anon_mkdir_write_enable=YES”该命令)
匿名用户的读取权限
anon_world-readable_only=NO|YES(允许匿名用户是否可以在服务器读取(下载)没有权限的文件)
匿名用户不能读取权力不允许的文件
修改anon_world_readable_only=NO后,匿名用户可以读取权力不允许的文件
允许匿名用户删除文件
anon_other_write_enable=YES|NO(匿名用户是否可以删除文件)
匿名用户无法删除文件
允许匿名用户删除文件
匿名用户的umask设置
设置umask=022,则新建目录权限为755,新建文件权限为644(umask见文件权限管理,特殊权限及ACL权限博客)
允许客户端使用服务器的最大客户端数量
max_clients=2 允许最大使用服务器的用户数量为2(考虑服务器的负载,防止服务器宕机)
在登陆两个用户使用ftp命令后,在登陆第三个用户后,无法使用ftp的服务。
ftp本地用户umask值设置
本地用户修改umask前(默认为022)
上传的文件权限为644.
本地用户修改umask后(修改umask为077),则上传的文件权限为600
本地用户能否进入根目录的黑白名单
未设置黑白名单时,所有用户都无法进入根目录
黑名单不能进入根目录
只有白名单可以进入根目录
本地用户能否登录ftp的黑名单
黑名单的设置
用户黑名单有student,而无tom,tom可以登录ftp,而student不可以。
黑名单中有tom和student无法登录
临时黑名单中的用户无法登录,而tom可以登陆
ftp的临时黑名单和临时白名单
临时黑名单中的用户无法登录,而tom可以登陆
在配置文件中加入下图所示的配置文件,临时黑名单会变为临时白名单。
修改临时黑名单为临时白名单后,tom不可以登陆,而student可以登陆
ftp虚拟用户的设定
建虚拟帐号身份(用来登陆ftp服务)
1.vim /etc/vsftpd/login_file(创建用户文档)
user1
123
user2
123
user3
123
2.db_load -T -t hash -f /etc/vsftpd/login_file /etc/vsftpd/login_file.db(加密用户文档)
加密后出现加密文件login_file.db文件
3.vim /etc/pam.d/login_ftp(添加自己想要认证的方式目录)
account(用户名) required(是否匹配) pam_userdb.so(检验程序) db=/etc/vsftpd/login_file(检验标准)
auth(密码) required(是否匹配) pam_userdb.so(检验程序) db=/etc/vsftpd/(检验标准)
新建目录/etc/pam.d/下的login_ftp来作为我们想要认证的方式目录
4.vim /etc/vsftpd/vsftpd.conf(修改配置文件的认证目录为自己第三步添加的目录)
pam_service_name=login_ftp
guest_enable=YES
修改pam_service_name为我们新建的认证目录(该命令之前有系统默认的认证目录,修改为我们新建的认证目录)
虚拟帐号家目录独立指定
1.创建递归目录并修改组和权限
mkdir -p /var/ftpuser/user{1…m}/cn
chmod 775 /var/ftpuser/user{1…m}/cn
chgrp ftp /var/ftpuser/user{1…m}/cn
2.编辑配置文件
vim /etc/vsftpd/vsftpd.conf
local_root=/var/ftpuser/
U
S
E
R
指
定
U
S
E
R
的
加
目
录
u
s
e
r
s
u
b
t
o
k
e
n
=
USER 指定USER的加目录 user_sub_token=
USER指定USER的加目录usersubtoken=USER 将环境变量带给USER
完成配置文件后的效果
指定每个帐号可以执行的权限
1.修改配置文件
vim /etc/vsftpd/vsftpd.conf
添加命令usr_config_dir=/etc/vsftpd/westos
2.创建与配置文件中相同的目录
mkdir /etc/vsftpd/westos
3.调转到新创建的目录下并创建编辑与用户名相同的文件
cd /etc/vsftpd/westos
vim user1
cat user1(cat查看vim编辑的user1的内容)
anon_mkdir_write_enable=YES 允许user1创建文件
anon_upload_enable=YES 允许user1上传文件
user1既可以创建文件,也可以上传文件
编辑user1可以使其上传和创建文件,可以看到只有user1创建的test成功,user2与user3都失败
user2可以创建目录,但不能上传文件;user3可以上传文件,但不能创建目录
编辑user1后指定用户user1可以上传文件,而user2和user3不可以上传文件