5.8 Linux 服务实战

一、项目概述

项目名称:web 网站

项目时间:2022.7.18-2022.7.24

项目需求:

  • ① 客户端使用kickstart部署4台虚拟机(centos7.9),所有服务器IP都为静态IP。
  • ② 客户端使用XShell的密钥登陆跳板机
  • ③ 所有后端服务器全部通过跳板机来控制配置,使用秘钥登录,且不允许使用root登陆。
  • ④ 所有SSH服务端口号为2222
  • ⑤ 部署2台apache服务器,分别搭建2个web站点,www.test.com,www.test.cn, 相同的站点提供一样的内容,使用rsync做实时同步。
  • ⑥ 在web服务器上搭建FTP服务器,用来上传网站页面
  • ⑦ 搭建DNS服务器,解析www.test.com和www.test.cn
  • ⑧ 在dns服务器上搭建nfs服务器,在apache1挂载nfs/data目录,定时把你的web目录打包压缩放到/data目录下,删除/date目录10天以前的压缩包。

二、项目拓扑

三、环境规划

主机名称

主机IP

主机提供的服务

ZLM_Client

192.168.137.200

Kickstart,dhcp,tftp,ftp,ssh

ZLM_TB

192.168.137.201

SSH,vstftp,ftp

ZLM_DNS

192.168.137.202

SSH,DNS,NFS,定时任务

ZLM_Web01

192.168.137.203

SSH,Apache,FTP,Rsync,DNS,NFS

ZLM_Web02

192.168.137.204

SSH,Apache,FTP,Rsync,DNS

四、实现流程

1、Client 主机
a. 前期准备

① 更改主机名称

vim /etc/hostname
ZLM_Client

② 关闭防火墙和selinux

# 关闭防火墙
systemctl stop firewalld
systemctl diable firewalld

③ 关闭Vmware中dhcp功能

④ 配置本地Yum源

vim /etc/yum.repos.d/centos.repo [development]
name=centos_7
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0# 清空本地yum缓存
yum clean all
# 加载本地仓库
yum repolist
b. 安装 dhcp 服务

① 安装配置 dhcp服务

# 安装dhcp
yum install -y dhcp# 创建dhcp配置文件(赋值)
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf# 编辑DHCP配置文件
vim /etc/dhcp/dhcpd.conf
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
option domain-name "example.org";
option domain-name-servers 114.114.114.114,8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.137.0 netmask 255.255.255.0 {# 配置起始IP地址和结束IP地址range 192.168.137.201 192.168.137.210;# 为客户端指定默认的网关option routers 192.168.137.2;# 指定tftp服务器ip地址next-server 192.168.137.200;# 指定要从tftp服务器上下载的启动文件filename "pxelinux.0";	
}

② 启动服务

# 启动服务并设置开机自启动
systemctl start dhcpd
systemctl enable dhcpd# 查看端口
netstat -antup | grep dhcpd

c. 安装 tftp 服务

① 安装配置 tftp 服务

# 安装 tftp xinetd 服务
yum install -y tftp-server xinetd# 编辑配置文件,将 disable	修改为 no
vim /etc/xinetd.d/tftp# 启动服务并设置开机自启动
systemctl start xinetd
systemctl enable xinetd# 查看tftp端口
netstat -antup | grep 69

d. 安装 ftp 服务
# 安装vsftpd
yum install -y vsftpd# 启动vsftpd服务
systemctl start vsftpd
systemctl enable vsftpd# 镜像文件挂载至 /var/ftp/pub
mount /dev/sr0 /var/ftp/pub# 查看服务端口
netstat -antup | grep vsftpd

注意:一定要将镜像文件挂载至 /var/ftp/pub,否则找不到镜像文件

e. 安装kickstart 服务

① 安装kickstart syslinux

# 安装kickstart syslinux
yum install -y system-config-kickstart syslinux

② 配置使用PXE启动所需的相关文件

