匿名用户

 FTP协议占用两个端口号:

21端口:命令控制,用于接收客户端执行的FTP命令。

20端口:数据传输,用于上传、下载文件数据。

实验:匿名访问,服务器192.168.10.10    客户端192.168.10.20   匿名访问模式的FTP根目录为/var/ftp:
第1步:
服务器端,安装vsftpd服务,yum install vsftpd -y
第2步:
服务器端,编辑配置文件: 
vim /etc/vsftpd/vsftpd.conf 在配置文件中追加:第一项原配置文件中已存在
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
第3步:
客户端,安装ftp服务, yum install ftp -y
第4步:
客户端,使用命令: ftp 192.168.10.10   用户名Name: anonymous  密码空密码。
创建文件夹时,权限被拒绝。是SELinux的限制,和/var/ftp的所有者的限制
 ftp> mkdir file

550 Permission denied. 
第5步:
服务器端,
chown  ftp /var/ftp/pub 
 getsebool -a | grep ftp 
 setsebool -P ftpd_full_access=on
第6步:
客户端进行验证。 

本地用户

本地用户即服务器端(除root外)的普通用户。
第1步:

服务器端编辑配置文件: vim /etc/vsftpd/vsftpd.conf 追加:已经有的项目不添加
 anonymous_enable=NO
 local_enable=YES
 write_enable=YES
 local_umask=022
 userlist_deny=YES
 userlist_enable=YES

第2步:

/etc/vsftpd/ftpusers    /etc/vsftpd/user_list 禁止列表
 服务器端vsftpd服务为了让FTP服务更加的安全,默认禁止以root身份登入,那么创建个普通用户abc 并添加密码:
 useradd abc
 passwd abc

第3步:
 
服务器端设置SELinux: setsebool -P ftpd_full_access=on

第4步:

客户端登录ftp192.168.10.10 并验证 ,创建的文件位于abc账户家目录:/home/abc

虚拟用户

http://blog.sina.com.cn/s/blog_3edc5e2e0102vzv8.html权限设置参考
http://blog.chinaunix.net/uid-324202-id-144759.html 数据库MySQL

虚拟用户不是系统中存在的,因此比本地用户安全,步骤

第1步:建立虚拟FTP用户数据库文件。

第2步:创建FTP根目录及虚拟用户映射的系统用户。

第3步:建立支持虚拟用户的PAM认证文件。

第4步:在vsftpd.conf文件中添加支持配置。

第5步:为虚拟用户设置不同的权限。

第6步:重启vsftpd服务,验证实验效果。

第1步:建立虚拟FTP用户数据库文件。
        服务器端,切换目录cd /etc/vsftpd/
             [root@linuxprobe vsftpd]# vim vuser.list

//单数行为帐号,双数行为密码。
            linuxprobe
            pa33w0rd
            blackshield
            pa22w1rd
            使用db_load命令用HASH算法生成FTP用户数据库文件vuser.db:  db_load -T -t hash -f vuser.list vuser.db
            查看文件:file vuser.db  
            FTP用户数据库内容很敏感,所以权限给小一些:chmod 600 vuser.db

第2步:创建FTP根目录及虚拟用户映射的系统用户。

创建用户virtual并设置为不允许登陆系统并定义该用户的家目录:useradd -d /var/ftproot -s /sbin/nologin virtual
             为保证其他用户可以访问,给予rwxr-xr-x权限:chmod -Rf 755 /var/ftproot/

第3步:建立支持虚拟用户的PAM认证文件。
             [root@linuxprobe ~]# vim /etc/pam.d/vsftpd.vu

//参数db用于指向刚刚生成的vuser.db文件,但不要写后缀。
            auth       required     pam_userdb.so db=/etc/vsftpd/vuser
            account    required     pam_userdb.so db=/etc/vsftpd/vuser

