vsftpd基於mysql服務實現:mysql
查看是maradb中是否有pam-mysql,在目錄/lib64/security/下。sql
沒有就編譯安裝pam-mysql
數據庫
步驟:vim
1. # yum -y groupinstall "Development Tools" "Server Platform Development"ide
2. # yum -y install pam-devel openssl-devel mariadb-devel mariadb-serverui
3. # ./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security加密
注:可以使用./configure -help查看配置指令orm
# make && make installserver
4. 以後在mysql數據庫中建立數據庫、表,在表中定義三個字段id,name,passwd。 受權等一系列操做ssl
在此步驟中須要建立如下內容:
連上數據庫:開啓mariadb服務以後使用mysql命令
a、CREATE DATABASE vsftpd;##建立數據庫
b、use vsftpd;#切換至數據庫中
c、CREATE TABLE users (id int AUTO_INCREMENT NOT NULL PRIMARY KEY,name char(30) NOT NULL,password char(48) binary NOT NULL );##建立表
d、INSERT INTO users(name,password) VALUES ('tom',password('mageedu'));##建立一個用戶
e、INSERT INTO users(name,password) VALUES ('jerry',password('mageedu'));##建立一個用戶
f、SELECT * FROM users;##查看錶
g、GRANT select ON vsftpd.* TO vsftpd@’127.0.0.1‘ IDENTIFIED BY 'mageedu';##受權用戶
h、FLUSH PRIVILEGES;
退出,能夠再次鏈接數據庫,檢查是否建立數據庫和表及表的內容是否成功。
5. pam配置文件;在目錄/etc/pam.d/下有個vsftpd,但在使用時要從新建立配置文件,在/etc/pam.d/目錄下建立 vsftpd.mysql 在裏面添加下面內容:(注意下面的內容都是在上一步當中的數據庫中添加建立過的)
auth required pam_mysql.so user=vsftpd passwd=mageedu host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2(加密方式類型)
account required pam_mysql.so user=vsftpd passwd=mageedu host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
6.建立用戶:useradd -s /sbin/nologin -d /ftproot vuser
chmod go+rx /ftproot/
配置文件:在配置文件/etc/vsftpd/vsftpd.conf中添加pam_service_name=vsftpd.mysql
gusest_enable=YES
gusest_username=vuser
在此同時確保上面的配置正確。
7.這時使用另外一臺主機嘗試是否能夠成功登錄。
能夠修改配置文件玩玩查看上傳等功能。
8.若是隻容許其中一個用戶上傳,則能夠經過如下方法:
a、首先將主配置文件中的上傳功能註釋了
b、建立一個用戶的專注配置文件目錄/etc/vsftpd/vusers.conf.d在此目錄下vim tom 在tom文件中添加anon_upload_enable=YES
vim jerry 在此文件中添加anon_upload_enable=NO
c、此時在主配置文件中要明確告訴vsftpd要使用用戶配置目錄,則在主配置文件中添加user_config_dir=/etc/vsftpd/vusers.conf.d/
d、重啓服務