# 将pxelinux.0 赋值到 /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot# 赋值pxe启动文件至 tftpboot中
cp /mnt/cdrom/images/pxeboot/* /var/lib/tftpboot# 赋值镜像配置文件 至 pxelinux.cfg 中
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default# 编辑配置文件
vim /var/lib/tftpboot/pxelinux.cfg/default
# 第一行
default linux
# 第61行
label linuxmenu label ^Install CentOS 7kernel vmlinuz# inst.repo:指定客户端安装操作系统所使用软件包的下载地址# inst.ks:指定kickstart生成的自动应答文件存放地址append	initrd=initrd.img	inst.repo=ftp://192.168.137.5/pub	inst.ks=ftp://192.168.137.5/ks.cfg

③ 生成 ks.cfg 文件

# 安装完毕后xhell重新连接服务器
yum install -y xorg-x11-xauth # 安装语言包,防止出现乱码
yum groupinstall -y "fonts" # 启动服务,生成ks.cfg文件
system-config-kickstart

注意:生成应答文件之前,电脑先要安装XManager

验证:默认

防火墙配置:关闭防火墙、关闭selinux

显示配置:取消图形环境

软件包选择:系统 -> 基本安装

预安装脚本:无

安装后要执行的脚本

⑫ 点击file -> save -> 下图配置 -> save

f. 创建新的虚拟机
  • 将内存更改为2G
  • 先取消绑定光盘
  • 仅主机模式,取消dhcp
  • 进入无人值守安装,安装完成挂载镜像,重新启动虚拟机。

g. ssh 服务配置

① 生成密钥对,将公钥上传至TB主机,以后使用秘钥登录TB主机

# Client客户机生成密钥对
ssh-keygen -t rsa# 上传公钥到TB主机
ssh-copy-id -i root@192.168.137.201

2、TB 主机

注意:启动主机时虚拟机需要连接镜像文件

a. 前期准备

① 主机名称为ZLM_TB

vim /etc/hostname
ZLM_TB

② 更改网卡配置

③ 创建登录后端机的用户

# 创建用户
useradd tb_user
# 设置用户密码
echo "tb_user:123456" | chpasswd# 给tb_user提权
vim /etc/sudoers
tb_user ALL(ALL)
b. 配置 ssh 服务

① 修改 sshd 访问控制配置文件:只允许ZLM_Client登录跳板机

# 修改/etc/hosts.deny配置文件,拒绝所有用户
vim /etc/hosts.deny
sshd:all:deny
# 修改/etc/hosts.allow配置文件,sshd服务允许ZLM_Client主机访问
vim /etc/hosts.allow
sshd:192.168.137.200:allow

② 更改sshd服务的端口为2222,并且拒绝使用root用户登录(未做)

③ TB主机生成秘钥对,并上传至DNS主机、Web01主机、Web02主机

c. 配置 ftp 服务
# 安装 vsftp
yum intall -y vsftpd# 启动服务
systemctl start vsftpd
systemctl enable vsftpd# 将httpd复制到ftp目录
cp /root/httpd-2.4.54.tar.gz /var/ftp/pub
3、DNS 主机
a. 前期准备

注意:启动主机时虚拟机需要连接镜像文件

① 主机名称为ZLM_DNS

vim /etc/hostname
ZLM_DNS

② 更改网卡配置

③ 创建tb_user用户 只允许TB主机使用此用户登录DNS主机

# 创建用户
useradd tb_user
# 设置密码
echo "tb_user:123456" | chpasswd# 给此用户提权
vim /etc/sudoers
tb_user ALL=(ALL)	NOPASSWD:ALL
b. 配置 sshd 服务

① 设置访问控制列表,只允许TB主机登录DNS主机

# 拒绝所有主机使用sshd访问DNS主机
vim /etc/hosts.deny
sshd:all:deny
# 允许TB主机使用sshd访问DNS主机
vim /etc/hosts.allow
sshd:192.168.137.201:allow

② 更改sshd服务的端口为2222,并且拒绝使用root用户登录

vim /etc/ssh/sshd_config
port=2222
DenyUsers root

c. 配置 DNS 服务

① 安装服务

sudo yum install -y bind bind-chroot bind-utils

② 修改配置文件

vim /etc/named.confoptions {listen-on port 53 { any; };listen-on-v6 port 53 { any; };directory 	"/var/named";dump-file 	"/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";recursing-file  "/var/named/data/named.recursing";secroots-file   "/var/named/data/named.secroots";allow-query     { any; };forwards	{ 114.114.114.114; 8.8.8.8 };recursion yes;dnssec-enable yes;dnssec-validation yes;/* Path to ISC DLV key */bindkeys-file "/etc/named.root.key";managed-keys-directory "/var/named/dynamic";pid-file "/run/named/named.pid";session-keyfile "/run/named/session.key";
};zone "test.com" IN {# 类型为主区域type master;# 区域数据文件名file "test.com.zone";
};
zone "test.cn" IN {type master;file "test.cn.zone";
};# 反向 192.168.137.0/24区域
zone "137.168.192.in-addr.arpa" IN {type master;file "192.168.137.arpa";
};# 检查配置文件语法是否正确
sudo named-checkconf /etc/named.conf

