1.背景
由于国家大力推行信创软件,且CentOS 7也在6月底退役,使得各大企业纷纷考虑下一步的操作系统选型。
你是否也在准备更换新的系统选型呢?如果你已经在考虑了,那么以下哪些是你的选择。
从中国市场占有率来看,华为的openEuler当之无愧,所以也在考虑做CentOS的转变。所以在测试过程中,发现一个ftp配置的问题,记录在此。
2.问题复现
在之前也分享过在CentOS下基于虚拟用户搭建ftp的方法,地址如下:
按照此方法后,在使用虚拟用户访问时报错:
vsftpd[91604]: pam_userdb(vsftpd:auth): user_lookup: could not open database `/etc/vsftpd/virtusers.db': No such file or directory
/etc/pam.d/vsftpd中db=后面无论是加上.db后缀还是不加,问题都是如此,故障必现。
3.安装ftp
3.1 关闭selinux
检查selinux状态,如果为Enforcing的话,需要关闭selinux软件。
selinux
关闭selinux软件:
# 永久关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
# 临时关闭selinux
setenforce 0
执行完成后,重启操作系统。
3.2 安装vsftp
开始安装vsftpd软件,执行命令:
yum -y install vsftpd
备份系统默认配置:
cd /etc/vsftpd/
mv vsftpd.conf vsftpd.src.conf
采用主动模式配置ftp服务器,如果需要修改为被动模式,则将pasv_enable=YES,并指定pasv_min_port和pasv_max_port的端口范围。
vi vsftpd.conf
将下面配置粘贴至vsftpd文件内。
listen=YES
anonymous_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
allow_writeable_chroot=YES
guest_enable=yes
guest_username=vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf
pam_service_name=vsftpd
local_enable=YES
pasv_enable=NO
# 被动模式,占用5090-6000端口
#listen_port=52221
#pasv_min_port=5090
#pasv_max_port=6000
#pasv_address=49.235.71.50
3.3 创建账户
创建一个用户ftpuser,设置为不可登录操作系统。
useradd ftpuser -s /bin/false
修改配置:
vim /etc/pam.d/vsftpd
注释掉多余的配置,只留下以下两行。
auth required pam_userdb.so db=/etc/vsftpd/login
account required pam_userdb.so db=/etc/vsftpd/login
设置用登录用户和密码,我这里以ftpuser为例,密码123456
gdbmtool /etc/vsftpd/login.pag store ftpuser 123456
3.4 限制用户切换主目录
vim /etc/vsftpd/chroot_list
ftpuser
3.5 生成用户配置文件夹
mkdir /etc/vsftpd/vsftpd_user_conf
3.6按用户名编写配置内容
mkdir -p /home/vsftpd/ftpuser
chown -R vsftpd:vsftpd /home/vsftpd/ftpuser
注意这里创建的文件名要和你的用户一致
vim /etc/vsftpd/vsftpd_user_conf/user1
权限:仅仅下载
anon_world_readable_only=NO
local_root=/home/vsftpd/ftpuser
上传、下载权限,不能删除、不能重命名
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
local_root=/home/vsftpd/ftpuser
全部权限:可上传、下载、删除和改名
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vsftpd/ftpuser
3.7 重启vsftpd服务
systemctl restart vsftpd
systemctl enable vsftpd
4.验证ftp
使用预先设置的账号,测试数据上传,成功。可以切换不同的权限验证。
评论区