VSFTP简略
程序员文章站
2024-02-21 09:53:58
...
VSFTP
Author: CloudVapour
Date: 2020/2/26
Usage: ftp区分不同权限
以下操作必须关闭防火墙,selinux,如果 FTP服务器开启了SELinux针对FTP数据传输的策略,也会造成“无法切换目录”的错误提示。
单用户及权限问题
准备:
# 准备ftp的家目录
mkdir /vsftp
# 授权(这样授权会出问题,稍后解释)
chmod -R 777 /vsftp
# 最好在目录里创个文件,检查时比较有感觉
touch /vsftp/index.html
# 准备用户用来登录,标准化最好是是这个用户不要给它登录shell的权限(自行设置密码)
useradd -s /sbin/nologin cloudvapour
详细步骤
1.下载vsftpd服务
yum install vsftpd -y
2.修改配置文件
vi /etc/vsftpd/vsftpd.conf
# 第12行需要关闭匿名模式
anonymous_enable=NO
# 开启101行,102行开启限制用户在当前家目录(不允许随意向上跳转目录)
chroot_local_user=YES
chroot_list_enable=YES
# 开启第104行,限制用户名单,结合上两条配置会产生不同的组合,这里会使名单中的用户不受跳转限制(自行创建)
chroot_list_file=/etc/vsftpd/chroot_list
# 定义家目录位置(家目录需提前创建)
local_root=/vsftp
touch /etc/vsftpd/chroot_list
3.给ftp的根目录授权
注:这里要注意默认是不能给写权限的,从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
如果你坚决想给这样的权限:
chmod 777 /vsftp
会报错!!!
vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot
解决方法(两种):
(1)去掉写权限(解决不了问题,那就解决提出问题的人!)
chmod a-w /vsftp # 或者 chmod 555 /vsftp
(2)打开限制(在配置文件/etc/vsftpd/vsftpd.conf<全局生效>在用户子配置文件中<单用户不生效>)
allow_writeable_chroot=YES
这样用户就既被限制在自己家目录中,同时又有写权限了。
4.启动服务
systemctl restart vsftpd
5.自行检查
这里比较简单,不做详细解释了
多用户及权限问题
准备:
# 准备ftp的家目录
mkdir /master /slave
# 授权(这样授权会出问题,稍后解释)
chmod -R 777 /master /slave
# 最好在目录里创个文件,检查时比较有感觉
touch /{master,slave}/index.html
touch /master/11111
# 创建两个验证用户(自行设密码)
useradd -s /sbin/nologin master
useradd -s /sbin/nologin slave
详细步骤
1.下载vsftpd服务
yum install vsftpd -y
2.修改配置文件
vi /etc/vsftpd/vsftpd.conf
# 第12行需要关闭匿名模式
anonymous_enable=NO
# 开启101行,102行开启限制用户在当前家目录(不允许随意向上跳转目录)
chroot_local_user=YES
chroot_list_enable=YES
# 开启第104行,限制用户名单,结合上两条配置会产生不同的组合,这里会使名单中的用户不受跳转限制(自行创建)
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES # centos7还是加上吧,毕竟有的用户需要写
# 定义家目录位置(家目录需提前创建)
local_root=/vsftp
# 定义子配置文件(使用不同用户进入不同目录)
user_config_dir=/etc/vsftpd/userconf
3.定义子配置文件
mkdir /etc/vsftpd/userconf
# vi /etc/vsftpd/userconf/master
local_root=/master
# vi /etc/vsftpd/userconf/slave
local_root=/slave
4.自行了解
# 单用户文件可以配置
write_enable=no
download_enable=YES
# 虚拟用户不打算讨论,但是需要了解
virtual_use_local_privs=NO
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
思考:
如何实现管理员权限和普通用户权限呢?请注意一个细节,ftp是以文件划分的,请你思考,思考这个对于ftp权限知识很有帮助~
上一篇: Java中的几种读取properties配置文件的方式
下一篇: ES2018重点总结