③ 配置区域正向解析文件

# 配置 test.com 区域正向文件
cp /var/named.localhost /var/named/test.com.zone
$TTL 1D
@	IN SOA	test.com. test.gmail.com. (0	; serial1D	; refresh1H	; retry1W	; expire3H )	; minimumIN	NS	ns
ns	IN	A	192.168.137.202
www	IN 	A	192.168.137.203
www	IN	A	192.168.137.204# 配置 test.cn 区域正向文件
cp /var/named.localhost /var/named/test.cn.zone
$TTL 1D
@	IN SOA	test.cn. test.gmail.com. (0	; serial1D	; refresh1H	; retry1W	; expire3H )	; minimumIN	NS	ns
ns	IN	A	192.168.137.202
www	IN 	A	192.168.137.203
www	IN	A	192.168.137.204

④ 配置 区域反向解析文件

cp /var/named.localhost /var/named/192.168.137.arpa
$TTL 1D
@	IN SOA	test.com. hualulemon.gmail.com. (0	; serial1D	; refresh1H	; retry1W	; expire3H )	; minimumIN	NS	test.com.
203	IN	PTR	www.test.com.
203	IN 	PTR	www.test.cn.
204	IN	PTR	www.test.com.
204	IN	PTR	www.test.cn.

⑤ 启动服务设置开机自启动

systemctl restart named
systemctl enable named

⑥ 测试DNS解析

d. 配置 NFS 服务

① 安装 NFS 服务

# 服务端安装服务
sudo yum install -y nfs-utils rpcbind# 启动服务
sudo systemctl start rpcbind
sudo systemctl enable rpcbind
sudo systemctl start nfs
sudo systemctl enable nfs

② 创建共享目录并设置权限

sudo mkdir /data
sudo chmod a+x /data
sudo chown -R tb_user:tb_user /data

③ 编辑 nfs 主配置文件

sudo vim /etc/exports/opt/data	192.168.137.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

④ 重启服务

sudo systemctl reload nfs# 查看 NFS 服务器共享目录
sudo showmount -e localhost

4、WEB01 主机

注意:启动主机时虚拟机需要连接镜像文件

a. 前期准备

① 主机名称为ZLM_Web01

vim /etc/hostname
ZLM_Web01

② 更改网卡配置

③ 创建tb_user用户 只允许TB主机使用此用户登录DNS主机

# 创建用户
useradd tb_user
# 设置密码
echo "tb_user:123456" | chpasswd# 给此用户提权
vim /etc/sudoers
tb_user ALL=(ALL)	NOPASSWD:ALL
b. 配置 sshd 服务

① 设置访问控制列表,只允许TB主机登录DNS主机

# 拒绝所有主机使用sshd访问DNS主机
vim /etc/hosts.deny
sshd:all:deny
# 允许TB主机使用sshd访问DNS主机
vim /etc/hosts.allow
sshd:192.168.137.201:allow

② 更改sshd服务的端口为2222,并且拒绝使用root用户登录

vim /etc/ssh/sshd_config
port=2222
DenyUsers root

c. ftp 下载软件包

① 使用ftp服务从TB主机下载所有的安装包和脚本

# 安装ftp服务
yum install -y ftp# 下载所有文件
wget ftp://192.168.137.201/pub/* --ftp-user=ftp -r
d. 脚本安装apache

① 安装apache

# 使用脚本安装apache
sudo chmod +x apache_install.sh 
sudo ./apache_install.sh 

