日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

centos vsftp mysql_CentOS6.4 实现基于mysql的vsftpd

發布時間:2025/3/11 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 centos vsftp mysql_CentOS6.4 实现基于mysql的vsftpd 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大綱一、安裝所需要的軟件包

二、創建虛擬用戶賬號

三、配置vsftpd

四、啟動vsftpd服務并查看

五、關閉防火墻與SElinux

六、配置虛擬用戶有不同的訪問權限

一、安裝所需要的軟件包

1. 安裝開發環境[root@ftp ~]# yum -y groupinstall "Development Tools" "Development Libraries"

2. 安裝mysql數據庫[root@ftp ~]# yum -y install mysql-server mysql-devel

[root@ftp pam.d]# chkconfig mysqld on #開機自啟動

[root@ftp pam.d]# chkconfig mysqld --list

mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

[root@ftp pam.d]#

3. 安裝 pam_mysql[root@ftp ~]# wget http://sourceforge.net/projects/pam-mysql/files/latest/download/pam_mysql-0.7RC1.tar

[root@ftp ~]# tar xf pam_mysql-0.7RC1.tar.gz

[root@ftp ~]# cd pam_mysql-0.7RC1

[root@ftp pam_mysql-0.7RC1]# ./configure --with-mysql=/usr --with-openssl

[root@ftp pam_mysql-0.7RC1]# make && make install

編譯過程中出錯:configure: error: Cannot find pam headers. Please check if your system is ready for pam module development.

解決方法:[root@ftp pam_mysql-0.7RC1]# yum install -y pam-devel

說明:安裝完之后,相應的庫文件被安裝在/lib/security目錄中,[root@ftp ~]# cd /lib/security/

[root@ftp security]# ls

pam_mysql.la pam_mysql.so

[root@ftp security]#

4. 安裝 vsftpd[root@ftp pam_mysql-0.7RC1]# yum -y install vsftpd

[root@ftp pam.d]# chkconfig vsftpd on #開機自啟動

[root@ftp pam.d]# chkconfig vsftpd --list

vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

[root@ftp pam.d]#

二、創建虛擬用戶賬號

首先請確保mysql服務已經正常啟動。而后,按需要建立存儲虛擬用戶的數據庫即可,這里將其創建為vsftpd數據庫。

1. 啟動mysql數據庫[root@ftp ~]# service mysqld start

Starting mysqld: [ OK ]

[root@ftp ~]#

2. 登錄并創建數據庫及相關表[root@ftp ~]# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.1.69 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

(1). 創建數據庫vsftpdmysql> create database vsftpd;

Query OK, 1 row affected (0.00 sec)

(2). 創建授權mysql> grant select on vsftpd.* to vsftpd@localhost identified by '123456'; #給vsftpd授權

Query OK, 0 rows affected (0.01 sec)

mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by '123456'; #給vsftpd授權

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

(3). 創建users表mysql> use vsftpd;

Database changed

mysql> create table users (

-> id int AUTO_INCREMENT NOT NULL,

-> name char(20) binary NOT NULL,

-> password char(48) binary NOT NULL,

-> primary key(id)

-> );

Query OK, 0 rows affected (0.02 sec)

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| test |

| vsftpd |

+--------------------+

4 rows in set (0.00 sec)

(4). 測試vsftpd是否可以正常查詢數據庫信息

3. 添加測試的虛擬用戶

說明:根據需要添加所需要的用戶,需要說明的是,這里將其密碼采用明文格式存儲,原因是pam_mysql的password()函數與MySQL的password()函數可能會有所不同。mysql> insert into users(name,password) values('tom','123456');

Query OK, 1 row affected (0.01 sec)

mysql> insert into users(name,password) values('jerry','654321');

Query OK, 1 row affected (0.00 sec)

mysql> select * from users;

+----+-------+----------+

| id | name | password |

+----+-------+----------+

| 1 | tom | 123456 |

| 2 | jerry | 654321 |

+----+-------+----------+

2 rows in set (0.00 sec)

mysql>

注:在vsftpd數據庫中創建表users,包含name和password兩個字段,在表中插入tom和jerry兩條用戶的記錄,其中123456和654321為密碼,查詢用戶信息。

三、配置vsftpd

1. 建立pam認證所需文件[root@ftp ~]# cd /etc/pam.d/

[root@ftp pam.d]# ls

chfn fingerprint-auth passwd run_init smtp sudo vsftpd

chsh fingerprint-auth-ac password-auth runuser smtp.postfix sudo-i

config-util login password-auth-ac runuser-l sshd su-l

crond newrole polkit-1 smartcard-auth ssh-keycat system-auth

cvs other remote smartcard-auth-ac su system-auth-ac

[root@ftp pam.d]# vim vsftpd.mysql

auth required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn

=name passwdcolumn=password crypt=0

account required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercol

umn=name passwdcolumn=password crypt=0

說明:

其中user 是讀取mysql數據庫時使用的用戶名,passwd 為其對應的密碼,host指定mysql數據庫所在的主機,db指定存放虛擬用戶的數據庫,table指定存放虛擬用戶的表,usercolumn、passwdcolumn是指定表中存放用戶名和密碼的字段。

