背景

Oracle全库备份,异地备份

在实现异地备份后,由第三方人员登录服务器拉取dmp文件.

为了确保安全,创建一个特定ftp账号用于第三方人员使用

要求

1.可以登录服务器

2.可以拉取dmp文件

3.仅限在dmp文件的目录下,不能cd其他路径,ls其他目录

解决过程

yum 安装ftp服务

[root@78778e06dc0a /]# yum install vsftpd -y

修改vsftp配置文件,开启限制

[root@78778e06dc0a /]# vim /etc/vsftpd/vsftpd.conf

最后加上以下几行:

chroot_list_enable=YES

chroot_local_user=YES

chroot_list_file=/etc/vsftpd/chroot_list

user_config_dir=/etc/vsftpd/user.d

vsftpd.conf配置文件说明

anonymous_enable=YES    #设置是否允许匿名用户登录

local_enable=YES        #设置是否允许本地用户登录

local_root=/home        #设置本地用户的根目录

write_enable=YES        #是否允许用户有写权限

local_umask=022        #设置本地用户创建文件时的umask值

anon_upload_enable=YES    #设置是否允许匿名用户上传文件

anon_other_write_enable=YES    #设置匿名用户是否有修改的权限

anon_world_readable_only=YES    #当为YES时,文件的其他人必须有读的权限才允许匿名用户下载,单单所有人为ftp且有读权限是无法下载的,必须其他人也有读权限,才允许下载

download_enbale=YES    #是否允许下载

chown_upload=YES        #设置匿名用户上传文件后修改文件的所有者

chown_username=ftpuser    #与上面选项连用,表示修改后的所有者为ftpuser

ascii_upload_enable=YES    #设置是否允许使用ASCII模式上传文件

ascii_download_enable=YES    #设置是否允许用ASCII模式下载文件

chroot_local_user=YES        #设置是否锁定本地用户在自己的主目录中,(登录后无法cd到父目录或同级目录中)

chroot_list_enable=YES        #设置是否将用户锁定在自己的主目录中

chroot_list_file=/etc/vsftpd/chroot_list    #定义哪些用户将会锁定在自己的主目录中

userlist_enable=YES    #当为YES时表示由userlist_file文件中指定的用户才能登录ftp服务器

userlist_file=/etc/vsftpd/user_list    #当userlist_enable为YES时才生效

为每个用户建立对应的配置文件



[root@78778e06dc0a /]#mkdir /etc/vsftpd/user.d

[root@78778e06dc0a /]#vim  /etc/vsftpd/user.d/ftp

加入以下内容

local_root=/home/ftp

然后启动ftp服务

[root@78778e06dc0a /]#service vsftpd start

登录测试

问题

1. 500 OOPS: could not bind listening IPv4 socket

原因:因为同时指定了 inetd和standalone 两种运行方式,端口冲突了.

解决方法:

1).使用XINET模式

去掉/etc/rc.local文件中的vsftpd的启动脚本/usr/local/sbin/vsftp &;

重启xinetd服务,  service xinetd restart

运行service vsftpd restart命令启动vsftpd

2).使用STANDALONE独立模式

在服务器的负担比较重的情况下最好用这个模式

或者直接修改/etc/xinetd.d/vsftpd文件,把disable=no改成disable=yes就行了!

2. service vsftpd start时出现Starting vsftpd for vsftpd: [ FAILED ]

修改/etc/logrotate.d/vsftpd.log

把 missingok 注释掉

3. 500 OOPS: cannot change directory:/home/...

sestatus -b | grep ftp

setenforce 0

setenforce: SELinux is disabled

[root@78778e06dc0a /]# getenforce

Disabled

[root@78778e06dc0a /]# setsebool -P ftp_home_dir=1

setsebool: SELinux is disabled.

[root@78778e06dc0a /]# setsebool -P allow_ftpd_full_access 1

setsebool: SELinux is disabled.

再次尝试,OK

