案例:
以工坊单位为基础,每个工坊设立一个单独共享资源目录,创建FTP虚拟用户名为zhang1-6;权限限制只有下载没有上传的权限,限制最大带宽60KB;zhang1-6用户的家目录名称对应6个不同的工坊名词缩写;新建一块20G存储磁盘挂载到nfs的共享目录上,每周一晚上21点要求备份一次nfs的共享数据,到/backup/weekbackup目录下, 存放在以日期命名的目录;每14天清除上上一周的备份数据。
实施:
IP | 主机名 | 备注 |
---|---|---|
192.168.117.14 | ss | FTP服务器 |
192.168.117.15 | ee | NFS服务器 |
1.为ee主机增加一块20G硬盘,创建/sharedir目录,并将新磁盘挂载到/sharedir目录下
2.两台主机都分别安装并启动nfs服务
[root@ee ~]# yum install -y nfs-utils rpcbind
[root@ee ~]# systemctl start nfs
[root@ee ~]# systemctl enable nfs
[root@ee ~]# systemctl start rpcbind
[root@ee ~]# systemctl enable rpcbind
[root@ss ~]# yum install -y nfs-utils rpcbind
[root@ss ~]# systemctl start nfs
[root@ss ~]# systemctl enable nfs
[root@ss ~]# systemctl start rpcbind
[root@ss ~]# systemctl enable rpcbind
3.ee主机创建共享目录并赋予权限
[root@ee ~]# mkdir /sharedir/yyw
[root@ee ~]# mkdir /sharedir/dsj
[root@ee ~]# mkdir /sharedir/xcx
[root@ee ~]# mkdir /sharedir/yx
[root@ee ~]# mkdir /sharedir/az
[root@ee ~]# mkdir /sharedir/jw
[root@ee ~]# chown -R nfsnobody:nfsnobody /sharedir/
[root@ee ~]# chmod -R 755 /sharedir/
4.ee主机配置nfs并重载配置
[root@ee ~]# vim /etc/exports
/sharedir/ *(rw)
[root@ee ~]# systemctl reload nfs
5.ss创建/nfsdir目录,并将ee主机的/sharedir挂载至ss主机的/nfsdir目录下
[root@ss ~]# mkdir /ftpdir
[root@ss ~]# mount -t nfs 192.168.117.15:/sharedir /ftpdir
[root@ss ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 44G 1.3G 43G 3% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 2.0G 137M 1.9G 7% /boot
tmpfs 378M 0 378M 0% /run/user/0
192.168.117.15:/sharedir 20G 32M 20G 1% /ftpdir
6.ss主机安装并启动vsftpd服务及lftp工具
[root@ss ~]# yum install -y vsftpd lftp
[root@ss ~]# systemctl start vsftpd
[root@ss ~]# systemctl enable vsftpd
7.ss主机创建虚拟用户账号文件(奇数行为用户名,偶数行为密码),创建zhang1-6虚拟用户
[root@ss ~]# vim /etc/vsftpd/user.conf
zhang1
123456
zhang2
123456
zhang3
123456
zhang4
123456
zhang5
123456
zhang6
123456
8.ss主机创建数据库文件并赋予权限
[root@ss ~]# db_load -T -t hash -f /etc/vsftpd/user.conf /etc/vsftpd/user.db
[root@ss ~]# chmod 600 /etc/vsftpd/user.*
9.ss主机清空pam认证文件,添加两行配置
[root@ss ~]# vim /etc/pam.d/vsftpd
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/user
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/user
10.ss主机修改ftp配置文件
[root@ss ~]# vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES //限制用户所在的主目录
guest_enable=YES //启用虚拟用户
allow_writeable_chroot=YES //允许写入用户主目录
user_config_dir=/etc/vsftpd/vsftpd_user_conf //虚拟用户配置文件目录,配置了此项后,要为每一个虚拟用户都建立配置文件
anon_max_rate=60000 //限制用户最大带宽60KB
11.ss主机建立虚拟用户的配置文件,配置完成后重新加载服务
[root@ss ~]# mkdir /etc/vsftpd/vsftpd_user_conf
[root@ss ~]# cd /etc/vsftpd/vsftpd_user_conf/
[root@ss vsftpd_user_conf]# vim zhang1 //以zhang1用户为例,分别创建6个用户的配置文件
local_root=/ftpdir/yyw
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=NO
[root@ss ~]# systemctl restart vsftpd
10.ss主机创建大小为200M的文件用于测试限制带宽,以zhang1用户,/ftpdir/yyw目录为例
[root@ss ~]# dd if=/dev/zero of=/ftpdir/yyw/file1 bs=1M count=200
11.使用lftp工具,通过zhang1账号登陆进行测试,带宽不超过60KB,权限限制为只能下载不能上传,符合需求
12.ee主机编写备份脚本
[root@ee ~]# vim /usr/local/sbin/backup.sh
#!/bin/bash
bakfile=/sharedir/*
bak2dir=/backup/weekbackup/`date +"%F"`
predir=/backup/weekbackup/`date -d "-2 weeks" +"%F"`
baklog=/backup/backup_log.txt
if [ -d $bak2dir ]; then
echo "`date +'%F'`:$bak2dir is exist." >> $baklog
else
mkdir -p $bak2dir
cp -rf $bakfile $bak2dir
rm -rf $predir
echo "`date +'%F'`:backup to $bak2dir is successful." >> $baklog
fi
13.ee主机设置定时任务:每周一晚上21点执行一次脚本
[root@ee ~]# crontab -e
* 21 * * 1 /bin/bash /usr/local/sbin/backup.sh