1. 程式人生 > >centos7 安裝ftp

centos7 安裝ftp

版本號 acc 所有 失敗 lin 上傳 vsftpd down 註釋

安裝VSFTPD
1.首先確認系統內無VSFTPD。

rpm -qa|grep vsftpd
若有的話會顯示vsftpd-x.x.x.-x.xxx.x86_64
若沒有的話會空返回

2.安裝VSFTPD

yum -y install vsftpd

3.設置開機啟動

chkconfig vsftpd on

配置VSFTPD
1.打開vsftpd配置文件/etc/vsftpd/vsftpd.conf

cd /etc/vsftpd
vi vsftpd.conf

.

anonymous_enable=NO //設定不允許匿名訪問

local_enable=YES //設定本地用戶可以訪問。註:如使用虛擬宿主用戶,在該項目設定為NO的情況下所有虛擬用戶將無法訪問

chroot_list_enable=YES //使用戶不能離開主目錄

chroot_list_file=/etc/vsftpd/chroot_list ascii_upload_enable=YES

ascii_download_enable=YES //設定支持ASCII模式的上傳和下載功能

pam_service_name=vsftpd //PAM認證文件名。PAM將根據/etc/pam.d/vsftpd進行認證
//已下三個請在配置文件中手動添加

guest_enable=YES //設定啟用虛擬用戶功能

guest_username=ftp //指定虛擬用戶的宿主用戶,CentOS中已經有內置的ftp用戶了

user_config_dir=/etc/vsftpd/vuser_conf //設定虛擬用戶個人vsftp的CentOS
FTP服務文件存放路徑。存放虛擬用戶個性的CentOS FTP服務文件(配置文件名=虛擬用戶名

2.創建用戶密碼文件/etc/vsftpd/vuser_passwd.txt ,註意奇行是用戶名,偶行是密碼

vi vuser_passwd.txt

admin
passwd

3.生成虛擬用戶認證的db文件

db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt vuser_passwd.db
/etc/vsftpd/vuser_passwd.db

ls 查看有沒有vuser.passwd.db生成

4.編輯認證文件/etc/pam.d/vsftpd

把前面的註釋去掉,然後加上以下幾條

註:db=/etc/vsftpd/vuser_passwd 中的vuser_passwd 是你生成的虛擬用戶的db文件

查看系統版本號: getconf LONG_BIT

系統為32位:

auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account
required pam_userdb.so db=/etc/vsftpd/vuser_passwd

系統為64位:

auth required /lib64/security/pam_userdb.so
db=/etc/vsftpd/vuser_passwd account required
/lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

5.創建虛擬用戶配置文件

mkdir /etc/vsftpd/vuser_conf/

vi /etc/vsftpd/vuser_conf/admin
//文件名等於vuser_passwd.txt裏面的賬戶名,否則下面設置無效

6.設置用戶配置文件內容

local_root=/storage/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

7.設置文件夾權限

chmod -R 777 /storage

8.設置Selinux

setsebool -P ftp_home_dir=1 //設置ftp可以使用home目錄

setsebool -P allow_ftpd_full_access=1 //設置ftp用戶可以有所有權限

9.啟動vsftpd服務

service vsftpd start

連接不上的問題解決:
1./etc/pam.d/vsftpd的腳本沒有引入相應的包,導致驗證用戶失敗

修改前先備份

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

vi /etc/pam.d/vsftpd

先將配置文件中原有的 auth 及 account 的所有配置行均註釋掉

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

如果系統為32位,上面改為lib

centos7 安裝ftp