② 开启虚拟主机功能

# 编辑Apache配置文件
vim /usr/local/apache/conf/httpd.conf# 去掉文件中的这行注释,如果没有此行,手写此行
Include conf/extra/httpd-vhosts.conf

③ 更改虚拟主机配置文件

# 备份配置文件
cp /usr/local/apache/conf/extra/httpd.vhosts.conf /usr/local/apache/conf/extra/httpd.vhosts.conf.bak# 编辑虚拟配置文件
sudo vim /usr/local/apache/conf/extra/httpd.vhosts.conf
<VirtualHost www.test.cn:80>ServerAdmin webmaster@dummy-host.example.comDocumentRoot "/usr/local/apache/htdocs/www/test/com"ServerName www.test.comErrorLog "logs/www/test.com-error_log"CustomLog "logs/www/test.com-access_log" common<Directory htdocs/www/test/com>Require all granted</Directory>
</VirtualHost><VirtualHost www.test.cn:80>ServerAdmin webmaster@dummy-host2.example.comDocumentRoot "/usr/local/apache/htdocs/www/test/cn"ServerName www.test.cnErrorLog "logs/www/test.cn-error_log"CustomLog "logs/www/test.cn-access_log" common<Directory htdocs/www/test/cn>Require all granted</Directory>
</VirtualHost>

④ 创建两个web站点和日志目录

# 创建web站点目录
sudo mkdir -p www/test/{cn,com}
# 创建页面
vim /usr/local/apache/htdocs/www/test/com/index.html
This page is www.test.com
vim /usr/local/apache/htdocs/www/test/cn/index.html
This page is www.test.cn# 创建log目录
sudo mkdir -p /usr/local/apache/logs/www/test/{cn,com}

⑤ 在apache主配置文件中添加服务名称

# 添加服务名称
vim /usr/local/apache/conf/httpd.conf# 添加服务网站ServerName www.test.com:80ServerName www.test.cn:80

⑥ 配置hosts映射文件

vim /etc/hosts
192.168.137.204 www.test.com
192.168.137.204 www.test.cn

⑦ 检测虚拟主机文件语法

httpd -t

⑧ 修改Windows映射文件

C:\Windows\System32\drivers\etc\hosts
192.168.137.204 www.test.com
192.168.137.204 www.test.cn
e. 配置 rsync 备份服务器

① 修改服务配置文件

sudo vim /etc/rsyncd.conf#运行进程的身份
uid = root
# 运行进程的组
gid = root
# 监听ip
address = 192.168.137.203
# 监听端口
port = 873
# 允许同步客户端的IP地址,可以使网段
hosts allow = 192.168.137.0/24
# 锁定家目录
use chroot = yes
# 最大连接数
max connections = 5
# PID文件
pid file = /var/run/rsyncd.pid
# 指定 max connections 参数的锁文件
lock file = /var/run/sync.lock
# 日志文件位置
log file = /var/log/syncd.log
# 客户端登录之后弹出的消息,需要创建
motd file = /etc/rsyncd.motd# 共享模块名称
[www]
# 备份路径
path = /opt/backup
# 描述
comment = backup apache's html
# 设置服务端文件读写权限
read only = false
# 是否允许查看模块信息
list = yes
# 备份的用户和系统用户无关
auth users = tb_user
# 存放用户的密码文件
secrets file = /etc/rsync.passwd

② 创建虚拟用户文件

# 创建文件
sudo vim /etc/rsync.passwd
tb_user:123456# 修改文件权限
sudo chmod 600 /etc/rsync.passwd

③ 创建提示信息文件

echo "Welcome to backup web01" > /etc/rsyncd.motd

④ 启动服务并设置开机自启动

# 启动服务
sudo rsync --daemon --config=/etc/rsyncd.conf# 设置开机自启动
sudo vim /etc/rc.d/rc.local
rsync --daemon --config=/etc/rsyncd.conf

f. 搭建 ftp服务(用户名密码)

① 安装 vsftpd

sudo yum install -y vsftp

