vsftp pam mysql_VSFTP+MySQL+PAM
Vsftp+MySQL+pam配置手冊(cè)
一、安裝所需軟件包
apt-get install vsftpd mysql-server mysql-client libpam-mysql
libpam-mysql 這個(gè)包可以讓PAM讀取MySQL數(shù)據(jù)來(lái)驗(yàn)證用戶信息,其它的軟件包就不用解譯了吧!
二、設(shè)置FTP用戶權(quán)限與家目錄
在 操作第一步驟完后,系統(tǒng)會(huì)自動(dòng)創(chuàng)建系統(tǒng)用戶名:ftp,這個(gè)用戶就是vsftpd默認(rèn)的匿名用戶,沒有其它權(quán)限。在我的工作環(huán)境下這個(gè)用戶名的家目錄是 /home/ftp,RH系統(tǒng)ftp家目錄是/var/ftp。呵呵,這都是無(wú)關(guān)緊要的,可以自由設(shè)置!你也可以自定義ftp匿名用戶,并作相關(guān)修改,下 載教程中用戶ftp也應(yīng)修改成你自定義的用戶名。
默認(rèn)/home/ftp權(quán)限并不是用戶ftp,我們要修改下。
#mkdir /home/ftp/temp
#chown -R ftp.nogroup /home/ftp
三、配置MySQL數(shù)據(jù)庫(kù)
說(shuō)起mysql我也慚愧,我對(duì)數(shù)據(jù)庫(kù)是一點(diǎn)也不懂!一直以來(lái)我把數(shù)據(jù)庫(kù)就簡(jiǎn)單的理解為一個(gè)龐大的信息倉(cāng)庫(kù)的。即原是信息就不得不想起安全吧!mysql默認(rèn)狀態(tài)下是很不安全的。我這里就只能簡(jiǎn)單的設(shè)置下口令,至于mysql優(yōu)化請(qǐng)大家去閱讀mysql手冊(cè)吧!
#mysqladmin -u root -p password 123456 修改mysql的root密碼,第一次修改因?yàn)閞oot密碼是空所以不用輸入舊密碼。
連接數(shù)據(jù)庫(kù):
#mysql -uroot -p 使用root用戶連入本機(jī)mysql服務(wù)器
Enter password: 輸入root用戶密碼,注意:不是系統(tǒng)根用戶哦
mysql> 連入成功!如果沒有出現(xiàn)這個(gè)提示符,則是上面兩個(gè)步驟沒有正確
mysql>create database vsftpd; 建立庫(kù)名。記住,在mysql環(huán)境下命令的結(jié)束必須有“;”,如果忘記了輸入“;”也不怕的,忘記了輸入“;”則是換行,在mysql里面命令是可以分成幾行執(zhí)行的。你再輸入“;”起同樣的作用。
mysql>show databases; 查看庫(kù)名是否建立,如果沒有則重新執(zhí)行上一步。
mysql>use vsftpd; 打開庫(kù)vsftpd,以下操作就會(huì)針對(duì)vsftpd庫(kù)。
mysql>create table users (name varchar(20) not null,password varchar(20) not null,primary key (name)) type=myisam; 創(chuàng)建名為users的表名,其中設(shè)置了兩個(gè)鍵name和password。這里比較難理解,我一一解釋吧!varchar(20) not null設(shè)置鍵長(zhǎng)度為20,且不能為空,primary key(name)設(shè)置表的主鍵(主鍵是不能賦相同的值,因?yàn)閒tp用戶名不能相同)。type=myisam設(shè)置表的類型(MyISAM 全新二進(jìn)制可移植的表處理器),這個(gè)是默認(rèn)的,可以省略。
mysql>show tables; 查看表是否建立成功,沒有請(qǐng)退到上一步。
mysql>insert into users values('admin','admin'); 建設(shè)虛擬用戶admin,密碼為admin。
mysql>insert into users values('download','download');
mysql>insert into users values('upload','upload');
mysql>insert into users values('web','web');
mysql>select * from users; 驗(yàn)證結(jié)果,如果看不到剛才建立的虛擬用戶那么請(qǐng)退到上一步。
MySQL數(shù)據(jù)建好了,但是我們不能直接用root用戶吧,要給它建立個(gè)用戶供pam使用。
mysql>grant select on vsftpd.users to vsftpd@localhost identified by 'vsftpd';
#grant 命令
#select on vsftpd.users 所有權(quán)限,這里設(shè)置權(quán)限僅在vsftpd庫(kù)的users表#使用select。
#to vsftpd@localhost 本機(jī)vsftpd用戶(mysql按照用戶名和所在IP區(qū)分用#戶,root和root@%不是同一個(gè)用戶。)
#identified by 'vsftpd' 設(shè)置vsftpd@localhost用戶的口令為vsftpd。
mysql>quit; 退出mysql,mysql配置完成。
四、配置vsftpd的PAM驗(yàn)證
#vim /etc/pam.d/vsftpd
把以前的內(nèi)容全部注釋掉,然后添加如下肉容(下面只有兩行,請(qǐng)注意):
auth required pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0
account required pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0
解釋一下:
user=vsftpd??? 剛才添加的mysql用戶名
passwd=vsftpd 剛才添加的用戶名密碼
host=localhost mysql服務(wù)器名,我是做在本機(jī)所以……。
db=vsftpd????? 與這個(gè)對(duì)應(yīng)create databases vsftpd,是存儲(chǔ)用戶名的mysql庫(kù)名
table=users??? 存儲(chǔ)用戶名的mysql庫(kù)中的表名
usercolumn=name 與mysql對(duì)應(yīng)的鍵
passwdcolumn=password 與mysql對(duì)應(yīng)的鍵
??? crypt=0 加密方式,0表示明文,1表示unix方式加密,2表示mysql中的password函數(shù)加密,3表示md5加密的。不過我都只有做成明文才成功了,1、2、3方法都不行! 知道的朋友告訴下哦!
總結(jié)
以上是生活随笔為你收集整理的vsftp pam mysql_VSFTP+MySQL+PAM的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python二元函数求导_用Excel和
- 下一篇: java 1%10_Java 操作符与运