vsftpd虛擬用戶搭建

vsftpd虛擬用戶搭建

1.安裝vsftpd等一系列的安裝包

yum install vsftpd mariadb-server mariadb-devel pam-devel -y

2.安裝pam_mysql

下載:pam_mysql-0.7RC1.tar.gz
wget -c ftp://172.16.0.1/pub/Sources/sources/pam/pam_mysql-0.7RC1.tar.gz


./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security
make && make install

3.編輯mysql

cp /etc/my.cnf.d/mysql-server.cnf{,.back}
vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
innodb_file_per_table = 1
log-bin=mysql-bin
skip_name_resolve=1

4.啟動mysql,添加一下數據庫,表,插入數據等

create database vsftpd;#建立虛擬用戶數據庫,庫名vsftpd
use vsftpd; #進入vsftpd數據庫
create table users(id int unsigned not null auto_increment primary key, name varchar(100) not null,password varchar(48) not null,unique key(name));  #建立虛擬用戶口令表,表名users,插入數據                        
insert into users (name,password) values ('srayban',password('123456')), ('test',password('123456'));
#授權vsftpd這個賬號可以讀取vsftpd數據庫的user表                                                            
grant all on vsftpd.users to 'vsftpd'@'localhost' identified by '123456'
flush privileges;
#查看一下用戶
select * from users;

5.配置vsftpd.conf(設置虛擬用戶配置項)

cp /etc/vsftpd/vsftpd.conf{,.back}
vim /etc/vsftpd/vsftpd.conf                           
guest_enable=YES                          #開啟虛擬用戶
guest_username=vuser                 #FTP虛擬用戶對應的系統用戶,需要創建系統用戶
pam_service_name=vsftpd.vusers             #PAM認證文件   這里是手動建立的pam認證文件名

6.創建系統用戶vuser

mkdir /ftproot/vuser
useradd  -d /ftproot/vuser vuser
chown -R vuser:vuser /ftproot/vuser
chmod a-w  /ftproot/vuser

7.提供配置文件:/etc/pam.d/vsftpd.vusers

vim /etc/pam.d/vsftpd.vusers  

auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=123456 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=123456 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2




這里需要注意的是user和passwd填寫的是授權數據庫訪問賬號和密碼

crypt=0:表示口令使用明文方式保存在數據庫中
crypt=1:表示口令使用UNIX的DES加密方式加密后保存在數據庫中
crypt=2:表示口令使用MySQL的password()函數加密后保存在數據庫中
crypt=3:表示口令使用MD5散列值的方式保存在數據庫中
  1. 重啟vsftpd服務
systemctl restart vsftpd

9.注意,我們在登錄的時候,是把mysql賬號的用戶映射成,系統用戶vuser,所以我們同樣需要拿走vuser的寫權限

chmod a-w  /ftproot/vuser

10.虛擬用戶的寫權限,通過匿名一樣的指令進行定義; 還能實現不同的用戶有不同的權限; 在/etc/vsftpd/vsftpd.conf 后面添加

user_config_dir=/etc/vsftpd/vusers_config/

我們創建該目錄
mkdir -p /etc/vsftpd/vusers_config/
vim srayban
anon_upload_enable=YES

vim test
anon_upload_enable=YES
anon_mkdir_write_enable=YES

11.登錄測試ok

原創文章,作者:srayban,如若轉載,請注明出處:http://www.www58058.com/77611

(0)
sraybansrayban
上一篇 2017-06-05 23:27
下一篇 2017-06-06 16:38

相關推薦

  • 記馬哥教育第30期Linux云計算面授班開班典禮

    記馬哥教育第30期Linux云計算面授班開班典禮

    2018-03-26
  • 馬哥教育網絡班22期-第2周博客作業2

    2、bash的工作特性之命令狀態返回值和命令展開所涉及的內容及其示例演示 bash的基礎特性:命令的執行狀態結果   命令執行的狀態結果:   bash通過狀態返回值來輸出此結果:     成功:0     失敗:1-255  &…

    Linux干貨 2016-08-22
  • 基于NFS服務的wordpress站點

    實驗要求:             (1) nfs server導出/data/web,在目錄中提供wordpress;     (2) nfs client掛載nfs server導出的文件系統至/data/web; …

    2017-06-11
  • 網絡知識點

    1. 實現異地搭建局域網的方法1>. 讓運行商拉專線,這是相當昂貴的。2>.  VPN (Virtual PrivateNetwork)  虛擬專用網絡 2. VPN的隧道協議主要有三種:PPTP、L2TP和IPSec。其中PPTP和L2TP協議工作在OSI模型的第二層,又稱為二層隧道協議;IPSec是第三層隧道協議。 2. …

    Linux干貨 2016-09-01
  • init中的服務故障如何排除

    我們假設ypbind出故障 首先我們設 ypbind服務開機啟動 chkconfig yubind on 然后查看服務 chkconfig –list    默認是2345啟動   然后更改這個腳本,里面寄一個長期的休眠時間,模仿為錯誤 sleep 休眠時間 然后重新啟動,看看系統如何報錯。 然后系統等到要啟動該服務的時候回一…

    2017-07-22
欧美性久久久久