② 修改配置文件

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf.bak
sudo vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
# When SELinux is enforcing check for SE bool ftp_home_dir
# 允许本地用户登录
local_enable=YES
# 启用 chroot 锁定本地用户功能
chroot_local_user=YES
# 启用 chroot 锁定本地用户列表功能
chroot_list_enable=YES
# 本地用户列表保存文件目录
chroot_list_file=/etc/vsftpd/chroot_list
# 锁定本地用户ftp根目录,如果不是设置,默认用户ftp根目录为用户家目录
local_root=/var/www/html
# 锁定用户拥有写权限
allow_writeable_chroot=YES
# ftp 用户限制
userlist_enable=YES
userlist_deny=NO

③ 创建ftp交互目录 并设置权限

sudo mkdir -p /var/www/html# 允许tb_user用户操作此目录
sudo setfacl -Rm u:tb_user:rwx /var/www/html

④ 将用户添加到白名单文件

sudo vim /etc/vsftpd/user_list
tb_user
sudo vim /etc/vsftpd/chroot_list
tb_user

⑤ 重启服务并测

systemctl restart vsftpd
systemctl enable vsftpd

g. 配置 DNS 解析文件
sudo vim /etc/resolv.conf
nameserver 192.168.137.202

h. 配置nfs服务

① 安装并启动服务

sudo yum install -y nfs-utils rpcbindsudo systemctl start nfs
sudo systemctl enable nfs

② 挂载并查看目录

sudo mount -t nfs 192.168.137.202:/data /var/www/html
df -h

③ 编写脚本:打包web目录到/data,并删除10前的打包文件(待完善)

#!/bin/bash## 查看是有nfs暴露
#nfs_dir=`echo $(showmount -e 192.168.137.202) | awk -F ":" '{print $2}'`
#
## 查看是否挂载了/data
#is_mounted_nfs=`df -h | grep -v "Filesystem" | awk  '/192.168.137.202/{print $1}'`
#if $nfs_dir == " /data 192.168.137.202/24" && $is_mounted_nfs == "192.168.137.202:/data";then
#	# 删除/data/目录下10天前的文件
#	/bin/find /var/www/html	-type f -mtime +10 -exec rm -rf {}\; 	
#	# 打包apache目录
#	/bin/tar -cvf apache.tar /usr/local/apache/htdocs/www
#else
#	echo -e "\e[031m/data目录没有挂载\e[0m"
#fi# 删除/data/目录下10天前的文件
/bin/find /var/www/html -type f -mtime +10 | rm -rf
# 打包apache目录
/bin/tar -cvf apache.tar /usr/local/apache/htdocs/www
# 将打包文件移动到/data
/bin/mv ./apache.tar	/var/www/html

④ 执行脚本查看备份

sudo ./copy_web_to_data.sh 

⑤ 编写定时任务

sudo crontab -e
5、WEB02 主机

注意:启动主机时虚拟机需要连接镜像文件

a. 前期准备

① 主机名称为ZLM_Web02

vim /etc/hostname
ZLM_Web02

② 更改网卡配置

③ 创建tb_user用户 只允许TB主机使用此用户登录DNS主机

# 创建用户
useradd tb_user
# 设置密码
echo "tb_user:123456" | chpasswd# 给此用户提权
vim /etc/sudoers
tb_user ALL=(ALL)	NOPASSWD:ALL
b. 配置 sshd 服务

① 设置访问控制列表,只允许TB主机登录DNS主机

# 拒绝所有主机使用sshd访问DNS主机
vim /etc/hosts.deny
sshd:all:deny
# 允许TB主机使用sshd访问DNS主机
vim /etc/hosts.allow
sshd:192.168.137.201:allow

② 更改sshd服务的端口为2222,并且拒绝使用root用户登录

vim /etc/ssh/sshd_config
port=2222
DenyUsers root

c. ftp 下载软件包

① 使用ftp服务从TB主机下载所有的安装包和脚本

# 安装ftp服务
yum install -y ftp# 下载所有文件
wget ftp://192.168.137.201/pub/* --ftp-user=ftp -r
d. 脚本安装apache

① 安装apache

# 使用脚本安装apache
sudo chmod +x apache_install.sh 
sudo ./apache_install.sh 

② 开启虚拟主机功能

