iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Vsftpd+Mysql+Pam如何配置虚拟用户
  • 179
分享到

Vsftpd+Mysql+Pam如何配置虚拟用户

2024-04-02 19:04:59 179人浏览 泡泡鱼
摘要

这篇文章主要介绍Vsftpd+Mysql+Pam如何配置虚拟用户,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!  一、VSFTPD的安装  目前,VSFTPD的最新版本是1.2.0版

这篇文章主要介绍Vsftpd+Mysql+Pam如何配置虚拟用户,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

  一、VSFTPD的安装

  目前,VSFTPD的最新版本是1.2.0版。官方下载地址为ftp://vsftpd.beasts.org/users/cevans/vsftpd-1.2.0.tar.gz。在安装前,需要先做以下准备工作:

  VSFTPD默认配置中需要“nobody”用户。在系统中添加此用户,如果用户已经存在,useradd命令有相应提示。

  [root@hpe45 root]# useradd nobody useradd: user nobody exists

  VSFTPD默认配置中需要“/usr/share/empty”目录。在系统中此目录,如果目录已经存在,mkdir命令有相应提示。

  [root@hpe45 root]# mkdir /usr/share/empty/ mkdir: cannot create directory '/usr/share/empty': File exists

  VSFTPD提供匿名FTP服务时,需要“ftp”用户和一个有效的匿名目录。

  [root@hpe45 root]# mkdir /var/ftp/ [root@hpe45 root]# useradd -d /var/ftp ftp接下来的操作对于ftp用户是否已经存在都是有用的。

  [root@hpe45 root]# chown root.root /var/ftp [root@hpe45 root]# chmod og-w /var/ftp

  以上准备工作完成后,我们就可以开始编译源代码了。假定我们下载的vsftpd-1.2.0.tar.gz在/root目录,执行以下命令:[root@hpe45 root]# tar zxvf vsftpd-1.2.0.tar.gz [root@hpe45 root]# cd vsftpd-1.2.0 [root@hpe45 vsftpd-1.2.0]# make [root@hpe45 vsftpd-1.2.0]# make install

  上面的“make install”命令将编译好的二进制文件、手册等复制到相应目录。在RHL9上,可能需要手动执行以下复制:[root@hpe45 vsftpd-1.2.0]# cp vsftpd /usr/local/sbin/vsftpd [root@hpe45 vsftpd-1.2.0]# cp vsftpd.conf.5 /usr/local/share/man/man5 [root@hpe45 vsftpd-1.2.0]# cp vsftpd.8 /usr/local/share/man/man8

  接下来,我们复制一个简单的配置文件作为基础供后面修改。

  [root@hpe45 vsftpd-1.2.0]# cp vsftpd.conf /etc [root@hpe45 vsftpd-1.2.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp复制PAM验证文件,以允许本地用户登录VSFTPD。

  [root@hpe45 vsftpd-1.2.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp

  二、创建guest用户

  VSFTPD采用PAM方式验证虚拟用户。由于虚拟用户的用户名/口令被单独保存,因此在验证时,VSFTPD需要用一个系统用户的身份来读取数据库文件或数据库服务器以完成验证,这就是VSFTPD的guest用户。这正如同匿名用户也需要有一个系统用户ftp一样。当然,我们也可以把guest用户看成是虚拟用户在系统中的代表。下面在系统中添加vsftpdguest用户,作为VSFTPD的guest。

  [root@hpe45 vsftpd-1.2.0]# useradd vsftpdguest当虚拟用户登录后,所在的位置为vsftpdguest的自家目录/home/vsftpdguest。如果要让虚拟用户登录到/var/ftp等其他目录,修改vsftpdguest的自家目录即可。

  三、设置VSFTPD配置文件

  在/etc/vsftpd.conf文件中,加入以下选项:guest_enable=YES guest_username=vsftpdguest

  然后执行以下命令,让VSFTPD在后台运行:[root@hpe45 vsftpd-1.2.0]# /usr/local/sbin/vsftpd &

四、将虚拟用户保存在MySQL数据库服务器中

  我们建立数据库vsftpdvu,表users,字段name和passwd用于保存虚拟用户的用户名和口令,同时增加两个虚拟用户xiaotong和xiaowang。

  [root@hpe45 vsftpd-1.2.0]# mysql -p mysql>;create database vsftpdvu; mysql>;use vsftpdvu; mysql>;create table users(name char(16) binary,passwd char(16) binary); mysql>;insert into users (name,passwd) values ('xiaotong',password('qqmywife')); mysql>;insert into users (name,passwd) values ('xiaowang',password('ttmywife')); mysql>;quit

  然后,授权vsftpdguest可以读vsftpdvu数据库的users表。执行以下命令:[root@hpe45 vsftpd-1.2.0]# mysql -u root mysql -p mysql>;grant select on vsftpdvu.users to vsftpdguest@localhost identified by 'i52serial0'; mysql>;quit

  如果要验证刚才的操作是否成功可以执行下面命令:[root@hpe45 vsftpd]#mysql -u vsftpdguest -pi52serial0 vsftpdvu mysql>;select * from users;如果成功,将会列出xiaotong、xiaowang和加密后的密码

  五、设置MySQL的PAM验证

  这里我们要用到一个利用mysql进行pam验证的开源项目Http://sourceforge.net/projects/pam-mysql/)。首先从网站下载它的程序包pam_myql-0.5.tar.gz,复制到/root目录中。在编译安装之前,要确保mysql-devel的RPM包已经安装在你的机器上,如果没有请从RHL安装光盘中安装该包。然后,执行以下命令:[root@hpe45 root]#tar xvzf pam_mysql-0.5.tar.gz [root@hpe45 root]#cd pam_mysql [root@hpe45 pam_mysql]#make [root@hpe45 pam_mysql]#make install make install这一步可能会出现错误,那只好手动将该目录下生成的pam_mysql.so复制到/lib/security目录下。

  接下来,我们要设置vsftpd的PAM验证文件。打开/etc/pam.d/ftp文件,加入以下内容:auth required pam_mysql.so user=vsftpdguest passwd=i52serial0 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2 account required pam_mysql.so user=vsftpdguest passwd=i52serial0 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2上面涉及到的参数,只要对应前面数据库的设置就可以明白它们的含义。这里需要说明的是crypt参数。crypt表示口令字段中口令的加密方式:crypt=0,口令以明文方式(不加密)保存在数据库中;crypt=1,口令使用UNIX系统的DES加密方式加密后保存在数据库中;crypt=2,口令经过MySQL的password()函数加密后保存。

  六、进一步的虚拟用户设置

  经过以上的步骤,虚拟用户就可以正常使用了。这里介绍进一步的虚拟用户设置。首先,介绍虚拟用户的权限设置。

  VSFTPD-1.2.0新添了virtual_use_local_privs参数,当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限,这也就是VSFTPD-1.2.0之前版本对虚拟用户权限的处理方法。这两者种做法相比,后者更加严格一些,特别是在有写访问的情形下。默认情况下此参数是关闭的(NO)。

  当virtual_use_local_privs=YES时,只需设置write_enable=YES,虚拟用户就可以就拥有写权限。而virtual_use_local_privs=NO时,对虚拟用户权限的设置就更多一些更严格一些。

  控制虚拟用户浏览目录:如果让用户不能浏览目录,但仍可以对文件操作,那么需要执行以下二个步骤:一,配置文件中,anon_world_readable_only=YES。二,虚拟用户目录的权限改为只能由vsftpdguest操作:[root@hpe45 root]# chown vsftpdguest.vsftpdguest /home/vsftpdguest [root@hpe45 root]# chmod 700 /home/vsftpdguest

  允许虚拟用户上传文件:

  write_enable=YES anon_upload_enable=YES允许虚拟用户修改文件名和删除文件:anon_other_write_enable=YES由于以上选项的设置同样会对匿名用户生效。如果不想匿名用户趁机拥有同样的权限,最好是禁止匿名用户登录。

  其次,由于虚拟用户在系统中是vsftpdguest身份,所以可以访问到系统的其他目录。为了更加安全,我们可以将虚拟用户限制在自家目录下。有两种做法:一,在配置文件中增加以下选项chroot_local_user=NO chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list然后,在/etc/vsftpd.chroot_list文件中加入虚拟用户名xiaotong和xiaowang。

  第二种做法,在配置文件中修改chroot_local_user=YES。

  经过修改后,虚拟用户登录后其根目录就限制在/home/vsftpdguest下,无法访问其他目录。

  七、虚拟用户的个人目录

  大家可以发现,无论是哪个虚拟用户,登录后所在的目录都是/home/vsftpdguest,即都是guest_username用户的自家目录。下面,介绍如何为每个虚拟用户建立自家目录。首先,在主配置文件中加入以下选项:user_config_dir=/etc/vsftpd/vsftpd_user_conf然后,生成/etc/vsftpd/vsftpd_user_conf目录,并在该目录下建立与特定虚拟用户同名的文件:[root@hpe45 root]# mkdir /etc/vsftpd/vsftpd_user_conf [root@hpe45 root]# cd /etc/vsftpd/vsftpd_user_conf [root@hpe45 vsftpd_user_conf]# touch xiaowang以上的操作为虚拟用户xiaowang建立了个人配置文件/etc/vsftpd/vsftpd_user_conf/xiaowang。接下来,在xiaowang的个人配置文件中将xiaowang的自家目录修改为/home/xiaowang,配置选项为:

  local_root=/home/xiaowang然后,新建xiaowang目录,并将权限设为vsftpdguest:[root@hpe45 vsftpd_user_conf]# mkdir /home/xiaowang [root@hpe45 vsftpd_user_conf]# chown vsftpdguest.vsftpdguest ./xiaowang [root@hpe45 vsftpd_user_conf]# chmod 600 /home/xiaowang

  经过以上设置,xiaowang登录VSFTPD后,用“pwd”指令就可以发现被自己被定位到自己的“/home/xiaowang”目录。

  从文件系统层次来看,由于“/home/xiaowang”目录的权限是属于vsftpdguest的,所以其他的虚拟用户同样也可以访问xiaowang的自家目录。解决这个问题也很简单,我们只需要让VSFTPD负责将虚拟用户限制在其自家目录,就可以避免虚拟用户的互相访问。具体做法参照前面第六步中所述,这里不再赘述。经过以上设置后,虚拟用户就可以拥有属于自己的目录了。

  usr/bin/ld: cannot find -lmysqlclient你要把/usr/local/mysql/lib/mysql的文件拷到/usr/lib/下就不会有这样的错误了。

以上是“Vsftpd+Mysql+Pam如何配置虚拟用户”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: Vsftpd+Mysql+Pam如何配置虚拟用户

本文链接: https://www.lsjlt.com/news/63193.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vsftpd+Mysql+Pam如何配置虚拟用户
    这篇文章主要介绍Vsftpd+Mysql+Pam如何配置虚拟用户,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!  一、VSFTPD的安装  目前,VSFTPD的最新版本是1.2.0版...
    99+
    2024-04-02
  • vsftpd怎么配置虚拟用户
    小编给大家分享一下vsftpd怎么配置虚拟用户,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! vsftpd的虚拟用户配置:PAM + PgSQL + F...
    99+
    2023-06-13
  • Linux下如何安装vsftpd以及配置FTP虚拟用户
    这篇文章主要为大家展示了“Linux下如何安装vsftpd以及配置FTP虚拟用户”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何安装vsftpd以及配置FTP虚拟用户”这篇文章吧。...
    99+
    2023-06-16
  • CentOS 6.2中怎么配置vsftpd虚拟用户
    本篇文章为大家展示了CentOS 6.2中怎么配置vsftpd虚拟用户,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下:[root@linuxde ~]# mount /dev/cdrom /...
    99+
    2023-06-10
  • CentOS6.4下怎么安装vsftpd并配置虚拟用户
    这篇文章主要介绍“CentOS6.4下怎么安装vsftpd并配置虚拟用户”,在日常操作中,相信很多人在CentOS6.4下怎么安装vsftpd并配置虚拟用户问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Cen...
    99+
    2023-06-10
  • 如何进行VSFTP+MySQL虚拟用户配置
    本篇文章为大家展示了如何进行VSFTP+MySQL虚拟用户配置,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  VSFTPD是一种在UNIX/Linux中非常安全且...
    99+
    2024-04-02
  • 基于MySql验证的vsftpd虚拟用户
    目录1. Mysql安装1.2 建表建库建用户1.3 创建远程连接账户2. 安装FTP服务器2.1 安装vsftpd2.2 安装pam_mysql2.2 建立pam认证所需文件2.3...
    99+
    2024-04-02
  • Linux下vsftpd+mysql虚拟用户有什么用
    这篇文章将为大家详细讲解有关Linux下vsftpd+mysql虚拟用户有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。第一步:安装vsftpd apt-get i...
    99+
    2024-04-02
  • MySql如何实现新建并验证vsftpd虚拟用户
    这篇文章将为大家详细讲解有关MySql如何实现新建并验证vsftpd虚拟用户,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. Mysql安装yum -y install m...
    99+
    2023-06-25
  • vsftpd操作——配置虚拟用户登录的详细步骤
    笔者重新整理了文章的结构和内容,看这篇会舒服很多Linux笔记之配置vsftpd服务的虚拟用户登录 配置虚拟用户,使用独立的用户帐号进行登录vsftp 1.环境准备 安装vsftpd及相关组件 rpm -qa | grep vsftpd...
    99+
    2023-09-06
    服务器 linux 运维
  • vsftpd基于pam_mysql如何做虚拟用户认证
    这篇文章给大家介绍vsftpd基于pam_mysql如何做虚拟用户认证,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。(1)下载epel源[root@CentOS7-175 ~...
    99+
    2024-04-02
  • 如何编辑CentOS vsftpd虚拟用户文件数据
    如何编辑CentOS vsftpd虚拟用户文件数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。先建立CentOS vsftpd虚拟用户名单文件:[root@K...
    99+
    2023-06-16
  • CentOS5.3系统设置vsftpd虚拟用户的详细步骤
    这篇文章主要介绍“CentOS5.3系统设置vsftpd虚拟用户的详细步骤”,在日常操作中,相信很多人在CentOS5.3系统设置vsftpd虚拟用户的详细步骤问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C...
    99+
    2023-06-10
  • MySQL中怎么利用pam_mysql模块实现vsftpd虚拟用户
    MySQL中怎么利用pam_mysql模块实现vsftpd虚拟用户,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、实验环境的...
    99+
    2024-04-02
  • vsftpd如何配置
    小编给大家分享一下vsftpd如何配置,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!#匿名用户anonymous_enable=NO#anon_mkdir_wri...
    99+
    2023-06-13
  • linux 中怎么配置vsftp虚拟用户
    本篇文章为大家展示了linux 中怎么配置vsftp虚拟用户,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.生成虚拟用户口令库文件。为了建立此口令库文件,先要生成一个文本文件。该文件的格式如下,单...
    99+
    2023-06-13
  • 【Mysql】MHA配置虚拟ip
    虚拟ip飘逸 说到Failover,通常有两种方式:一种是虚拟IP地址,一种是全局配置文件。 MHA并没有限定使用哪一种方式,而是让用户自己选择,虚拟IP地址的方...
    99+
    2024-04-02
  • 怎么建立基于虚拟用户的VSftpd服务
    这篇文章主要介绍“怎么建立基于虚拟用户的VSftpd服务”,在日常操作中,相信很多人在怎么建立基于虚拟用户的VSftpd服务问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么建立基于虚拟用户的VSftpd服务...
    99+
    2023-06-09
  • CentOS vsftpd怎么制作虚拟用户数据库文件
    本篇内容介绍了“CentOS vsftpd怎么制作虚拟用户数据库文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!制作虚拟用户数据库文件先建...
    99+
    2023-06-16
  • 如何配置虚拟主机
    配置虚拟主机的步骤如下:1. 在服务器上安装并配置Web服务器软件(例如Apache、Nginx等)。2. 确定要使用的域名或IP地...
    99+
    2023-08-22
    虚拟主机
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作