Linux centos8 ftp服务虚拟用户配置

ftp虚拟用户配置,方便对用户的管理

环境配置

配置ip地址

nmcli connection up ens160 
nmcli connection modify ens160 ipv4.addresses 10.10.100.1/24

安装ftp服务

yum -y install vsftpd

配置防火墙

关闭防火墙

systemctl stop firewalld.service

临时放行防火墙

firewall-cmd --add-service=ftp

永久放行防火墙 

firewall-cmd --add-service=ftp --permanent

临时关闭selinux

创建用户

创建一个系统账号用于映射虚拟账号,把家目录设置为/var/ftp/virftp,不让用户登录系统

useradd -d /var/ftp/virftp -s /sbin/nologin ftpuser

更改家目录权限为755,让虚拟用户顺利访问

chmod 755 /var/ftp/virftp/

改一下系统默认的shell,让nologin这个shell也能登录系统

echo /sbin/nologin >> /etc/shells

创建一个文件

创建一个文件用于存放虚拟用户的账号密码,把他转换成db数据库文件,目录可以自己定

奇数行用于存放账号,偶数行用与存放密码

转换成db数据库文件,转换完删除明文的txt文件,文件名可以自定义

-T 参数表示非db文件转换成db文件

-t 参数表示用hash算法加密

-f 参数表示数据源文件位置

db_load -T -t hash -f ftplo.txt ftplo.db

rm -f ftplo.txt

给文件设置赋予600权限,只有root用户可以读写

配置pam模块 

pam模块存放在 /etc/pam.d/目录下,pam是可热插拔式认证模块,是一种高效,灵活,便利的用户级别认证方式

新建一个名为vsftpd.vu的pam模块        #名字可以自定义        

详细介绍可以参考这里

auth    required        pam_userdb.so   db=/etc/vsftpd/ftplo
account required     pam_userdb.so   db=/etc/vsftpd/ftplo
第一列auth 对用户进行身份验证;account 对账号的属性进行检查,如是否可以登录

第二列 required 必须满足所有条件,一个条件不满足都不过,相当于一票否决

第三列 pam_userdb.so 是调用系统的模块,路径在/lib64/security目录下

第四列 db=/etc/vsftpd/ftplo 是模块参数,指定要用的数据库文件

ftp服务配置

ftp主配置文件与匿名相似,虚拟用户类似匿名用户

anonymous_enable=NO                //不允许匿名用户访问
local_enable=YES                        //允许本地用户访问,此项不要关闭,因为虚拟用户是映射在系统用户上的
write_enable=YES                        //允许用户写入
chroot_local_user=YES                //将所有用户禁锢在一个目录,此项应配置allow_writeable_chroot使用
guest_enable=YES                        //启用虚拟账户
guest_username=ftpuser                //虚拟账户映射的系统账户
user_config_dir=/etc/vsftpd/vconf        //虚拟账户的配置文件路径
pam_service_name=vsftpd.vu               //使用的pam模块

allow_writeable_chroot=YES                //允许有写入权限的账户也能访问ftp服务器

创建目录及配置权限

让张三用户的目录在/data/www/下,李四的目录在/data/html目录,并且不能切换目录,都可以写入

先创建目录

mkdir -p /data/www
mkdir -p /data/html

www目录创建zhangsan的txt文件,html创建lisi的txt文件

echo "hello" > /data/www/zhangsan.txt

echo "hello" > /data/html/lisi.txt

分别配置张三和李四虚拟用户的文件

创建管理虚拟用户配置文件的目录

mkdir /etc/vsftpd/vconf

创建zhangsan和lisi的文件,配置命令跟匿名用户的是一样的

张三

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/www

李四

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/html

给ftpuser设置一下权限

setfacl -m u:ftpuser:wrx /data/www/

setfacl -m u:ftpuser:wrx /data/html/

重启一下ftp服务

systemctl restart vsftpd

测试

张三

李四

用系统用户测试一下能不能登录

登录失败,因为改了模块,改回默认的模块系统用户就能登录,虚拟用户就不能登录了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值