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