默认安装好ftp软件包匿名用户是可以下载的。
匿名以后可以上传:
anon_upload_enable=YES
# getsebool -a | grep ftp
allow_ftpd_anon_write --> on
chcon -t public_content_rw_t pub
chmod 775 pub
chgrp ftp pub

匿名用户可以创建目录:
anon_mkdir_write_enable=YES

在创建的目录上传文件看不到。添加下面
anon_world_readable_only=NO

删除不了自己创建的目录文件:添加下面
anon_other_write_enable=YES

当selinux打开时,默认的本地用户是不可以登录ftp的。
[root@redhat pub]# lftp 192.168.3.30 -u lee
Password:
lftp lee@192.168.3.30:~> ls         
ls: Login failed: 500 OOPS: cannot change directory:redhat
# setsebool -P ftp_home_dir on

默认本地用户登录ftp后是可以切换到 /的
怎么使本地以后不可以切换到/
chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
本地以后可以切换到/
chroot_local_user=NO
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
在chroot_list文件中的用户可以切换到/,反之就是配置文件没有写入的用户都是不可一切换到/的
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
# touch /etc/vsftpd/chroot_list
所有的用户都可以切换到 /,在配置文件的内容不可以切换到/,要是文件为空,就是所有以后都可一切换到/,匿名用户除外
chroot_local_user=NO
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
所有以后不可一切换到 /
chroot_local_user=YES
chroot_list_enable=NO
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

2个黑名单同时含有一个用户时,ftpusers优先级大于user_list
ftpusers  user_list  //这2个文件即改即生效
所有的用户都不可以登录ftp,当白名单为空时。同时也是把临时黑名单变为白名单
userlist_enable=YES
userlist_deny=NO

ftp虚拟用户的建立;
vim users
user1
123
user2
123
# yum install db4-utils.x86_64 -y
# db_load -T -t hash -f users users.db

vim ftpusers
auth        required      pam_userdb.so db=/etc/vsftpd/users
account     required      pam_userdb.so db=/etc/vsftpd/users

# vim /etc/vsftpd/vsftpd.conf //使用虚拟用户登录的目录为test目录。
pam_service_name=ftpusers
guest_enable=YES
guest_username=test //使用为本地用户
客户端测试,我们会发现登录到的为test的家目录

给虚拟用户添加家目录
[root@redhat vsftpd]# tree virtual/
virtual/  //改目录下又创建2个user1 user2
├── user1
│   ├── passwd 
│   └── user1
└── user2
    └── user2

/etc/vsftpd/virtual  //修改user1 user2的目录权限
# chcon -t public_content_rw_t
[root@redhat virtual]# ll
total 8
drwxr-xr-x. 2 test test 4096 Jun 12 01:27 user1
drwxr-xr-x. 2 test test 4096 Jun 12 01:11 user2
为虚拟ftp用户添加家目录,配置文件要写入下面内容
local_root=/etc/vsftpd/virtual/$USER
user_sub_token=$USER

为虚拟用户添加配置文件
/etc/vsftpd
mkdir dir
user_config_dir=/etc/vsftpd/dir
vim user1 //user1就为user1用户的ftp配置文件
non_upload_enable=NO //user1用户禁止上传,默认是可以上传的

<Linux下FTP服务的搭建>的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. Python--动态类型

    函数的参数传递,本质上传递的是引用.比如说: def f(x): x = 100 print x a = 1 f(a) print a 输出结果为: 100 1 参数x是一个新的引用,指向a所指的对象 ...

  2. 项目源码--JAVA基于LBS地理位置信息应用的服务端

    技术要点: 1. LBS应用框架服务端实现 2. JAVA服务端技术 3. MYSQL数据库技术 4. 源码带详细的中文注释 ......   详细介绍: 1. LBS应用框架服务端实现 此套源码是基 ...

  3. redis 简介

    Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支持在服务器端计算集合的并,交和补集(diff ...

  4. FMDB 二次封装工具类,让你快速学会封装,集成数据库

    来源:StrivEver 链接:http://www.jianshu.com/p/4c77aee0b41c 上个版本为了增加用户体验,部分页面集成了离线缓存数据功能,于是就在项目里使用了数据库管理离线 ...

  5. dispatch_group_async可以实现监听一组任务是否完成,完成后得到通知执行其他的操作。这个方法很有用,比如你执行三个下载任务,当三个任务都下载完成后你才通知界面说完成的了

    dispatch_queue_t queue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, ); dispatch_group_ ...

  6. iOS---》点击uitableview 的section展开或隐藏

    #import <UIKit/UIKit.h> @interface TestCell : UITableViewCell @property (weak, nonatomic) IBOu ...

  7. uiscrollerview循环滚动(参考第三方库:HMBannerView)https://github.com/iunion/autoScrollBanner

    #import <UIKit/UIKit.h> #import "HMBannerView.h" @interface ViewController : UIViewC ...

  8. KVC 和 KVO 简单总结

    KVC: key value coding,键值编码.是一种通过使用属性的名称(key)来间接访问对象属性的方法.这个方法可以不用通过 setter/getter 方法来访问对象的属性.该方法使用的实 ...

  9. javascript,jquery(闭包概念)

    (function($){     $("div p").click(...);})(jQuery);    就是等于function tempFunction($){  //创建 ...

  10. Sublime Text shift+ctrl妙用

    1 :按住shift+ctrl然后按←或→可快速选中一行中的某一部分,相当于双击鼠标选中. 当你想在代码末尾加注释的话,这个方法很好用 输入文字->光标移到文字末尾->按住shift+ct ...