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