一、安裝所需要程序
1、安裝vsftpd
yum -y install vsftpd
2、安裝MySQL
yum -y install mysql-server mysql-devel pam_mysql
二、創建虛擬用戶賬號
1.準備數據庫及相關表 首先請確保mysql服務已經正常啟動。而后,按需要建立存儲虛擬用戶的數據庫即可,這里將其創建為vsftpd數據庫。
mysql> create database vsftpd; mysql> grant select on vsftpd.* to vsftpd@localhost identified by ' mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by ' mysql> flush privileges; mysql> use vsftpd; 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) );
2、添加測試的虛擬用戶
根據需要添加所需要的用戶,需要說明的是,這里將其密碼為了安全起見應該使用PASSWORD函數加密后存儲。
mysql> insert into users(name,password) values('magedu1',password('magedu'));mysql> insert into users(name,password) values('magedu2',password('magedu'));
三、配置vsftpd
1.建立pam認證所需文件
#vi /etc/pam.d/vsftpd.mysql添加如下兩行 auth required /lib/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 account required /lib/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
2.修改vsftpd的配置文件,使其適應mysql認證
建立虛擬用戶映射的系統用戶及對應的目錄 useradd -s /sbin/nologin -d /var/ftproot vuser chmod go+rx /var/ftproot 請確保/etc/vsftpd.conf中已經啟用了以下選項 anonymous_enable=NOlocal_enable=YES write_enable=YES anon_upload_enable=NO anon_mkdir_write_enable=NO chroot_local_user=YES 而后添加以下選項 guest_enable=YES guest_username=vuser 并確保pam_service_name選項的值如下所示 pam_service_name=vsftpd.mysql
四、啟動vsftpd服務
service vsftpd startchkconfig vsftpd on
查看端口開啟情況
netstat -tnlp |grep :21tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 23286/vsftpd
使用虛擬用戶登錄,驗正配置結果
ftp 10.0.0.2 [root@localhost ~]# ftp 10.0.0.2 Connected to 10.0.0.2 (10.0.0.2). 220 (vsFTPd 2.2.2) Name (10.0.0.2:root): magedu1 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/" [root@localhost ~]# ftp 10.0.0.2 Connected to 10.0.0.2 (10.0.0.2). 220 (vsFTPd 2.2.2) Name (10.0.0.2:root): magedu2 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> pws ?Invalid command ftp> pwd 257 "/"
五、配置虛擬用戶具有不同的訪問權限
1、配置vsftpd為虛擬用戶使用配置文件目錄
# vim vsftpd.conf添加如下選項 user_config_dir=/etc/vsftpd/vusers_config
2、創建所需要目錄,并為虛擬用戶提供配置文件
mkdir /etc/vsftpd/vusers_config/cd /etc/vsftpd/vusers_config/touch magedu1 magedu2
3、配置虛擬用戶的訪問權限
修改/etc/vsftpd/vusers_config/ magedu1 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES 修改/etc/vsftpd/vusers_config/ magedu2 anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO
4、驗證結果
[root@localhost vusers_config]# ftp 10.0.0.2 Connected to 10.0.0.2 (10.0.0.2). 220 (vsFTPd 2.2.2) Name (10.0.0.2:root): magedu1 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (10,0,0,2,114,1). 150 Here comes the directory listing. drwx------ 2 500 500 4096 Sep 16 15:45 cd 226 Directory send OK. ftp> mkdir ccd 257 "/ccd" created ftp> exit 221 Goodbye. [root@localhost vusers_config]# ftp 10.0.0.2 Connected to 10.0.0.2 (10.0.0.2). 220 (vsFTPd 2.2.2) Name (10.0.0.2:root): magedu2 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> mkdir cd 550 Permission denied.
原創文章,作者:N21_ Dominic,如若轉載,請注明出處:http://www.www58058.com/47042