# 编辑Apache配置文件
vim /usr/local/apache/conf/httpd.conf# 去掉文件中的这行注释,如果没有此行,手写此行
Include conf/extra/httpd-vhosts.conf

③ 更改虚拟主机配置文件

# 备份配置文件
cp /usr/local/apache/conf/extra/httpd.vhosts.conf /usr/local/apache/conf/extra/httpd.vhosts.conf.bak# 编辑虚拟配置文件
sudo vim /usr/local/apache/conf/extra/httpd.vhosts.conf
<VirtualHost www.test.cn:80>ServerAdmin webmaster@dummy-host.example.comDocumentRoot "/usr/local/apache/htdocs/www/test/com"ServerName www.test.comErrorLog "logs/www/test.com-error_log"CustomLog "logs/www/test.com-access_log" common<Directory htdocs/www/test/com>Require all granted</Directory>
</VirtualHost><VirtualHost www.test.cn:80>ServerAdmin webmaster@dummy-host2.example.comDocumentRoot "/usr/local/apache/htdocs/www/test/cn"ServerName www.test.cnErrorLog "logs/www/test.cn-error_log"CustomLog "logs/www/test.cn-access_log" common<Directory htdocs/www/test/cn>Require all granted</Directory>
</VirtualHost>

④ 创建两个web站点和日志目录

# 创建web站点目录
sudo mkdir -p www/test/{cn,com}
# 创建页面
vim /usr/local/apache/htdocs/www/test/com/index.html
This page is www.test.com
vim /usr/local/apache/htdocs/www/test/cn/index.html
This page is www.test.cn# 创建log目录
sudo mkdir -p /usr/local/apache/logs/www/test/{cn,com}

⑤ 在apache主配置文件中添加服务名称

# 添加服务名称
vim /usr/local/apache/conf/httpd.conf# 添加服务网站ServerName www.test.com:80ServerName www.test.cn:80

⑥ 配置hosts映射文件

vim /etc/hosts
192.168.137.204 www.test.com
192.168.137.204 www.test.cn

⑦ 检测虚拟主机文件语法

httpd -t

⑧ 修改Windows映射文件

C:\Windows\System32\drivers\etc\hosts
192.168.137.204 www.test.com
192.168.137.204 www.test.cn
e. rysnc 数据源(推送数据)

① 传送时使用密码文件

# 编辑同步密码文件
vim /etc/rsyncd.passwd123456
# 修改密码文件权限
chmod 600 /etc/rsyncd.passwd # 传输时使用密码文件
rsync -avz --delete /var/www/html backupuser@192.168.137.5::wwwroot --password-file=/etc/rsyncd.passwd 

② 创建定时任务 定时备份数据到备份服务器

# 编写rsync备份脚本
vim /home/tb_user/cron_sh/autobackup_rsync_push.sh#!/bin/bash/usr/bin/rsync  -avz  --delete  /var/www/html/  backupuser@192.168.137.5::wwwroot --password-file=/etc/rsync.passwd#  给脚本权限
chmod u+x autobackup_rsync_push.sh# 计划任务
crontab -e
30 22 * * * /usr/bin/sh /home/tb_user/cron_sh/autobackup_rsync_push.sh
f. 搭建 ftp服务(用户名密码)

① 安装 vsftpd

sudo yum install -y vsftp

② 修改配置文件

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf.bak
sudo vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
# When SELinux is enforcing check for SE bool ftp_home_dir
# 允许本地用户登录
local_enable=YES
# 启用 chroot 锁定本地用户功能
chroot_local_user=YES
# 启用 chroot 锁定本地用户列表功能
chroot_list_enable=YES
# 本地用户列表保存文件目录
chroot_list_file=/etc/vsftpd/chroot_list
# 锁定本地用户ftp根目录,如果不是设置,默认用户ftp根目录为用户家目录
local_root=/var/www/html
# 锁定用户拥有写权限
allow_writeable_chroot=YES
# ftp 用户限制
userlist_enable=YES
userlist_deny=NO

③ 创建ftp交互目录 并设置权限

sudo mkdir -p /var/www/html# 允许tb_user用户操作此目录
sudo setfacl -Rm u:tb_user:rwx /var/www/html

④ 将用户添加到白名单文件

