若開啟selinux的話,那麼就需要
chcon -R -t public_content_t /var/ftp/user1/
chcon -R -t public_content_t /var/ftp/user2/
setsebool -P ftp_home_dir on
一、首先需要裝的包有:
yum install vsftpd lftp ftp libdb-utils(生成虛拟使用者驗證資料庫檔案) -y
systemctl restart vsftpd.service 啟動服務
systemctl enable vsftpd 設定開機啟動
systemctl status vsftpd 檢視服務啟動狀态與啟動狀态時間,加載的配置檔案等。
二、建立一個虛拟使用者的資料庫檔案
#!/bin/bash
cat > /etc/vsftpd/auth_virtual_ftp_user <<END
user1
123
user2
456
END
需要這個檔案來生成資料庫檔案
db_load -T -t hash -f /etc/vsftpd/auth_virtual_ftp_user /etc/vsftpd/auth_virtual_ftp_user.db
-T :允許non-Berkeley DB應用程式容易文本檔案加載到資料庫
-t:指定生成資料庫檔案類型
後面就是要用哪個檔案來生成資料庫檔案了,前面是文本檔案,後面是資料庫檔案,什麼名字都可以,但資料庫檔案必須是以*.db結尾的
三、配置vsftpd檔案
首先要備份一份初始檔案
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.$(date +%Y-%m-%d).bak
cat /etc/vsftpd/vsftpd.conf.$(date +%Y-%m-%d).bak | grep -v ^# | tr -s '\n' > /etc/vsftpd/vsftpd.conf
把裡面多餘的空行用tr -s '\n' 來清理掉,接着再重定向到vsftpd的配置檔案中。
cat /etc/vsftpd/vsftpd.conf 按以下要求來修改配置檔案
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO (預設是YES,改為NO的話,啟動服務時就不會出錯了)
listen_ipv6=YES
#userlist_enable=YES 如果這個開啟的話,那麼必須要有下面的這個檔案
#userlist_file=/etc/vsftpd.user_list 隻有這檔案裡面的使用者才用通路
pam_service_name=pam_vsftpd 這個檔案對應的位置是/etc/pam.d/pam_vsftpd
userlist_enable=YES
tcp_wrappers=YES
use_localtime=YES
guest_enable=YES
guest_username=ftpuser
user_config_dir=/etc/vsftpd/user_conf
建立虛拟使用者配置目錄
mkdir /etc/vsftpd/user_conf/
四、修改pam 子產品
[root@server1 ~]# cat /etc/pam.d/pam_vsftpd
auth required pam_userdb.so db=/etc/vsftpd/auth_virtual_ftp_user
account required pam_userdb.so db=/etc/vsftpd/auth_virtual_ftp_user
這裡的*.so 檔案全部都是預設在/lib64/security/這個目錄下
之前我總是認證不成功(登入503錯誤),我想可能是子產品之間有一些影響,是以我把其他的都注釋掉,隻留下這兩個即可。通常使用的情況下,暫無其他問題,若有的話歡迎指出問題,謝謝。
五、建立虛拟使用者
touch /etc/vsftpd/user_conf/{user1,user2}
cat /etc/vsftpd/user_conf/user1
anon_world_readable_only=no
write_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_upload_enable=yes
local_root=/var/ftp/user1
cat /etc/vsftpd/user_conf/user2
anon_world_readable_only=no # 允許匿名使用者浏覽器整個伺服器的檔案系統
write_enable=no # 允許在檔案系統寫入權限
anon_mkdir_write_enable=yes # 允許建立檔案夾
anon_other_write_enable=NO # 允許使用者改名和删除檔案的權限
anon_upload_enable=yes # 允許使用者上傳檔案
local_root=/var/ftp/user2
mkdir /var/ftp/{user1,user2} 建立虛拟使用者的根目錄
六、建立一個使用者要與vsftp.conf中的guest_username=ftpuser 所對應上
useradd -g ftp -s /sbin/nologin ftpuser
配置設定權限
cd /var/ftp/
chown -R ftpuser *
[root@server1 ftp]# ll -dh /var/ftp/user1/
drwxr-xr-x. 2 ftpuser ftpuser 6 Oct 31 02:38 /var/ftp/user1/
<a href="http://s3.51cto.com/wyfs02/M00/75/5B/wKiom1Y3QSfis0zJAAGAoiKSnJE505.jpg" target="_blank"></a>
本文轉自silence部落格51CTO部落格,原文連結http://blog.51cto.com/silencezone/1708341如需轉載請自行聯系原作者
a120518129