FTP开启虚拟用户访问
首選的FTP服務器搭建方式
安裝vsftpd
#查看當前系統版本?
cat /etc/redhat-release ?
CentOS release 6.6 (Final)?
?
#查看是否已經安裝vsftpd?
rpm -qa | grep vsftpd?
#如果沒有,就安裝,并設置開機啟動?
yum -y install vsftpd?
chkconfig vsftpd on?
基于虛擬用戶的配置
所謂虛擬用戶就是沒有使用真實的帳戶,只是通過映射到真實帳戶和設置權限的目的。虛擬用戶不能登錄CentOS系統。
修改配置文件
vi /etc/vsftpd/vsftpd.conf?
?
#服務器獨立運行?
listen=YES?
#設定不允許匿名訪問?
anonymous_enable=NO?
#設定本地用戶可以訪問。注:如使用虛擬宿主用戶,在該項目設定為NO的情況下所有虛擬用戶將無法訪問?
local_enable=YES?
#使用戶不能離開主目錄?
chroot_list_enable=YES?
#設定支持ASCII模式的上傳和下載功能?
ascii_upload_enable=YES?
ascii_download_enable=YES?
#PAM認證文件名。PAM將根據/etc/pam.d/vsftpd進行認證?
pam_service_name=vsftpd?
#設定啟用虛擬用戶功能?
guest_enable=YES?
#指定虛擬用戶的宿主用戶,CentOS中已經有內置的ftp用戶了?
guest_username=www?
#設定虛擬用戶個人vsftp的CentOS FTP服務文件存放路徑。存放虛擬用戶個性的CentOS FTP服務文件(配置文件名=虛擬用戶名)?
user_config_dir=/etc/vsftpd/vuser_conf?
#配置vsftpd日志(可選)?
xferlog_enable=YES?
xferlog_std_format=YES?
xferlog_file=/var/log/xferlog?
dual_log_enable=YES?
vsftpd_log_file=/var/log/vsftpd.log?
進行認證
#安裝Berkeley DB工具,很多人找不到db_load的問題就是沒有安裝這個包?
yum install db4 db4-utils?
?
#創建用戶密碼文本,注意奇行是用戶名,偶行是密碼?
vi /etc/vsftpd/vuser_passwd.txt?
?
test?
123456?
?
#生成虛擬用戶認證的db文件?
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db?
?
#編輯認證文件,全部注釋掉原來語句,再增加以下兩句?
vi /etc/pam.d/vsftpd?
?
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd?
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd?
?
#創建虛擬用戶配置文件?
mkdir /etc/vsftpd/vuser_conf/?
#文件名等于vuser_passwd.txt里面的賬戶名,否則下面設置無效?
vi /etc/vsftpd/vuser_conf/test?
?
#虛擬用戶根目錄,根據實際情況修改?
local_root=/data/ftp?
write_enable=YES?
anon_umask=022?
anon_world_readable_only=NO?
anon_upload_enable=YES?
anon_mkdir_write_enable=YES?
anon_other_write_enable=YES?
設置FTP根目錄權限
#最新的vsftpd要求對主目錄不能有寫的權限所以ftp為755,主目錄下面的子目錄再設置777權限?
mkdir /data/ftp?
chmod -R 755 /data?
chmod -R 777 /data/ftp?
?
#建立限制用戶訪問目錄的空文件?
touch /etc/vsftpd/chroot_list?
?
#如果啟用vsftpd日志需手動建立日志文件?
touch /var/log/xferlog ?
touch /var/log/vsftpd.log?
配置PASV模式(可選)
vsftpd默認沒有開啟PASV模式,現在FTP只能通過PORT模式連接,要開啟PASV默認需要通過下面的配置。
打開/etc/vsftpd/vsftpd.conf,在末尾添加?
?
#開啟PASV模式?
pasv_enable=YES?
#最小端口號?
pasv_min_port=40000?
#最大端口號?
pasv_max_port=40080?
pasv_promiscuous=YES?
?
#在防火墻配置內開啟40000到40080端口?
-A INPUT -m state --state NEW -m tcp -p -dport 40000:40080 -j ACCEPT?
?
#重啟iptabls和vsftpd?
service iptables restart?
service vsftpd restart?
?
現在可以使用PASV模式連接你的FTP服務器了~?
Selinux和防火墻
該關閉的關閉,該放行的放行
service vsftpd start?
常見問題
如果登錄時出現
500 OOPS: priv_sock_get_result. Connection closed by remote host.?
這樣的錯誤,需要升級pam
yum update pam?
轉載于:https://blog.51cto.com/wangxiaoyong/1881209
總結
以上是生活随笔為你收集整理的FTP开启虚拟用户访问的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于 Android NDK 的学习之旅
- 下一篇: 在腾讯云上创建您的SQL Cluster