crypt指定密碼字段是以什么方式存儲到數據庫中

(1)crypt=0表示以明文保存密碼

(2)crypt=1表示使用crypt( )函數加密保存密碼

(3)crypt=2表示使用mysql中的password( )函數加密保存密碼

(4)crypt=3表示使用md5的方式保存密碼

2. 建立虛擬用戶映射的系統用戶及對應的目錄[root@ftp pam.d]# useradd -s /sbin/nologin -d /var/ftproot vuser #-d 指定家目錄的位置 -s 指定用戶登錄的shell,如果為用戶分配的shell是/sbin/nologin,則該用戶是不能登錄到系統的。

[root@ftp pam.d]# chmod go+rx /var/ftproot #修改家目錄權限

3. 修改/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

4. 添加以下選項(增加guest訪問)guest_enable=YES

guest_username=vuser

5. 修改pam_service_name選項的值pam_service_name=vsftpd.mysql

四、啟動vsftpd服務并驗證

1. 啟動vsftpd服務[root@ftp pam.d]# service vsftpd start

Starting vsftpd for vsftpd: [ OK ]

[root@ftp pam.d]#

2. 查看端口情況[root@ftp pam.d]# netstat -ntulp | grep :21

tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 17662/vsftpd

[root@ftp pam.d]#

3. 使用虛擬用戶登錄,驗正配置結果,以下為本機的命令方式測試,你也可以在其它Windows上用IE或者FTP客戶端工具登錄驗

(1). tom用戶登錄[root@ftp pam.d]# yum install -y ftp

[root@ftp pam.d]# ftp localhost

[root@ftp pam.d]# ftp localhost

Trying ::1...

ftp: connect to address ::1Connection refused

Trying 127.0.0.1...

Connected to localhost (127.0.0.1).

220 (vsFTPd 2.2.2)

Name (localhost:root): tom

331 Please specify the password.

Password:

230 Login successful. #登錄成功

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> dir

227 Entering Passive Mode (127,0,0,1,102,198).

150 Here comes the directory listing.

226 Directory send OK.

ftp>

(2). jerry 用戶登錄[root@ftp pam.d]# ftp localhost

Trying ::1...

ftp: connect to address ::1Connection refused

Trying 127.0.0.1...

Connected to localhost (127.0.0.1).

220 (vsFTPd 2.2.2)

Name (localhost:root): jerry

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> dir

227 Entering Passive Mode (127,0,0,1,161,81).

150 Here comes the directory listing.

226 Directory send OK.

ftp>

(3). Windows 下測試

五、關閉防火墻與SElinux

說明:博友可以看到我們這里可以登錄,但有的朋友登錄不了,是因為防火墻與SELinux,我們這里先關閉[root@ftp ~]# service iptables stop

[root@ftp ~]# service ip6tables stop

[root@ftp ~]# setenforce 0

setenforce: SELinux is disabled

[root@ftp ~]# getenforce

Disabled

這樣就可以正常登錄了,嘿嘿!

六、配置虛擬用戶有不同的訪問權限

說明:vsftpd可以在配置文件目錄中為每個用戶提供單獨的配置文件以定義其ftp服務訪問權限, 每個虛擬用戶的配置文件名同虛擬用戶的用戶名。配置文件目錄可以是任意未使用目錄, 只需要在vsftpd.conf指定其路徑及名稱即可。

1、配置vsftpd為虛擬用戶使用配置文件目錄[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf

添加如下選項

user_config_dir=/etc/vsftpd/vusers_dir

2、創建所需要目錄,并為虛擬用戶提供配置文件[root@ftp ~]# mkdir /etc/vsftpd/vusers_dir/

[root@ftp ~]# cd /etc/vsftpd/vusers_dir/

[root@ftp vusers_dir]# touch tom jerry

[root@ftp vusers_dir]# ls

jerry tom

[root@ftp vusers_dir]#

3、配置虛擬用戶的訪問權限

虛擬用戶對vsftpd服務的訪問權限是通過匿名用戶的相關指令進行的。比如,如果需要讓tom用戶具有上傳文件的權限,可以修改/etc/vsftpd/vusers/tom文件,在里面添加如下選項即可。[root@ftp vusers_dir]# vim tom

anon_upload_enable=YES

[root@ftp vusers_dir]# vim jerry

anon_mkdir_write_enable=YES

4. 修改 /etc/vsftpd/vsftpd.conf 配置[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf

anon_upload_enable=NO

anon_mkdir_write_enable=NO

[root@ftp ~]# service vsftpd restart

Shutting down vsftpd: [ OK ]

Starting vsftpd for vsftpd: [ OK ]

[root@ftp ~]#

5. 測試

(1). tom登錄測試

(2). jerry 登錄測試

所有演示全部結束!^_^ ……

總結

以上是生活随笔為你收集整理的centos vsftp mysql_CentOS6.4 实现基于mysql的vsftpd的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。