centos6下的vsftpd配置
文章允許轉(zhuǎn)載,請注明來源:https://blog.csdn.net/feiniao8651/article/details/96039205
背景
ftp是大家常用的一個文件傳輸工具,自己有過多次搭建ftp的經(jīng)歷,但是每次環(huán)境都多少有些區(qū)別,搭建的時候往往還是會遇到不同的問題,不能做到得心應(yīng)手。網(wǎng)上的資料也是參差不齊,大多數(shù)都是一個操作的步驟,但是有的關(guān)鍵步驟,為什么這么做的原因卻沒有說清楚,這里做一個總結(jié),也便于自己以后處理類似的問題。
這里的應(yīng)用場景是在nginx目錄下配置的php工程,因為有其他人需要通過ftp訪問修改php文件,所以需要有一個ftp服務(wù)能提供對應(yīng)目錄下的文件下載及上傳,同時也不能影響到ngnix對工程的訪問。
環(huán)境:CentOS 6.9
安裝vsftp
安裝很簡單,就是通過yum來安裝
$sudo yum install vsftpd安裝完成后,接下來就需要進行相應(yīng)的配置了。主要是對用戶及對應(yīng)訪問路徑的配置。
配置vsftp
用戶配置
ftp支持配置的用戶分為三種,分別是:
本地用戶(local):用戶在FTP服務(wù)器擁有賬號,且該賬號為本地用戶的賬號,可以通過自己的賬號和口令進行授權(quán)登錄,登錄目錄為自己的home目錄$HOME
虛擬用戶(guest):用戶在FTP服務(wù)器上擁有賬號,但該賬號只能用于文件傳輸服務(wù)。登錄目錄為某一特定的目錄,通??梢陨蟼骱拖螺d
匿名用戶(anonymous):用戶在FTP服務(wù)器上沒有賬號,登錄目錄為/var/ftp
(數(shù)據(jù)來自https://blog.csdn.net/kxwinxp/article/details/78595044)
我們是要訪問特定的目錄,所以可以配置虛擬用戶。
1. 安裝虛擬用戶驗證所需要的依賴包
2. 創(chuàng)建虛擬用戶賬號及密碼
$sudo vim /etc/vsftpd/virtualusers按以下格式添加內(nèi)容(奇數(shù)行為賬號,賬號后的偶數(shù)行為密碼)
testuser 1234563. 生成虛擬用戶認證的db文件
$sudo db_load -T -t hash -f /etc/vsftpd/virtualusers /etc/vsftpd/virtualusers_passwd.db $sudo chmod 600 /etc/vsftpd/virtualusers_passwd.db4. 配置PAM信息
PAM(Pluggable Authentication Modules)即可插拔式認證模塊,它是一種高效而且靈活便利的用戶級別的認證方式,它也是當前Linux服務(wù)器普遍使用的認證方式。
PAM 是關(guān)注如何為服務(wù)驗證用戶的API,通過提供一些動態(tài)鏈接庫和一套統(tǒng)一的API,將系統(tǒng)提供的服務(wù)和該服務(wù)的認證方式分離,使得系統(tǒng)管理員可以靈活地根據(jù)需要給不同的服務(wù)配置不同的認證方式而無需更改服務(wù)程序,同時,PAM是一種認證框架,自身不做認證。
配置過程就是修改原有vsftp的PAM配置文件
$sudo vim /etc/pam.d/vsftpd注釋掉文件中原有的規(guī)則,添加以下兩條規(guī)則
auth required pam_userdb.so db=/etc/vsftpd/virtualusers_passwd account required pam_userdb.so db=/etc/vsftpd/virtualusers_passwd注意:這里的db=后面其實就是對應(yīng)我們剛才在第3步生成的db文件,但是這里不能帶文件后綴名,否則系統(tǒng)會報錯
pam_userdb(vsftpd:auth): user_lookup: could not open database `/etc/vsftpd/virtualusers_passwd.db': No such file or directory原因是這里使用的pam_userdb.so庫會自動在文件后面加.db的后綴,所以我們?nèi)绻窂嚼飳懥?db,反而就是冗余了。有一篇文章提到了這個問題。
5. 配置vsftpd.conf
這個文件是vsftpd的核心配置文件,基本上大多數(shù)常用的設(shè)置都在這里面。
我這里設(shè)置的主要是以下幾點:
guest_username這里特別強調(diào)一下,這里填寫用戶需要有對我們要訪問的資源的讀寫權(quán)限,比如我這里nginx下的資源,所有者都是www用戶,所以我綁定的用戶名是www。同時要設(shè)置virtual_use_local_privs為yes,即虛擬用戶享有和綁定用戶同樣的權(quán)限。
6. 創(chuàng)建虛擬用戶對應(yīng)的配置文件
為了對不同的虛擬用戶做權(quán)限劃分,每個虛擬用戶都有一個單獨的配置文件,接下來我們就為剛才創(chuàng)建的testuser用戶添加配置文件。所有的虛擬用戶配置文件都是在上面配置的user_config_dir目錄下,文件名稱即為用戶名。
文件中添加以下內(nèi)容
#local_root即為想讓虛擬用戶訪問的目錄 local_root=/home/aaa/php write_enable=yes download_enable=yes這里為每一個虛擬用戶創(chuàng)建單獨的文件,主要目的就是為了能夠靈活配置不同虛擬用戶的權(quán)限。比如可以在vsftpd.conf里將write_enable都設(shè)置為NO,然后在需要有寫權(quán)限的虛擬用戶配置文件中配置write_enable為YES即可。
配置完之后重啟vsftpd即可。
ps:一定要在創(chuàng)建完對應(yīng)用戶配置文件后再去訪問ftp。如果在創(chuàng)建用戶配置文件前就去登錄,會導(dǎo)致該用戶訪問到綁定用戶的用戶目錄下,而且這個初始路徑即使再增加單用戶配置文件也無法修改,只能將該用戶刪除。
虛擬用戶的增加和刪除
添加新的虛擬用戶賬號和密碼到/etc/vsftpd/virtualusers,在/etc/vsftpd/virtualusers_conf目錄下添加對應(yīng)賬號名的配置文件。使用以下命令重新生成驗證用的db文件
刪除/etc/vsftpd/virtualusers中的賬號和密碼,刪除/etc/vsftpd/virtualusers_conf下對應(yīng)用戶的配置文件,使用命令重新生成驗證用的db文件即可。
后記
通過虛擬用戶配置文件,既能保證一定的系統(tǒng)安全性,實現(xiàn)靈活的用戶權(quán)限控制,可謂一舉兩得。但是配置過程中,容易出現(xiàn)一些配置上的問題,導(dǎo)致ftp訪問異常。在查資料的過程中,網(wǎng)上大部分解決問題的方式都是簡單粗暴的chmod 777,但是卻沒有想一下為什么會出現(xiàn)權(quán)限的問題。其實vsftp已經(jīng)提供了很完善的權(quán)限配置支持,我們只需要稍微花費點時間了解和配置一下,就能體會到他的靈活性和便利性。
參考:
linux下WEB服務(wù)器安裝、配置VSFTP
vsftp日志xferlog格式分析
vsftpd setup – the missing information
Centos6.9安裝vsftpd并配置虛擬多用戶
centos 7基于虛擬用戶配置vsftpd
CentOS 7 安裝FTP服務(wù)器(vsftpd)
總結(jié)
以上是生活随笔為你收集整理的centos6下的vsftpd配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Latex符号总结
- 下一篇: Tomcat启动出现乱码