第4步:在vsftpd.conf文件中添加支持配置。
             vim /etc/vsftpd/vsftpd.conf
            ----------------------------------
             anonymous_enable=NO
             local_enable=YES
             guest_enable=YES
             guest_username=virtual
             pam_service_name=vsftpd.vu
             allow_writeable_chroot=YES
            ------------------------------------- 
添加后的配置文件,已测试,可直接复制

anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
allow_writeable_chroot=YES
 
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
userlist_enable=YES
tcp_wrappers=YES
 
user_config_dir=/etc/vsftpd/vusers_dir
 

第5步:为虚拟用户设置不同的权限。

现在不论是linuxprobe还是blackshield帐户,他们的权限都是相同的——默认不能上传、创建、修改文件,
        如果希望用户blackshield能够完全的管理FTP内的资料,就需要让FTP程序支持独立的用户权限配置文件了:
          指定用户独立的权限配置文件存放的目录:vim /etc/vsftpd/vsftpd.conf (user_config_dir=/etc/vsftpd/vusers_dir)
      创建用户独立的权限配置文件存放的目录:mkdir /etc/vsftpd/vusers_dir/
      切换进入到该目录中:cd /etc/vsftpd/vusers_dir/
      创建空白的linuxprobe的配置文件:touch linuxprobe
      指定blackshield用户的具体权限:vim blackshield 下面一段直接复制会报错。
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES  
     第6步:重启vsftpd服务,验证实验效果。
       setsebool -P ftpd_full_access=on
        在客户端验证以上两个用户的权限。 
        linuxprobe用户不能创建文件夹, blackshield用户可以创建文件夹

-----------------------------------------------------------------------------------实际应用例子-------------------

ftp服务器匿名用户设置
匿名用户在服务器端映射到ftp用户下
/1、主配置文件:/etc/vsftpd/vsftpd.conf 删除默认配置增加以下内容:
客户端只能下载~:
anonymous_enable=YES 
no_anon_password=YES  匿名登录系统不检测密码,通常是email
anon_max_rate=1000000  最大带宽10M
data_connection_timeout=60  超时60s
idle_session_timeout=600    发呆超过10分钟断线
max_clients=50     最大连接数及每个IP可用连接
max_per_ip=5
 
local_enable=NO
 
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
tcp_wrappers=YES
banner_file=/etc/vsftpd/anon_welcome.txt  欢迎信息
 ----------------------------------------------------------------------------------
 2、让匿名用户可以上传/下载资料(权限开放最大)上一个配置文件后面增加:

write_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
改文件夹权限:
mkdir /var/ftp/uploads
chown ftp /var/ftp/uploads
还要修改seLinux:

setsebool -P ftpd_anon_write=on
setsebool -P ftpd_full_access=on
--------------------------------------------------------------------------/
3、让匿名用户具有上传权限,不能下载(实际应用案例:经审核才能下载),上传之后就在客户端看不见了
 
 write_enable=YES

anon_mkdir_write_enable=YES
anon_upload_enable=YES
chown_uploads=YES
chown_username=daemon  将上传文件所有者改为daemon所以无法下载