sudo vim /etc/vsftpd/user_list
tb_user
sudo vim /etc/vsftpd/chroot_list
tb_user

⑤ 重启服务并测

systemctl restart vsftpd
systemctl enable vsftpd

g. 配置 DNS 解析文件
sudo vim /etc/resolv.conf
nameserver 192.168.137.202

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/580728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shell命令与Linux操作系统:深入理解其原理和功能(2/2)

在当今数字化时代&#xff0c;操作系统的安全性和稳定性对于个人用户和企业都至关重要。Linux&#xff0c;作为一个广泛使用的操作系统&#xff0c;其强大的文件权限系统是保护系统安全的核心机制之一。无论是在服务器管理、软件开发还是日常使用中&#xff0c;有效地管理和理解…

MongoDB文档操作

3.3 文档操作 3.1 文档介绍 文档的数据结构和 JSON 基本一样。 所有存储在集合中的数据都是 BSON 格式。 BSON 是一种类似 JSON 的二进制形式的存储格式&#xff0c;是 Binary JSON 的简称。 文档是一组键值(key-value)对(即 BSON)&#xff0c;一个简单的文档例子如下&…

输入日期,计算当前日期是这一年中的第几天(涉及闰年问题)

一、应用到的知识&#xff1a;闰年问题&#xff0c;数组&#xff0c;for循环&#xff0c;命令行参数&#xff0c;atoi函数 1. 闰年问题&#xff1a; 闰年 是指该年有366日&#xff0c;即较平常年份多出一日。每400年就会有一次闰年&#xff1b;或者年份是4的倍数&#xff0c;但…

Flowable-升级为7.0.0.M2-第二节

目录 替换变化的类和配置把javax.servlet 替换为 jakarta.servlet修改redis的配置配置logging.level.org.springframework.boot.autoconfigureerror避免影响视听 替换变化的类和配置 把javax.servlet 替换为 jakarta.servlet import javax.servlet.ServletContext; import ja…

【Linux基础】9. 用户管理

文章目录 【 1. 用户基本管理 】1.1 useradd 添加用户1.2 passwd 更改用户密码1.3 su 切换用户1.4 userdel 删除用户 【 2. 用户的组 】2.1 more 查看系统所有组2.2 显示用户的组2.3 更改用户的组 【 3. 环境变量 】 【 1. 用户基本管理 】 1.1 useradd 添加用户 全称作用use…

【教程】使用ipagurd打包与混淆Cocos2d-x的Lua脚本

文章目录 摘要引言正文1. 准备工作2. 使用ipaguard处理Lua文件3. 运行ipagurd进行混淆代码加密具体步骤测试和配置阶段IPA 重签名操作步骤4. IPA重签名与发布 总结 摘要 本文将介绍如何使用ipagurd工具对Cocos2d-x中的Lua脚本进行打包与混淆&#xff0c;以及在iOS应用开发中的…

tekton 发布 kubernetes 应用

tekton 发布 kubernetes 应用 基于Kubernetes 服务部署 Tekton Pipeline 实例&#xff0c;部署完成后使用tekton来完成源码拉取、应用打包、镜像推送和应用部署。 本文实现一个 golang-helloworld 项目 CI/CD 的完整流程&#xff0c;具体包括以下步骤&#xff1a; 从 gitee…

css 超过一行/多行显示省略号... - 附示例

效果 1、超过一行 2、超过多行 - 以两行为例 二、示例代码 1、超过一行 margin: 20px; width: 50px; border: 1px solid red; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 2、超过多行 - 以两行为例 margin: 20px; width: 50px; border: 1px solid r…

【日常聊聊】年度总结

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 博客创作的初衷&#xff1a; 学到的技能&#xff1a; Java知识的深度掌握&#xff1a; Spring框架的应用和实践&#xff1a; 前端技…

Unity so文件的问题

文章目录 问题在面板上无法显示子节点如何保存继承于so的类必须放置在单个脚本so类文件名和类名要一致 问题 最近自己在写一个行为树出现一些问题记录一下首先NodeTree肯定是so文件但是node可以是单纯的类&#xff0c;也可以是so。后来我发现只能是so 在面板上无法显示 第一…

