一、下载安装包
通过yum一次性下载好所有的依赖和 vsftpd
yum install -y vim net-tools yum install -y vsftpd* pam* db4*
二、配置介绍
anonymous_enable=YES #是否启用匿名用户
no_anon_password=YES #匿名用户login时不询问口令
anon_upload_enable=(yes/no); #控制匿名用户对文件(非目录)上传权限
anon_world_readable_only=(yes/no); #控制匿名用户对文件的下载权限
anon_mkdir_write_enable=(yes/no); #控制匿名用户对文件夹的创建权限
anon_other_write_enable=(yes/no); #控制匿名用户对文件和文件夹的删除和重命名
write_enable=YES #全局设置,是否容许写入(无论是匿名用户还是本地用户,若要启用上传权限的话,就要开启它)
anon_root=(none) #匿名用户主目录
anon_max_rate=(0) #匿名用户速度限制
anon_umask=(077) #匿名用户上传文件时有掩码(若想让匿名用户上传的文件能直接被匿名下载,就这设置这里为073)
chown_uploads=YES #所有匿名上传的文件的所属用户将会被更改成chown_username
chown_username=whoever #匿名上传文件所属用户名
本地用户权限控制:
write_enable=YES #可以上传(全局控制) 删除,重命名
local_umask=022 #本地用户上传文件的umask
userlist_enable=YES #限制了/etc/vsftpd/user_list文件里的用户不能访问
local_root #设置一个本地用户登录后进入到的目录
user_config_dir #设置用户的单独配置文件所在目录,用哪个帐户登陆就用哪个账号名称在目录下新建文件,实现不同用户不同权限
download_enable #限制用户的下载权限
chroot_local_user=YES/NO #是否禁止用户离开设置的根目录
chroot_list_enable=YES #如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录
chroot_list_file=/etc/vsftpd/chroot_list #指出被锁定/允许 在自家目录中的用户的列
三、配置配置文件
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 anon_upload_enable=YES dirmessage_enable=YES xferlog_enable=YES port_enable=YES connect_from_port_20=YES listen=NO listen_ipv6=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list allow_writeable_chroot=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES local_root=/home/ftpuser
四、设置权限测试
#创建一个测试用户,不允许登录,并且赋权(目录权限)useradd -M -d /home/ftps -s /sbin/nologin ftp_user echo "123456"|passwd --stdin ftp_user mkdir -p /home/ftps mkdir -p /home/ftps/update chown ftp_user:ftp_user /home/ftps/ echo "ftp_user" >> /etc/vsftpd/chroot_list chmod 755 /home/ftps chmod -R 555 /home/ftps/*
从vsftpd 2.3.0版本开始vsftpd默认会检查用户的shell,如果用户的shell在/etc/shells没有记录,则无法登陆ftpcat /etc/shells
/bin/sh /bin/bash /usr/bin/sh /usr/bin/bashgrep ftp_user /etc/passwd
ftp_user:x:1000:1000::/data/ftp:/sbin/nologinecho '/sbin/nologin' >> /etc/shells service vsftpd restart
这样 我们就限定了 ftpuser 用户只能访问我们限定的主目录下。且禁用了匿名用户访问,感兴趣的可以自己设计配置文件,看看不同效果