Vsftp用户限制的更多相关文章

  1. 为VSFTP用户指定登录后的目录.原创测试通过.

    VSFTP用户目录指定1修改VSFTP配置文件Vi /etc/vsftpd/vsftp.conf  #启动chroot列表chroot_list_enable=YES#指定列表位置chroot_lis ...

  2. linux怎么设置vsftp用户访问目录权限

    1.在指定的目录创建文件夹(访问的目录): mkdir picture 2.创建一个用户组(zdhgroup): groupadd zdhgroup 3.创建一个用户并指定路径和组: useradd ...

  3. Linux基础入门之vsFTP+MySQL/MariaDB认证实现虚拟用户配置详解

    https://www.dwhd.org/20150603_144841.html 摘要 VSFTP可以使用系统账户或者匿名账户登录,但是出于安全的考虑,通常建议使用vsftp虚拟账户来登录ftp服务 ...

  4. Centos6.5中安装和配置vsftp详细总结

    一.vsftp安装篇 #查看是否安装:rpm -qa|grep vsftpd#卸载vsftpdrpm -e vsftpd-2.2.2-11.el6_3.1x86_64 --nodeps# 安装vsft ...

  5. CentOs6.5中安装和配置vsftp简明教程

    一.vsftp安装篇 # 查看是否已经安装了vsftp: rpm -qa|grep vsftpd # 安装vsftpd(需要root权限)yum -y install vsftpd# 启动vsftpd ...

  6. CentOs6.5中安装和配置vsftp

    一.vsftp安装篇 复制代码代码如下: # 安装vsftpdyum -y install vsftpd# 启动service vsftpd start# 开启启动chkconfig vsftpd o ...

  7. CentOs6.5中安装和配置vsftp简明

    这篇文章主要介绍了CentOs6.5中安装和配置vsftp简明教程,需要的朋友可以参考下     一.vsftp安装篇 复制代码代码如下: # 安装vsftpdyum -y install vsftp ...

  8. 170113、CentOs6.4中安装和配置vsftp简明教程

    一.vsftp安装篇 代码如下: # 安装vsftpdyum -y install vsftpd# 启动service vsftpd start# 开启启动chkconfig vsftpd on 二. ...

  9. centos 7 最小安装后 安装FTP服务器 vsftp

    1.首先查看下 系统配置 rpm -q ftp #肯定是没安装, 2.安装 vsftpd yum -y vsftpd 3.vim /etc/vsftpd/vsftpd.conf anonymous_e ...

随机推荐

  1. 迁移桌面程序到MS Store(15)——通过注册表开启Developer Mode

    没想到该系列不仅没有太监,还打算更新一个小短篇.在各种大厂小厂工作的各位想必都知道Windows域的概念.入域的机器很多的设置就由不得当前登入所使用的域账号了,Windows的更新和安全等众多的设置均 ...

  2. SWUSTOJ 960A题总结,又完成一个讨厌的题,内含链表操作启发

    今天debug了一个nice代码,先码在这里,SWUST OJ960 双向链表的操作问题 1000(ms) 10000(kb) 2994 / 8244 建立一个长度为n的带头结点的双向链表,使得该链表 ...

  3. 1020 Tree Traversals (25 分)

    Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and i ...

  4. ASP.NET Core技术研究-探秘依赖注入框架

    ASP.NET Core在底层内置了一个依赖注入框架,通过依赖注入的方式注册服务.提供服务.依赖注入不仅服务于ASP.NET Core自身,同时也是应用程序的服务提供者. 毫不夸张的说,ASP.NET ...

  5. 通过简单的ajax验证是否存在已有的用户名

    首先来说说我对ajax的理解:简单地来说就是在不重新刷新页面的情况下,实现数据的调用获得更新. 我在这里介绍的是要过jquery封装好的ajax,大家可以去了解一下使用原生的XMLHttpReques ...

  6. python 函数--迭代器

    一.迭代协议: 可以被迭代要满足要求的就叫做可迭代协议.内部实现__iter__方法. iterable:可迭代的--对应的标志. 什么叫做迭代?:可以一个一个取值,就像for循环一样取值. 字符串, ...

  7. 29 collection 集合体系结构

    /*collection:采集 * ArrayList * 集合的体系结构: * 由于不同的数据结构(数据的组织,存储方式),所以Java为我们提供了不同的集合, * 但是不同的集合他们的功能都是相似 ...

  8. mysql命令行参数 --- 这些参数不同于 mysqldump 后的 那些参数(下边文章开头有链接) :2种类型的参数 含义是不一样的

    mysql命令行参数  --- 这些参数不同于  mysqldump  后的 那些参数   :2种类型的参数 含义是不一样的 一,mysql命令行参数 Usage: mysql [OPTIONS] [ ...

  9. web.page.regexp用法(全网唯一)

    前言 因为这个东西“web.page.regexp”,差点把自己杀了.一点都不夸张,这将近30度的天气,办公室不开空调,又要闷,还要带着口罩,躁动的很.加上这个鬼东西“web.page.regexp” ...

  10. 深入理解new运算符

    在 JavaScript 中,new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例.创建一个对象很简单,为什么我们还要多此一举使用 new 运算符呢?它到底有什么样的魔力? 认 ...