在CentOS系统下创建和配置虚拟用户的方法

2020-01-30 14:26:37于丽

一、下载当前vsftp最新版本

   
复制代码wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.3.4.tar.gz     


二、安装前准备

1、创建虚拟用户映射的本地用户wwwftp

   
复制代码useradd wwwftp -d /data/www -s /sbin/nologin

2、创建自定义配置目录

   
复制代码mkdir -p /data/soft/vsftpd/conf
mkdir -p /data/soft/vsftpd/bin
mkdir -p /data/soft/vsftpd/lib
mkdir -p /data/soft/vsftpd/user_conf
mkdir -p /data/soft/vsftpd/empty
mkdir -p /data/soft/vsftpd/logs
mkdir -p /data/www
mkdir -p /data/www/user1
mkdir -p /data/www/user2

3、对自定义目录设置权限

   
复制代码chown -R wwwftp:www /data/www
chmod -R 700 /data/soft/vsftpd/empty/
chown -R wwwftp:wwwftp /data/soft/vsftpd/empty/

4、复制用于验证用户登录的库文件到自定义目录方便管理

   
复制代码cp /lib/security/pam_userdb.so /data/soft/vsftpd/lib/

5、安装所需软件

   
复制代码yum -y install gcc db4* pam*

三、解压安装vsftpd

   
复制代码 tar zxvf vsftpd-2.3.4.tar.gz
cd vsftpd-2.3.4

源码安装默认不支持tcp_wrappers和ssl

需要修改builddefs.h

   
复制代码 /*默认值如下:*/
#undef VSF_BUILD_TCPWRAPPERS /*是否支持TCP WRAPPERS*/
#define VSF_BUILD_PAM /*是否支持自定义虚拟用户登录*/
#undef VSF_BUILD_SSL /*是否支持SSL传输*/
/*支持则将对应项设为define,否则设为undef*/

编译vsftpd

   
复制代码make

查看编译的vsftpd二进制文件是否加载了pam

   
复制代码ldd vsftpd

如下:

   
复制代码[root@CentOS5 vsftpd-2.3.4]# ldd vsftpd
linux-gate.so.1 => (0x00628000)
libwrap.so.0 => /lib/libwrap.so.0 (0x00cee000)
libnsl.so.1 => /lib/libnsl.so.1 (0x0015f000)
libpam.so.0 => /lib/libpam.so.0 (0x00fc4000)
libdl.so.2 => /lib/libdl.so.2 (0x007dc000)
libresolv.so.2 => /lib/libresolv.so.2 (0x008d8000)
libutil.so.1 => /lib/libutil.so.1 (0x00110000)
libcap.so.1 => /lib/libcap.so.1 (0x00d99000)
libc.so.6 => /lib/libc.so.6 (0x0029a000)
libaudit.so.0 => /lib/libaudit.so.0 (0x00114000)
/lib/ld-linux.so.2 (0x004a2000)

看到libpam.so.0 => /lib/libpam.so.0 (0x00fc4000)表示已成功加载pam认证模块

   
复制代码cp vsftpd /data/soft/vsftpd/bin