欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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权限知识很有帮助~

相关标签: 服务器 运维