nfs与vsftpd案例结合

IP 主机名 备注
172.16.121.123 nfs 关闭防火墙安装nfs和vsftpd服务
172.16.121.124 nfs-bask 关闭防火墙测试服务

案例目标

在这里插入图片描述
这里我没用zhang1-6而是直接用名称缩写
使用vsftpd搭建FTP服务
CentO S或者Red Hat Linux上有自带的FTP软件vsftpd,默认并没有安装,需要用yum安装,安装后 不用配置,启动后便可以使用
1.安装 vsftpd
使用yum工具安装vsftpd和nfs包,如下所示:

yum install -y vsftpd db4-utils nfs-utils

这里安装了两个软件包,同时也会把依赖的包安装上。其中db4-utils包用来生成密码库文件。
2.建立账号
vsftpd默认可以支持使用系统账号体系登录,但那样不太安全,所以建议你使用虚拟账号体 系登录。
首先建立与虚拟账号相关联的系统账号,如下所示:

useradd virftp -s /sbin/nologin

接着建立与虚拟账户相关的文件,如下所示:

[root@nfs ~]# cat /etc/vsftpd/vsftpd_login
wjh
123456
tg
123456
lsk
123456
zyh
123456
sqq
123456
gqd
123456

需要说明的是,该文件的奇数行为用户名,偶数行为上一行的用户密码。
然后更改该文件的权限,提升安全级别,如下所示:

chmod 600 /etc/vsftpd/vsftpd_login

vsfptd使用的密码文件不是明文的,需要生成对应的库文件,如下所示:

db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

最后建立与虚拟账号相关的目录以及配置文件,如下所示:

mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf

3.创建和用户对应的配置文件
用户的配置文件是单独存在的,每一个用户都有一个自己的配置文件,文件名和用户名一致,如 下所示:
[root@nfs ~]# cat /etc/vsftpd/vsftpd_user_conf/wjh
local_root=/home/virftp/wjh
anonymous_enable=NO
write_enable=NO
anon_other_write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
local_max_rate=600000
其他5个也是这样只要更改一下local_root=/home/virftp/wjh名称就行
创建其他账号的步骤和wjh一样,如下所示

mkdir /home/virftp/wjh
touch /home/virftp/wjh/aminglinux.txt
chown -R virftp:virftp /home/virftp

vim /etc/pam.d/vsftpd //在最开头添加两行

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

4.修改全局配置文件/etc/vsftpd/vsftpd.conf
修改用户的配置文件后还不可用,还需要修改vsftpd的一些全局配置文件。
首先编辑vsftpd.conf文件,如下所示:

vim /etc/vsftpd/vsftpd.conf

修改如下内容:

将anonymous_enable=YES 改为 anonymous_enable=NO;
将#anon_upload_enable=YES 改为 anon_upload_enable=NO;
将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO

再增加如下内容:

chroot_local_user=YES
guest_enable=YES
guest_username=virftp 
virtual_use_local_privs=YES 
user_config_dir=/etc/vsftpd/vsftpd_user_conf 
allow_writeable_chroot=YES

然后启动 vsftpd服务,执行如下命令:

systemctl start vsftpd

nfs基础配置
修改配置文件添加共享目录
fdisk /dev/sdb
先在这里创建/dev/sdb1给他分配20g
在格式化

mkfs.ext4 /dev/sdb1

然后挂载到nfs下

mount /dev/sdb1 /nfs/

在把共享目录存放在挂载目录下

[root@nfs ~]# cat /etc/exports
/tmp    *(rw,no_root_squash)
/data/wjh       172.16.121.0/24(rw)
/data/test      172.16.121.123(no_root_squash)
/data/linux     172.16.121.124(rw,sync,all_squash,anonuid=1000,anongid=1000)
/nfs/lost+found/wjh     *(rw)
/nfs/lost+found/tg      *(rw)
/nfs/lost+found/lsk     *(rw)
/nfs/lost+found/zyh     *(rw)
/nfs/lost+found/sqq     *(rw)
/nfs/lost+found/gqd     *(rw)

rw: 读写
ro : 只读
sync: 同步模式,同时将数据写入到内存与硬盘中,较慢但安全
async: 非同步模式,优先将数据保存到内存,然后再写入硬盘,较快但不安全
root_squash: 当NFS客户端以root管理员访问时,权限与普通用户一样
no_root_squash: 当NFS客户端以root管理员访问时,权限最高
all_squash: 无论NFS客户端使用什么账户访问,权限都是普通用户
anonuid/anongid: 和root_squash以及all_squash一同使用,用于指定使用NFS的用户被限定后的uid和gid,但需要自己本机存在相应的uid和gid
启动nfs

systemctl start nfs

nfs-bask下测试是否成功

[root@nfs-bask ~]# showmount -e 172.16.121.123
Export list for 172.16.121.123:
/nfs/lost+found/gqd *
/nfs/lost+found/sqq *
/nfs/lost+found/zyh *
/nfs/lost+found/lsk *
/nfs/lost+found/tg  *
/nfs/lost+found/wjh *
/tmp                *
/data/wjh           172.16.121.0/24
/data/linux         172.16.121.124
/data/test          172.16.121.123

测试文件上传和下载
在这里插入图片描述

数据备份脚本编写
[root@nfs ~]# cat wjh.sh

#! /bin/bash

a=`date +%Y-%m-%d`
b=/backup/weekbackup  

if [ ! -d $b ];then                        //判定是否存在b不存在就安装
        mkdir -p $b
        cp -rvf /nfs/lost+found/ $b/$a   //备份文件到指定目录b
fi
if [ -d $b/$a ];then 
        echo  $a sucess >> /var/log/wjh.log
        find /backup -mtime +14 -name "*.*" -exec rm -rf {} \;                //设定每14天删除一次备用数据
else
        echo $a error >> /var/log/wjh.log
fi

设定每周晚上9点备份数据执行脚本

[root@nfs ~]# crontab -l
*/5 * * * * echo "1" >> /opt/test
* 21 * * 1      /root/wjh.sh
 

测试结果

[root@nfs ~]# sh wjh.sh 
‘/nfs/lost+found/’ -> ‘/backup/weekbackup/2020-03-11’

可以进入目录查看是否创成功

发布了25 篇原创文章 · 获赞 0 · 访问量 679

猜你喜欢

转载自blog.csdn.net/miss_miss6/article/details/104809051
nfs
今日推荐