CentOS7 安装vsftp配置虚拟用户
yum -y install vsftpd* pam* db4*
创建虚拟用户:
1.在/etc/vsftpd/创建 ftp 软件的认证配置文件(虚拟用户的认证文件)
vim /etc/vsftpd/vsftpd.user
奇数行:用户名
偶数行:密码
2.将产生的认证文件转化为数据库文件 ,(后缀一定要是*.db)
cd /etc/vsftpd/
db_load -T -t hash -f vsftpd.user vsftpd.db
# 将产生的*.db 文件修改权限,保证安全
chmod 600 vsftpd.db
3.为虚拟用户创建映射用户并修改家目录权限为 704
useradd -d /var/ftproot -s /sbin/nologin virtual
chmod 704 /var/ftproot/
4.修改 ftp 的认证机制为虚拟用户认证,各个软件服务的认证机制配置文件
cd /etc/pam.d/
cp -a vsftpd vsftpd.pam
# 用默认使用的认证配置文件生成新的认证配置文件,修改 vsftpd.pam 文件,删除所有,添加自定义的两行
cat << EOF > vsftpd.pam
#指定自定义生成的数据库文件
auth required pam_userdb.so db=/etc/vsftpd/vsftpd
#借助 pam_userdb.so 函数文件帮助 vsftpd 软件解读认证虚拟用户的登录
account required pam_userdb.so db=/etc/vsftpd/vsftpd
EOF
5.修改/etc/vsftpd/vsftpd.conf 配置文件
修改:
anonymous_enable=NO # 关闭匿名用户登录
pam_service_name=vsftpd.pam # 将认证配置文件指向自己创建的
添加:
guest_enable=YES # 开启虚拟用户
guest_username=virtual # 指定虚拟用户的映射用户为 virtual
user_config_dir=/etc/vsftpd/dir # 每一个虚拟用户的配置文件保存路径
anon_umask=022 # 添加 umask 值
allow_writeable_chroot=YES # 新版必须添加否则取消目录w权限,从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报错
注:要保证虚拟用户上传的文件能下载,必须在配置文件中添加 umask 值,让上传的文件其他人位置有 r 权限,其虚拟用户的访问时靠匿名用户权限生效。配置文件不要有其他字符。
6.为虚拟用户创建配置文件(/etc/vsftpd/dir/)
虚拟用户的配置文件文件名和用户名同名即可(如 a1用户的配置文件名为a1)
a、a1 用户的配置文件
anon_upload_enable=YES # 开启上传
b、a2 用户的配置文件
anon_mkdir_write_enable=YES # 允许创建目录
c、a3 用户的配置文件
anon_upload_enable=YES # 开启上传
anon_other_write_enable=YES # 开放其他人写入权限,操作其他文件
d、a4 用户的配置文件
local_root=/var/ftproot/a4 # 配置a4用户的根目录
anon_upload_enable=YES # 开启上传
anon_mkdir_write_enable=YES # 允许创建目录
anon_other_write_enable=YES # 开放其他人写入权限,操作其他文件
全局配置项字段详解
listen=NO # 是否以独立运行的方式监听服务
listen_address=IP # 设置监听f t p服务的ip地址,默认监听所有IP地址
listen_port=21 # 设置监听ftp服务的端口号
write_enable=YES # 开启写入权限
download_enable=YES # 允许下载权限
dirmessage_enable=YES # 用户切换进入目录时显示 “.message”文件(如果已存在)的内容
xferlog_enable=YES # 启用xferlog日志,默认记录到 /var/log/xferlog
xferlog_std_format=YES # ftp日志格式
connect_from_port_20=YES # 数据连接端口号默认20
pasv_enable=NO # 禁止被动模式连接;默认允许被动模式连接
pasv_max_port=21600 # 起始端口号
pasv_min_port=21700 # 结束端口号
pam_service_name=vsftpd # 开启PAM验证
userlist_enable=YES # 允许user_list列表用户登录ftp
userlist_deny=YES # 不允许user_list列表用户登录ftp
max_clients=0 # 限制多个客户端同时连接(0为无限制)
max_per_ip=0 # 允许相同IP地址访问ftp连接次数(0为无限制)
tcp_wrappers=YES # ftp的访问控制列表提升安全性使用
匿名配置项字段详解
anonymous_enable=YES # 是否允许匿名访问;
anon_umask=022 # 设置匿名用户所上传文件的默认权限掩码值(反掩码);
anon_root=/var/ftp # 设置匿名用户的FTP根目录;
anon_upload_enable=YES # 是否允许匿名用户上传文件;
anon_mkdir_write_enable=YES # 是否允许匿名用户由创建目录的写入权限;
anon_other_write_enable=YES # 是否允许匿名用户有其他写入权限,如对文件改名、覆盖及删除文件等
本地用户配置项
local_enable=YES # 是否允许本地用户访问;
local_umask=022 # 设置本地用户所上传文件的默认权限掩码值(反掩码);
local_root=/var/ftp # 设置本地用户的FTP根目录(默认为用户的宿主目录);
chroot_local_user=YES # 是否将FTP本地用户禁锢在宿主目录中;
allow_writeable_chroot=YES # 允许被限制用户的主目录具有写权限;
local_max_rate=0 # 限制本地用户的最大传输速率(0为无限制),单位为字节/秒(B/s)
虚拟用户配置项
guest_username=virtual # 指定映射的系统用户名称;
guest_enable=YES # 是否启用虚拟用户;
allow_writeable_chroot=YES # 允许被限制用户的主目录具有写权限(此项必须写入,否则可能会报错)
anon_world_readable_only=NO # 允许用户下载目录内容
anon_other_write_enable=YES # 允许匿名用户有其他写入权限,如重命名、覆盖及删除文件等;
user_config_dir=/etc/vsftpd/dir # 指定虚拟用户独立的配置文件目录;
原文地址:https://www.cnblogs.com/outsrkem/p/12643946.html