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
下一篇 2017-06-06

相關推薦

  • 馬哥門徒Linux運維課程筆記-第1天03講 計算機及操作系統基礎

    第1天03講 計算機及操作系統基礎   ◆  市面上主流Unix廠商簡介         由于Unix系統的流行,當時行業中的主流大廠商都根據SysV或BSD開發了自己的版本,主要分類如下:       ●  IBM公司根據自己CPU硬件架…

    Linux干貨 2015-03-23
  • 常見的文本處理工具及正則表達式的相關知識

    1.cat命令使用詳解 cat [option]… [file]… -A equivalent=vET -b 非空行編號 -E 行為顯示$ -n 顯示所有行的行號 -s 行號并壓縮連續空行為一行 -T 顯示tab為^M 實例:顯示a文件的行號及所有控制符 2.(1)head使用詳解 head -n x 顯示前x行 head -c x …

    Linux干貨 2016-08-07
  • 計算機的組成及其功能

    計算機系統由硬件系統和軟件系統兩大部分組成。馮諾依曼奠定了現代計算機的基本結構。 馮諾依曼體系的計算機,必須具有如下功能: #1 把需要的程序和數據送至計算機中; #2 具有長期記憶程序、數據、中間結果及最終運算結果的能力; #3 能夠完成各種算術運算、邏輯運算和數據傳送等數據加工處理的能力; #4 能夠根據需要控制程序走向,并能根據指令控制機器的各部件協調…

    Linux干貨 2016-08-15
  • 第一章 linux的安裝及簡單的命令合集

    linux安裝;簡答命令:注釋;常見用法

    Linux干貨 2018-03-17
  • varnish

    Web Page Cache: squid –> varnish程序的運行具有局部性特征:時間局部性:一個數據被訪問過之后,可能很快會被再次訪問空間局部性:一個數據被訪問時,其周邊的數據也有可能被訪問到 cache:命中 熱區:局部性;時效性:緩存空間耗盡:LRU過期:緩存清理 緩存命中率:hit/(hit+miss)(0,1)頁面命中率:…

    Linux干貨 2017-05-22
  • shell編程及小命令

    1. ping 10.1.252.25d2 -c1 -w1 &> /dev/null && echo "The host is up" || echo "The host is down" 2. 在vim命令中, p或則P可以實現復制。     p: 復制到下一行 &n…

    Linux干貨 2016-08-12
欧美性久久久久