vsftpd

练习:完成vsftpd配置

(1) 禁锢系统用户于家目录

[root@node3 ~]# yum -y install vsftpd
[root@node3 ~]# vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES       //大概在102行,启用此处的配置语句 

[root@node2 ~]# ftp 10.1.43.103
Connected to 10.1.43.103 (10.1.43.103).
220 (vsFTPd 3.0.2)
Name (10.1.43.103:root): gao
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (10,1,43,103,28,138).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Oct 13 09:47 pub
drwxrwxrwx    3 0        0            4096 Oct 15 12:50 upload
226 Directory send OK.
ftp> pwd
257 "/"       #禁锢成功

(2) 基于mysql进行用户认证

安装pam_mysql模块:

        a:

[root@node3 ~]# yum -y install pam_mysql  <CentOS 6上>

        b:

[root@node3 ~]# yum -y install mariadb-devel pam-devel
[root@node3 ~]# wget 10.1.0.1:/pub/Sources/sources/pam/pam_mysql-0.7RC1.tar.gz
[root@node3 ~]# tar -xf pam_mysql-0.7RC1.tar.gz
[root@node3 ~]# cd pam_mysql-0.7RC1
[root@node3 pam_mysql-0.7RC1]# ./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security
[root@node3 pam_mysql-0.7RC1]# make
[root@node3 pam_mysql-0.7RC1]# make install

修改vsftpd的配置文件:

[root@node3 ~]# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES      //在末尾写上此3行,并把末尾向上5-6的位置中的 pam_service_name 这行注释掉
guest_username=vuser

pam_service_name=vsftpd.mysql

建立数据库:

[root@node3 ~]# mysql
mysql> CREATE DATABASE vsftpd;
mysql> CREATE TABLE vsftpd.users (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name CHAR(30) NOT NULL UNIQUE KEY,password CHAR(48));
mysql> INSERT INTO vsftpd.users (name,password) VALUES ('tom',PASSWORD('mageedu')),('jerry',PASSWORD('mageedu'));

mysql> GRANT ALL ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'mageedu';
mysql> GRANT ALL ON vsftpd.* TO 'vsftpd'@'127.0.0.1' IDENTIFIED BY 'mageedu';
mysql> FLUSH PRIVILEGES;

vsftpd通过pam_mysql进行认证的配置文件:

[root@node3 ~]# vim /etc/pam.d/vsftpd.mysql
auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

准备匿名用户映射的系统用户账号:

[root@node3 ~]# mkdir /ftproot
[root@node3 ~]# useradd  -d /ftproot  vuser
[root@node3 ~]# mkdir /ftproot/{pub,upload}
[root@node3 ~]# setfacl -m u:vuser:rwx  /ftproot/upload

登录用户:  

[root@node2 ~]# ftp 10.1.43.103
Connected to 10.1.43.103 (10.1.43.103).
220 (vsFTPd 3.0.2)
Name (10.1.43.103:root): tom
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (10,1,43,103,215,37).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Oct 13 09:47 pub
drwxrwxrwx    3 0        0            4096 Oct 15 12:50 upload
226 Directory send OK.

(3) 不同的虚拟用户拥有不同的权限设定

在配置(2)的基础上,配置每匿名用户有单独的权限设定

[root@node3 ~]# vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_conf    #在末尾追加此语句

创建目录:

[root@node3 ~]# mkdir /etc/vsftpd/vusers_conf

为每用户提供配置文件:

[root@node3 ~]# /etc/vsftpd/vusers_conf/{tom,jerry}

配置权限的指令:

[root@node3 ~]# vim /etc/vsftpd/vusers_conf/tom
anon_upload_enable=YES|NO        #注意不给指令:默认为NO
anon_mkdir_write_enable=YES|NO
anon_other_write_enable=YES|NO
[root@node3 ~]# vim /etc/vsftpd/vusers_conf/jerry
anon_upload_enable=YES|NO
anon_mkdir_write_enable=YES|NO
anon_other_write_enable=YES|NO


原创文章,作者:megedugao,如若转载,请注明出处:http://www.178linux.com/51930

(0)
megedugaomegedugao
上一篇 2016-10-15 20:52
下一篇 2016-10-16 11:51

相关推荐

  • 正则表达式简述

    正则表达式简述 什么是正则表达式: 正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 正则表达式分类: 标准正…

    Linux干货 2016-04-05
  • python 10第一周博客作业

    1. 修改提示符格式 PS1=”\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]” 2.命令别名:alias NAME=’VALUE’   如果想永久有效,要定义在配置文件中 仅对当前用户:~/.bashrc   对所有用户有效:/etc/bashrc 3.日期和时间:相关命令 d…

    Linux干货 2018-03-17
  • 网络班N22期第三周博客作业

    一、列出当前系统所有已经登录的用户名,且同一个用户登录多次只显示一次 [root@bogon ~]# w  15:17:44 up 15:28,  2 users,  load average: 0.00, 0.00, …

    Linux干货 2016-08-29
  • 推荐-VSftpd使用MySQL存储虚拟用户进行认证

    VSftpd使用MySQL存储虚拟用户进行认证 VSftpd使用MySQL存储虚拟用户进行认证 前言 实验拓扑 实验环境 实验步骤 安装vsftpd并测试 安装MySQL并创建对应用户和表 配置vsftpd基于MySQL表的虚拟用户 测试 测试tom用户的权限 测试anyisalin用户的权限 总结 前言 周一的时候做这个实验失败了,当时以为是pam_mys…

    Linux干货 2016-04-04
  • Python修饰器的函数式编程

    Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西。虽然好像,他们要干的事都很相似——都是想要对一个已有的模块做一些“修饰工作”,所谓修饰工作就是想给现有的模块加上一些小装饰(一些小功能,这些小功能可能好多模块都会用到),但又不让这个小…

    Linux干货 2016-08-15
  • N24 第三周 磁盘及文件系统管理

    Linux系统管理          磁盘分区及文件系统管理          RAID          LVM 动态磁盘设备管理          网络属性…

    Linux干货 2016-11-22