linux 网络工具(二)

linux 网络工具 1. ip命令簇4.1 address4.2 link4.3 route4.4 rule 2. 其他常用命令2.1 ifup/ifdown2.2 配置主机名2.3 设置DNS服务器指向2.4 配置域名解析2.5 ss2.6 路由相关配置文件2.7 查看机器可用端口2.8 traceroute2.9 dhclient 1. ip命令簇 Linux的ip命令和ifconfig类似…

系列十七(面试)、请你谈谈RocketMQ的消息丢失问题

一、RocketMQ的消息丢失问题 1.1、概述 生产环境中为了保证服务的高可用&#xff0c;一般情况下都是采用集群的方式&#xff0c;RocketMQ也不例外&#xff0c;另外现在企业级的开发基本都是分布式微服务的模式&#xff0c;这就存在着跨网络传输数据的问题&#xff0c;而网络传…

【PTA】L1-016 验证身份(C++)

题目链接 &#xff1a; 题目要求&#xff1a; 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下&#xff1a; 首先对前17位数字加权求和&#xff0c;权重分配为&#xff1a;{7&#xff0c;9&#xff0c;10&#xff0c;5&#xff0…

【七】【C语言\动态规划】最大子数组和、环形子数组的最大和、乘积最大子数组,三道题目深度解析

动态规划 动态规划就像是解决问题的一种策略&#xff0c;它可以帮助我们更高效地找到问题的解决方案。这个策略的核心思想就是将问题分解为一系列的小问题&#xff0c;并将每个小问题的解保存起来。这样&#xff0c;当我们需要解决原始问题的时候&#xff0c;我们就可以直接利…

python脚本抢各大平台大额优惠卷

文章目录 python脚本抢各大平台大额优惠卷写在前面准备阶段一、所需工具二、ChromeDriver下载教程 三、Seleuinm安装1、打开cmd&#xff0c;输入如下命令 开始抢券淘宝脚本京东抢购脚本 python脚本抢各大平台大额优惠卷 写在前面 当电商平台上演盛大的购物狂欢时&#xff0c;如…

SpringBoot3 基础特性

1. SpringApplication 1.1. 自定义 banner 类路径添加banner.txt或设置spring.banner.location就可以定制 banner推荐网站&#xff1a;Spring Boot banner 在线生成工具&#xff0c;制作下载英文 banner.txt&#xff0c;修改替换 banner.txt 文字实现自定义&#xff0c;个性化…

数据驱动与数据安全,自动驾驶看得见的门槛和看不见的天花板

作者 |田水 编辑 |德新 尽管心理有所准备&#xff0c;2023年智能驾驶赛道的内卷程度还是超出了大多数人的预期。 这一年&#xff0c;汽车价格战突然开打&#xff0c;主机厂将来自销售终端的价格压力&#xff0c;传导到下游智驾供应商&#xff0c;于是&#xff0c;市面上出现…

医院云HIS系统源码,saas多医院版,适用于专科医院、集团医院、基层医院

医院云HIS系统源码&#xff0c;自主研发&#xff0c;自主版权&#xff0c;电子病历病历4级 系统概述&#xff1a; 一款满足基层医院各类业务需要的云HIS系统。该系统能帮助基层医院完成日常各类业务&#xff0c;提供病患挂号支持、病患问诊、电子病历、开药发药、会员管理、统…

数据结构:单调栈

1.单调栈 单调栈是一种数据结构&#xff0c;其中存放的数据应该是有序的&#xff0c;所以单调栈也有单调递减栈和单调递增栈 单调递增栈&#xff1a;栈顶到栈底的元素大小是从小到大 单调递减栈&#xff1a;栈顶到栈底的元素大小是从大到小 单调栈主要就是用来求一个给定序列中…

【unity3D-粒子系统】粒子系统主模块-Particle System篇

&#x1f497; 未来的游戏开发程序媛&#xff0c;现在的努力学习菜鸡 &#x1f4a6;本专栏是我关于游戏开发的学习笔记 &#x1f236;本篇是unity的粒子系统主模块-Particle System 基础知识 Particle System 介绍&#xff1a;粒子系统的主模块&#xff0c;是必需的模块&#x…