->> -> name VARCHAR(50) BINARY NOT NULL,
-> password CHAR(48) BINARY NOT NULL );
Query OK, 0 rows affected (0.06 sec)
说明:在该数据库中创建名为users的表,建立3个字段:
id(无符号,不能为空,自动增长,把id定义成主键)
name(长度20个字符,区分字符大小写,不能为空)
passwd(长度48个字符,区分字符大小写,不能为空)
MariaDB [vsftpd]> show tables from vsftpd;
+------------------+
| Tables_in_vsftpd |
+------------------+
| users |
+------------------+
1 row in set (0.00 sec)
MariaDB [vsftpd]> desc users;
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default |Extra |
+----------+------------------+------+-----+---------+----------------+
|> | name |varchar(50) | NO | | NULL | |
| password | char(48) | NO | | NULL | |
+----------+------------------+------+-----+---------+----------------+
4、在表中插入用户
MariaDB [vsftpd]> insert into users(name,password)values('user1',password('abc12345'));
MariaDB [vsftpd]> insert into users(name,password)values('user2',password('abc12345'));
说明:在users表中插入用户数据,分别为"user1、user2",密码为"abc123,",使用passwod加密
MariaDB [vsftpd]> select * from users;
+----+-------+-------------------------------------------+
|> +----+-------+-------------------------------------------+
| 1 | user1 |*25817BCE9A997710F8A129AF52153A903AB9254F |
| 2 | user2 |*25817BCE9A997710F8A129AF52153A903AB9254F |
+----+-------+-------------------------------------------+
2 rows in set (0.00 sec)
三、在vsftpd服务器上连接MariaDB服务器测试:
[root@centos6 ~]# mysql -u vsftp -h 172.16.2.16 -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection> Server version: 5.5.46-MariaDB-log MariaDB Server
Copyright (c) 2000, 2013, Oracle and/or its affiliates. Allrights reserved.
Oracle is a registered trademark of Oracle Corporation and/orits
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the currentinput statement.
已连接成功!
四、配置vsftpd
1、建立pam认证所需文件
[root@centos6 ~]# vim /etc/pam.d/vsftpd.mysql
添加如下两行:
authrequired pam_mysql.so user=vsftp passwd=magelinux host=172.16.2.16 db=vsftpdtable=users usercolumn=name passwdcolumn=password crypt=2
accountrequired pam_mysql.so user=vsftp passwd=magelinux host=172.16.2.16 db=vsftpdtable=users usercolumn=name passwdcolumn=password crypt=2
2、建立虚拟用户映射的系统用户及对应的目录
[root@centos6 ~]# useradd -s /sbin/nologin -d/var/ftp/ftproot vftpuser
修改该目录权限,为了让其他用户能登录后进入该目录并具有读权限
[root@centos6 ~]# chmod go+rx /var/ftp/ftproot
[root@centos6 ~]# ll -d /var/ftp/ftproot
drwxr-xr-x. 3 vftpuser vftpuser 4096 Oct 28 09:51/var/ftp/ftproot
五、请确保/etc/vsftpd/vsftpd.conf中已经启用了以下选项
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
添加以下选项
guest_enable=YES
guest_username=vftpuser
并确保pam_service_name选项的值如下所示
pam_service_name=vsftpd.mysql
六、重启vsftpd服务,并把vsftpd服务设为开启自启动
[root@centos6 ~]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
[root@centos6 ~]# chkconfig vsftpd on
此时,在数据库vsftpd中users表中的用户均能登录访问了
但是,它们被默认映射为匿名账号,因此无法上传数据