Linux:FTP服务匿名用户,本地用户,虚拟用户配置的更多相关文章

  1. Linux: FTP服务原理及vsfptd的安装、配置

    1.FTP 服务的安装# yum install -y vsftpd [root@rusky pub]# ls -l /etc/vsftpd/ total 20 -rw-------. 1 root ...

  2. [转] Linux学习之CentOS(三十六)--FTP服务原理及vsfptd的安装、配置

    本篇随笔将讲解FTP服务的原理以及vsfptd这个最常用的FTP服务程序的安装与配置... 一.FTP服务原理 FTP(File Transfer Protocol)是一个非常古老并且应用十分广泛的文 ...

  3. linux Centos 6.5 FTP服务原理及vsfptd的安装、配置(转)

    本篇随笔将讲解FTP服务的原理以及vsfptd这个最常用的FTP服务程序的安装与配置... 一.FTP服务原理 FTP(File Transfer Protocol)是一个非常古老并且应用十分广泛的文 ...

  4. 打开Linux ftp服务,如:vsftpd: unrecognized service

    打开Linux ftp服务,如:vsftpd: unrecognized service   [root@BZXXDBS02 ~]# service vsftpd start vsftpd: unre ...

  5. Linux上FTP部署:基于mariadb管理虚拟用户

    FTP原理 FTP 采用 Internet 标准文件传输协议 FTP 的用户界面, 向用户提供了一组用来管理计算机之间文件传输的应用程序.图1 FTP 的基本模型 FTP 是基于客户---服务器(C/ ...

  6. vsftpd 虚拟用户限定在虚拟用户目录

    1.安装vsftpd yum -y install pam pam-devel db4 db4-tcl vsftpd 2.更名默认配置文件,以便恢复 cp /etc/vsftpd/vsftpd.con ...

  7. linux ftp服务

    1 安装ftp服务 [root@localhost ~]# yum install vsftpd 启动:service vsftpd start 查看状态:systemctl |grep vsftpd ...

  8. Linux FTP服务安装和远程登录失败

    问题:本机VPlayer安装pure-ftpd  ftp服务,通过flashfxp从windows连接出现以下错误: [左] 正在连接到 vmare -> IP=192.168.174.133 ...

  9. FTP服务基础

    网络文件共享 本章内容 FTP服务 NFS服务 SAMBA服务 DAS.NAS.SAN(文件) DAS:开放系统的直连式存储(Direct-Attached Storage) 磁盘连接到本机的电脑上, ...

随机推荐

  1. DOM的学习网站 DOM是HTML和XML的编程接口

  2. NET Core 防止跨站请求

    ASP.NET Core 防止跨站请求伪造(XSRF/CSRF)攻击 什么是反伪造攻击? 跨站点请求伪造(也称为XSRF或CSRF,发音为see-surf)是对Web托管应用程序的攻击,因为恶意网站可 ...

  3. net core mvc剖析:启动流程

    net core mvc剖析:启动流程 asp.net core mvc是微软开源的跨平台的mvc框架,首先它跟原有的MVC相比,最大的不同就是跨平台,然后又增加了一些非常实用的新功能,比如taghe ...

  4. 小G搭积木

    A小 G 搭积木文件名 输入文件 输出文件 时间限制 空间限制box.cpp box.in box.out 2s 128MB题目描述小 G 喜欢搭积木.小 G 一共有 n 块积木,并且积木只能竖着一块 ...

  5. Vue部分知识

    一.本尊建议的学习顺序:https://zhuanlan.zhihu.com/p/23134551(侵删) 二.安装: 1.安装 Node.js,可以去Node.js的官网上下载: 2.(非必选)如果 ...

  6. css常用操作

    对齐操作 1.使用margin属性进行水平对齐     margin-left:auto;    margin-right:auto; 2.使用position属性进行左右对齐      3.使用fl ...

  7. is 和 == 区别 编码的问题 id()函数

    一丶is 和 == 的区别 == 比较的是值 is 比较的是内存地址 #字符串 a = "abc" b = "abc" print(a == b) print( ...

  8. elasticsearch dump加过滤条件(--searchBody)出错的解决 Unexpected token ' in JSON at position 0

    环境:本文测试在es2.4,win10下进行 es dump导数据可以加过滤条件,只导满足条件的数据.方法是用—searchBody参数,值是查询时的查询条件的json格式,例如 然而按官网和网上的格 ...

  9. Ubuntu 11.04 安装 cuda5.0

    由于实验需要,于2016年10月15日再Ubuntu11.04安装cuda5.0,但是从网上查找Ubuntu11.04 只有对应的支持的cuda4 版本,cuda 5.0前面版本不支持IDE nisg ...

  10. Object-C反射读取实体属性和值

    举例: 首先定义TestModel如下: @interface TestModel : NSObject @property (nonatomic, strong) NSString *name; @ ...