vsftpd中的一配置項(/etc/vsftpd/vsftpd.conf):
cmds_allowed= ABOR,APPE,CWD,CDUP,FEAT,LIST,MKD,MDTM,PASS,PASV,PWD,QUIT,RETR,REST,STOR,STRU,TYPE,USER(支持下載和上傳的斷點續傳等命令),相關參考:http://www.nsftools.com/tips/RawFTP.htm http://www.jinbuguo.com/vsftpd/vsftpd.conf.html
ftp命令與響應代碼的中文解釋:http://www.dz7.com.cn/discuz-1152-1-1.html
環境:vsftpd-3.0.2-25.el7.x86_64+CentOS Linux release 7.5.1804 (Core)
目標:同時使用匿名與用戶,擁有不同的權限
1.yun instatll vsftpd
2.vi /etc/vsftpd/vsftpd.conf
啟用:
chroot_local_user=YES
追加:
allow_writeable_chroot=YES
local_root=/var/ftp
anon_root=/var/ftp/pub
3. chown USERNAME /var/ftp/pub #USERNAME是變量,使用本地用戶代替。
4.systemctl start vsftpd.service
5.firewall防火牆和selinux設置(如果防火牆和selinux沒有關,就一定要做,不然總會報錯)
# firewall-cmd --list-services 列出防火牆允許訪問的服務
# firewall-cmd --add-service=ftp --permanent 永久添加ftp服務
# firewall-cmd --add-port=20/tcp --permanent 永久添加端口
# firewall-cmd --add-port=21/tcp --permanent 允許外網訪問
# firewall-cmd --reload 重新載入配置
# setsebool ftpd_full_access 1
# setsebool tftp_home_dir 1
注:若是對vsftpd做一些操作,比如換下硬盤,重新持載一下,selinux就需要重新做。不然總會出現一些奇怪的錯誤。
#getsebool -a | grep ftp 查看selinux中關於ftp的設置
環境:vsftpd.x86_64 0:2.2.2-24.el6+centos6.5
目標:構建兩個虛擬用戶,賦於不同的權限.
1.yum install vsftpd
2. vi /etc/vsftpd/vuser.list #編輯用戶與密碼(奇數為帳號,偶數為密碼),如下:
testusername1
testpassword
testusername2
testpassword
3.將vuser.list文件轉為數據庫文件.
db_load -T -t hash -f vuser.list vuser.db
chmod 600 vuser.db
rm -rf vuser.list
4.創建一個系統用戶,用於虛擬用戶的映射.
useradd -d /var/ftproot -s /sbin/nologin virtual
chown virtual /var/ftproot
chmod -Rf 755 /var/ftproot/
5.創建一個用於虛擬用戶驗證的PAM文件
vi /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
6.為每個虛擬用戶配置不同的權限
mkdir /etc/vsftpd/vusers_dir/
vi testusername1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
vi testusername2
anon_upload_enable=NO
anon_mkdir_write_enable=NO
7.修改主配置文件.
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/vusers_dir
8.啟用vsftpd服務
service vsftpd start
9.將vsftpd加入開機啟動
chkconfig vsftpd on