2022山东省赛赛题Linux答案解析
2022山东省赛赛题
服务器配置及应用项目
三、linux 服务配置
(一)dns 服务
1.所有 linux 主机启用防火墙,防火墙区域为 public,在防火墙中放行对
应服务端口。
2.利用 chrony,配置 linux1 为其他 linux 主机提供 NTP 服务。
3.所有linux主机root用户使用完全合格域名免密码ssh登录到其他linux
主机。
4.利用 bind 配置 linux1 为主 dns 服务器,linux2 为备用 dns 服务器;为
所有 linux 主机提供冗余 dns 正反向解析服务。
yum -y install chronyd
#chrony时间服务
#编辑服务端chrony的配置文件
vim /etc/chrony.conf
server 10.10.21.101 iburst #line 3
allow 10.10.21.0/24 #line 23
local stratum 10 #line 26
systemctl start chronyd
#放行防火墙
firewall-cmd --add-service=ntp
#复制一份客户端配置文件
cp -p /etc/chrony.conf /
#编辑客户端chrony的配置文件
vim /chrony.conf
server 10.10.21.101 iburst #line 3
for((i=2;i<=7;i++)) do scp chrony.conf 10.10.21.10$i:/etc/chrony.conf ; ssh 10.10.21.10$i "systemctl restart chronyd&&chronyc sources -v";done
#免密登录
ssh-keygen
for((i=1;i<=7;i++)) ;do ssh-copy-id 10.10.21.10$i ;done
for((i=1;i<=7;i++))do scp -r /root/.ssh/* 10.10.21.10$i:/root/.ssh/ ;done
yum -y install bind bind-utils
#linux1主DNS
#编辑bind主配置文件
vim /etc/named.conf
listen-on port 53 { any; }; #line 11
allow-query { any; }; #line 19
#编辑bind区域配置文件
vim /etc/named.rfc1912.zones
#正向解析
zone "skills.com" IN {
type master;
file "skills.com.zone";
allow-transfer { 10.10.21.102; };
};
#反向解析
zone "21.10.10.in-addr.arpa" IN {
type master;
file "21.10.10.arpa";
allow-transfer { 10.10.21.102; };
};
cd /var/named/
cp -p named.localhost skills.com.zone
cp -p named.loopback 120.10.10.arpa
#编辑skills.com正向区域配置文件
vim skills.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
linux1 A 10.10.21.101
linux2 A 10.10.21.102
linux3 A 10.10.21.103
linux4 A 10.10.21.104
linux5 A 10.10.21.105
linux6 A 10.10.21.106
linux7 A 10.10.21.107
* A 10.10.21.101
tomcat A 10.10.21.102
www A 10.10.21.101
#编辑skills.com反向区域配置文件
vim 120.10.10.arpa
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
101 PTR linux1.skills.com.
102 PTR linux2.skills.com.
103 PTR linux3.skills.com.
104 PTR linux4.skills.com.
105 PTR linux5.skills.com.
106 PTR linux6.skills.com.
107 PTR linux7.skills.com.
#防火墙放行服务
firewall-cmd --add-service=dns
#更改权限
chown -R root.named skills.com.zone
chown -R root.named 120.10.10.arpa
#启动bind服务
systemctl enable --now named
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.
#备用DNS
#编辑bind主配置文件
vim /etc/named.conf
listen-on port 53 { any; }; #line 11
allow-query { any; }; #line 19
#编辑bind区域配置文件
vim /etc/named.rfc1912.zones
#正向解析
zone "skills.com" IN {
type slave;
file "slaves/skills.com.zone";
masters { 10.10.21.101; };
masterfile-format text;
};
#反向解析
zone "120.10.10.in-addr.arpa" IN {
type slave;
file "slaves/120.10.10.arpa";
masters { 10.10.21.101; };
masterfile-format text;
};
firewall-cmd --add-service=dns
#启动bind服务
systemctl restart named
systemctl enable named
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.
#查看skills.com.zone和120.10.10.arpa,有没有过来
ll /var/named/slaves/
5.在 linux1 上安装 ansible,作为 ansible 的控制节点。linux2-linux7 作
为 ansible 的受控节点。在 linux1 编写/root/skills.yaml 剧本,实现在 linux1
创建文件/root/ansible.txt,并将该文件复制到所有受控节点的/root 目录。
#从包中安装ansible,注意Rocky8.6可以直接安装ansible
yum -y install ansible*
#自定义主机清单
vim /etc/ansible/hosts
[server]
10.10.21.101
[client]
10.10.21.10[2:7]
#编写playbook脚本
vim /root/skills.yaml
---
- hosts: server
gather_facts: no
tasks:
- name: touch file
file: path="/root/ansible.txt" state=touch
- hosts: client
gather_facts: no
tasks:
- name: copy file
copy: src="/root/ansible.txt" dest="/root/"
#运行playbook
ansible-playbook skills.yaml
6.配置 linux1 为 CA 服务器,为 linux 主机颁发证书。证书颁发机构有效期
10 年,公用名为 linux1.skills.com。申请并颁发一张供 linux 服务器使用的证
书,证书信息:有效期=5 年,公用名=skills.com,国家=CN,省=Beijing,城市
=Beijing,组织=skills,组织单位=system,使用者可选名称=*.skills.com 和
skills.com。将证书 skills.crt 和私钥 skills.key 复制到需要证书的 linux 服
务器/etc/ssl 目录。浏览器访问 https 网站时,不出现证书警告信息。
#创建根私钥
openssl genrsa -out /etc/pki/CA/private/cakey.pem
cd /etc/pki/CA/
#创建根证书
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650 #天数
CN Beijing Beijing Skills System skills.com
#在CA文件夹下创建 数据库索引文件 和 当前证书序列号
touch index.txt
echo 01 > serial
#导出安装用证书ca.pfx
openssl pkcs12 -export -inkey private/cakey.pem -in cacert.pem -out certs/ca.pfx
#证书
openssl genrsa -out skills.key
openssl req -new -key skills.key -out skills.csr
CN=*.skills.com,OU=System,O=Skills,L=Beijing,S=Beijing,C=CN
openssl ca -in skills.csr -out skills.crt -days 1825
openssl pkcs12 -export -inkey skills.key -in skills.crt -out skills.pfx
(二)apache 服务
1.用apache2配置linux2为web服务器,使用skills.com或any.skills.com
(any 代表任意网址前缀,用 linux1.skills.com 和 web.skills.com 测试)访
问时,自动跳转到 www.skills.com。禁止使用 IP 地址访问,默认首页文档
/var/www/html/index.html 的内容为"apache"。
2.把/etc/ssl/skills.crt 证书文件和/etc/ssl/skills.key 私钥文件转换
成含有证书和私钥的/etc/ssl/skills.pfx 文件;然后把/etc/ssl/skills.pfx
转换为含有证书和私钥的/etc/ssl/skills.pem文件,再从/etc/ssl/skills.pem
文件中提取证书和私钥分别到/etc/ssl/apache.crt 和/etc/ssl/apache.key。
3.客户端访问 apache 服务时,必需有 ssl 证书。
yum -y install httpd mod_ssl
cd /etc/ssl
#配置文件在/usr/config文件夹下新建一个server.conf文件,内容如下
vim /etc/ssl/server.conf
[req]
req_extensions=req_ext
[req_ext]
subjectAltName =@alt_names
[alt_names]
DNS.1 = www.skills.com # 自行根据待配置证书的域名修改
DNS.2 = *.skill.com # 自行根据待配置证书的域名修改,该项用来认证二级域名,若无需验证去掉即可
openssl genrsa -out skills.key
openssl req -new -key skills.key -out skills.csr
CN=www.skills.com,OU=System,O=Skills,L=Beijing,S=Beijing,C=CN
#把这个成功申请
openssl ca -in skills.csr -out skills.crt -days 1825 -extensions req_ext -extfile server.conf
# 默 认 首 页 文 档/var/www/html/index.html 的内容为"Apache"
echo "Apache" > /var/www/html/index.html
#apache配置
<virtualhost *:80>
servername www.skills.com
serveralias *.skills.com
RewriteEngine on
RewriteRule ^(.*) https://www.skills.com/ [L]
</virtualhost>
<virtualhost *:443>
servername www.skills.com
serveralias *.skills.com
DocumentRoot "/var/www/html"
SSLEngine on
SSLCertificateFile /etc/ssl/skills.crt
SSLCertificateKeyFile /etc/ssl/skills.key
SSLCACertificateFile /etc/ssl/cacert.pem
</virtualhost>
#隐藏apache版本信息
ServerTokens Prod
ServerSignature off
#客户端访问,要有三个证书key,crt,pem
curl -k --cert skills.crt --key skills.key --cacert /etc/pki/CA/cacert.pem https://www.skills.com
#把证书转换为带私钥的pfx格式
openssl pkcs12 -export -inkey skills.key -in skills.crt -out skills.pfx
#将pfx转换为pem格式证书,pfx是包含私钥的,不加密私钥
openssl pkcs12 -in skills.pfx -nodes -out skills.pem
#从 PFX 格式文件中提取私钥格式文件 (.key)
openssl pkcs12 -in skills.pfx -nocerts -nodes -out skills.key
(三)ftp 服务
1.用 vsftpd 配置 linux3 为 ftp 服务器,新建本地用户 test,能上传下载。
2.配置 ftp 虚拟用户认证模式,虚拟用户 ftp1 和 ftp2 映射用户为 ftp;
ftp1 能上传下载,但禁止上传后缀名为.docx 的文件;ftp2 仅能下载。
3.所有用户登录 ftp 后的目录为/var/ftp/vdir/<$USERNAME>,
$USERNAME 表示用户名。
4.使用 ftp 命令在本机验证。
yum -y install vsftpd
#创建用户
useradd -d /var/ftp/pub test
echo "xiaoming:Pass-1234"|chpasswd
#vsftpd配置文件
vim /etc/vsftpd/vsftpd.conf
listen=YES
listen_ipv6=NO
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/ftp
allow_writeable_chroot=YES
#添加虚拟用户配置
vim /etc/vsftpd/ftpuser.list
ftp1
Pass-1234
ftp2
Pass-1234
#哈希加密
db_load -T -t hash -f /etc/vsftpd/ftpuser.list /etc/vsftpd/ftpuser.db
find / -name pam_userdb.so
#PAM验证
vim /etc/pam.d/vsftpd
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/ftpuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/ftpuser
#配置用户文件
mkdir /etc/vsftpd/ftp
vim /etc/vsftpd/ftp/ftp1
local_root=/var/ftp/vdir/ftp1
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
deny_file={*.docx}
vim /etc/vsftpd/ftp/ftp2
local_root=/var/ftp/vdir/ftp2
anon_world_readable_only=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
:wq
mkdir /var/ftp/vdir/{ftp1,ftp2} -p
chown ftp:ftp /var/ftp/vdir/* -R
chmod 777 /var/ftp/pub
systemctl restart vsftpd
firewall-cmd --add-service=ftp
#测试
ftp 10.10.21.101
(四)nfs 服务
1.配置 linux2 为 kdc 服务器,负责 linux3 和 linux4 的验证。
2.在 linux3 上,创建用户,用户名为 xiao,uid=2000,gid=2000,家目
录为/home/xiaodir。
3.配置 linux3 为 nfs 服务器,目录/srv/sharenfs 的共享要求为:linux
服务器所在网络用户有读写权限,所有用户映射为 xiao,kdc 加密方式为 krb5p。
4.配置 linux4 为 nfs 客户端, 利用 autofs 按需挂载 linux3 上的
/srv/sharenfs 到/sharenfs 目录,挂载成功后在该目录创建 test 目录。
yum -y install krb5* nfs-utils
#修改KDC主配置文件
vim /etc/krb5.conf
18行和21行后面所有
default_realm = SKILLS.COM
[realms]
22 SKILLS.COM = {
23 kdc = linux2.skills.com
24 admin_server = linux2.skills.com
25 }
26
27 [domain_realm]
28 .skills.com = SKILLS.COM
29 skills.com = SKILLS.COM
#kdc数据库初始化,回车两下
kdb5_util create -s
#创建客户端密钥并把密钥导出
kadmin.local
addprinc -randkey nfs/linux3.skills.com
addprinc -randkey nfs/linux4.skills.com
ktadd -k /tmp/linux3 nfs/linux3.skills.com
ktadd -k /tmp/linux4 nfs/linux4.skills.com
exit
scp /etc/krb5.conf linux3.skills.com:/etc/krb5.conf
scp /etc/krb5.conf linux4.skills.com:/etc/krb5.conf
scp /tmp/linux3 linux3.skills.com:/etc/krb5.keytab
scp /tmp/linux4 linux4.skills.com:/etc/krb5.keytab
systemctl enable --now krb5kdc
firewall-cmd --add-service=kerberos
#linux3
yum -y install krb5* nfs-utils nfs-utils
kinit -kt /etc/krb5.keytab nfs/linux3.skills.com
klist
#linux3 创用户,用户名为 xiao,uid=2000,gid=2000,家目录为/home/xiaodir
groupadd -g 2000 xiao
useradd -u 2000 -g 2000 -d /home/xiaodir xiao
#NFS服务
yum install nfs-utils -y
mkdir -p /srv/sharenfs
vim /etc/exports
/srv/sharenfs 10.10.21.0/24(rw,root_squash,async,anonuid=2000,anongid=2000,sec=krb5p)
:wq
systemctl enable --now nfs-server
firewall-cmd --add-service=nfs
firewall-cmd --add-service=rpc-bind
firewall-cmd --add-service=mountd
#linux4
yum -y install krb5* nfs-utils nfs-utils autofs
vim /etc/auto.master
# 挂载点的父目录 /etc/auto.misc
/sharenfs /etc/auto.misc
vim /etc/auto.misc
# 挂载点的真实目录 -fstype=nfs,rw server:/nfs-share
xiao -fstype=nfs,rw,sync,no_root_squash 10.10.21.103:/srv/sharenfs
:wq
systemctl enable --now autofs
mkdir /sharenfs
cd /sharenfs
cd xiao
mkdir test
# 检查文件系统挂载情况
df -Th
(五)postgresql 服务
1.配置 linux5 为 postgresql 服务器,创建数据库 userdb;在库中创建
表 userinfo,在表中插入 2 条记录,分别为(1,user1,1995-7-1),(2,user2,
1995-9-1),口令与用户名相同,password 字段用 md5 函数加密,表结构如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WcxOqj9q-1679974466927)(C:\Users\yzp\AppData\Roaming\Typora\typora-user-images\image-20221114142211717.png)]
2.设置可以直接在 shell 下操作数据库,然后备份数据库 userdb 到
/var/local/postgresqlbak/userdb.sql。
yum install -y postgresql postgresql-server
#初始化数据库
/usr/bin/postgresql-setup --initdb
WARNING: using obsoleted argument syntax, try --help
WARNING: arguments transformed to: postgresql-setup --initdb --unit postgresql
* Initializing database in '/var/lib/pgsql/data'
* Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
#启动服务
systemctl enable --now postgresql
#开启防火墙
firewall-cmd --add-port=5432/tcp --permanent
#创建数据库
sudo -u postgres psql
createdb database userdb;
#登入数据库
\c userdb
#创建表结构
create table userinfo(id serial primary key not null,name varchar(10) ,birthday date ,password varchar(50));
#插入数据
insert into userinfo values(1,'user1','1995-7-1',MD5('user1'));
insert into userinfo values(2,'user2','1995-9-1',MD5('user2'));
\q
#备份数据库userdb到/var/local/postgresqlbak/userdb.sql
mkdir -p /var/local/postgresqlbak
chmod 777 /var/local/postgresqlbak/
sudo -u postgres pg_dump -c -C -f /var/local/postgresqlbak/userdb.sql userdb
(六)redis 服务
1.利用 linux6 搭建 redis cluster 集群,使用端口 7004-7006 模拟主节点,
7001-7003 模拟从节点,让其他主机可以访问 redis 集群。
#修改配置文件
vim /etc/redis.conf
69 bind 10.10.21.103
136 daemonize yes
838 cluster-enabled yes
846 cluster-config-file nodes-6379.conf
:wq
mkdir -p /rediscluster/{7001..7006}
#使用shell脚本进行批量操作
for((i=7001;i<=7006;i++))do cp /etc/redis.conf /rediscluster/$i/; sed -i "s/6379/$i/g" /rediscluster/$i/redis.conf;
#创建集群
redis-cli --cluster create 10.10.21.103:7001 10.10.21.103:7002 10.10.21.103:7003 10.10.21.103:7004 10.10.21.103:7005 10.10.21.103:7006 --cluster-replicas 1
(五)Mariadb 服务
1.配置 Linux3 为 Mariadb 服务器,安装 Mariadb-server,创建数据库用户
jack,在任意机器上对所有数据库有完全权限;允许 root 远程登陆。
2.配置 Linux4 为 Mariadb 客户端,创建数据库 userdb;在库中创建表
userinfo,在表中插入 2 条记录,分别为(1,user1,1995-7-1,男),(2,user2,
1995-9-1,女),口令与用户名相同,password 字段用 password 函数加密,表结
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ojYuj4bS-1679974466928)(C:\Users\yzp\AppData\Roaming\Typora\typora-user-images\image-20221114142955846.png)]
3.修改表 userinfo 的结构,在 name 字段后添加新字段 height(数据类型为
float),更新 user1 和 user2 的 height 字段内容为 1.61 和 1.62。
4.将表 userinfo 中的记录导出,并存放到/var/databak/mysql.sql 文件中
#服务端
Yum install -y mariadb mariadb-server
Systemctl restart mariadb mariadb.service
mysql
GRANT ALL PRIVILEGES ON *.* to jack@'%' identified by "Pass-1234";
#客户端
um install -y mariadb mariadb-server
Systemctl restart mariadb mariadb.service
Mysql -u jack -h 10.10.21.103 -p
create database userdb;
use userdb;
#创建表结构
create table userinfo(id int primary key auto_increment,name varchar(10),birthday datetime,sex char(5),password char(200));
#插入数据
insert into userinfo values(1,'user1','1995-7-1','nan',password('user1'));
insert into userinfo values(2,'user2','1995-9-1','nv',password('user2'));
allter table userinfo add height float after name;
update userinfo set height = 1.61 where id =1;
update userinfo set height = 1.62 where id =2;
load data local infile '/1/mysql.txt' into table userinfo;
exit
#内容导入userinfo表
[root@linux4]#mysqldump -h 10.10.21.103 -u jack -p"Pass-1234" -B --databases userdb --tables userinfo > '/var/databak/mysql.sql'
(四)Mail 服务
1.配置 linux4 为 mail 服务器,安装 postfix 和 dovecot。
2.仅支持 smtps 和 pop3s 连接,证书路径为/etc/ssl/skills.crt,私钥路
径为/etc/ssl/skills.key。
3.创建用户 mail1 和 mail2,向 all@skills.com 发送的邮件,每个用户
都会收到。
4.root 用户使用 mail 工具向 all@skills.com 发送一封邮件,邮件
主题为“Hello”,内容为“Welcome”。
yum install postfix dovecot -y
#配置postfix
vim /etc/postfix/main.cf
myhostname = linux5.skills.com
mydomain = skills.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname,$mydomain
mynetworks = 10.10.21.0/24
home_mailbox = Maildir/
#ssl
smtpd_tls_key_file = /etc/ssl/skills.key
smtpd_tls_cert_file = /etc/ssl/skills.crt
vim /etc/postfix/master.cf
#smtp inet n - n - - smtpd #line 12
smtps inet n - n - - smtpd #line 29
-o syslog_name=postfix/smtps #line 30
-o smtpd_tls_wrappermode=yes #line 31
#编辑dovecot
vim /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp submission
listen = *, ::
login_trusted_networks = 10.10.21.0/24
vim /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
vim /etc/dovecot/conf.d/10-ssl.conf
ssl = yes
ssl_cert = </etc/ssl/skills.crt
ssl_key = </etc/ssl/skills.key
#防火墙
firewall-cmd --add-service=pop3s
firewall-cmd --add-service=smtps
firewall-cmd --add-service=smtp
firewall-cmd --add-service=pop3
systemctl start postfix dovecot
systemctl enable postfix.service dovecot.service
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service.
Created symlink /etc/systemd/system/multi-user.target.wants/dovecot.service → /usr/lib/systemd/system/dovecot.service.
#创建用户mail1和mail2
useradd mail1
useradd mail2
#设置密码
echo "mail1:Pass-1234" | chpasswd
echo "mail2:Pass-1234" | chpasswd
#配置
vim /etc/aliases
all: mail1,mail2
:wq
newaliases
yum install mailx -y
echo "Welcome" | mail -s "Hello" all@skills.com
cat /home/mail1/Maildir/new/1652068709.Vfd00Ibe30cM57337.linux4.skills.com
Return-Path: <root@skills.com>
X-Original-To: all@skills.com
Delivered-To: all@skills.com
Received: by linux4.skills.com (Postfix, from userid 0)
id 07D07A1C8D; Mon, 9 May 2022 11:58:29 +0800 (CST)
Date: Mon, 09 May 2022 11:58:28 +0800
To: all@skills.com
Subject: Hello
User-Agent: Heirloom mailx 12.5 7/5/10
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20220509035829.07D07A1C8D@linux4.skills.com>
From: root <root@skills.com>
Welcome
(六)pxe 服务
1.linux5 安装 DHCP 服务,地址范围为 10.10.21.10-10.10.21.19,网关
为 10.10.21.1,dns 为 10.10.21.101,域名为 skills.com。
2.安装 tftp-server,tftp 目录为默认值。
3.挂载 linux 光盘文件到/var/www/html/cdrom;实现完全自动安装 linux
文字界面,配置文件为/var/www/html/ks.cfg(参考/root/anaconda-ks.cfg),
在/var/lib/tftpboot/pxelinux.cfg/default 文件中指定安装源和 ks 文件。
yum -y install httpd syslinux xinetd tftp-server dhcp-server
# 复制配置文件
cp -a /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite '/etc/dhcp/dhcpd.conf'? y
#将以下配置修改
subnet 10.5.5.0 netmask 255.255.255.224 {
range 10.5.5.26 10.5.5.30;
option domain-name-servers ns1.internal.example.org;
option domain-name "internal.example.org";
option routers 10.5.5.1;
option broadcast-address 10.5.5.31;
default-lease-time 600;
max-lease-time 7200;
}
#修改为如下配置
subnet 10.10.21.0 netmask 255.255.255.0 { #地址网段 和 掩码
range 10.10.21.10 10.10.21.19; #地址池
option domain-name-servers 10.10.21.101;
option domain-name "skills.com";
option routers 10.10.21.254;
filename "pxelinux.0"; #pxe引导程序文件
next-server 10.10.21.104; #tfpt服务器地址
}
mkdir /var/www/html/cdrom
mount /root/Rocky-8.5-x86_64-dvd1.iso /var/www/html/cdrom
# 拷贝启动所需文件
cp -a /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp -a /var/www/html/cdrom/isolinux/{initrd.img,ldlinux.c32,vesamenu.c32,libcom32.c32,vmlinuz,libutil.c32} /var/lib/tftpboot/
# 拷贝引导文件并修改
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /var/www/html/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
menu label ^Manual Install CentOS Linux 8
kernel vmlinuz
menu default
append initrd=initrd.img inst.stage2=http://10.10.21.104/cdrom ks=http://10.10.21.104/ks.cfg quiet
#保存并退出:wq!
cp /root/anaconda-ks.cfg /var/www/html/ks.cfg
# 拷贝引导文件并修改
chmod o+r /var/www/html/ks.cfg
# 赋予其他用户添加可读权限
vim /var/www/html/ks.cfg
text
url --url="http://10.10.21.104:8888/cdrom/"
#下面四个注释
#repo --name="AppStream" --baseurl=file:///run/install/sources/mount-0000-cdrom/AppStream
# Use CDROM installation media
#cdrom
# Partition clearing information
clearpart --all --initlabel #none 改成all 初始化硬盘
reboot #最后一行加上reboot 装完系统自动重启
非编辑模式下输入 :%s/vda/sda/g
非编辑模式下输入 :wq
systemctl restart httpd tftp.socket xinetd dhcpd
systemctl enable httpd tftp.socket xinetd dhcp
#防火墙
firewall-cmd --add-service=dhcp
firewall-cmd --add-service=tftp
firewall-cmd --add-port=8888/tcp
(六)samba 服务
1.在 linux5 上创建 user00-user19 等 20 个用户;user00 和 user01
添加到 dev 组,user02 和 user03 添加到 sale 组。把用户 user00-user03 添加到 samba 用户。
2.配置 linux5 为 samba 服务器,建立共享目录/srv/sharesmb,共享名与
目录名相同。dev 组用户对 sharesmb 共享有读写权限,sale 组对 sharesmb
共享有只读权限;用户对自己新建的文件有完全权限,对其他用户的文件只有读
权限,且不能删除别人的文件。在本机用 smbclient 命令测试。
3.在 linux6 修改/etc/fstab,使用用户 user00 实现自动挂载 linux3 的
sharesmb 共享到/sharesmb。
yum -y install samba samba-client
#创建20个用户
[root@linux3 srv]# vi /222.sh
#!/bin/bash
for i in {00..20}
do
useradd user$i
done
#创建组
groupadd sale
groupadd dev
#修改用户的所属组
usermod user01 -g dev
usermod user00 -g dev
usermod user02 -g sale
usermod user03 -g sale
pdbedit -a user00
pdbedit -a user01
pdbedit -a user02
pdbedit -a user03
#创建目录
mkdir -p /srv/sharesmb
firewall-cmd --add-service=samba
#编辑samba的配置文件
vim /etc/samba/smb.conf
[sharesmb]
path = /srv/sharesmb
browseable = yes
write list = dev
valid users =@dev,@sale
:wq
systemctl enable --now smb
# smbclient 命令测试
yum -y install samba-client
smbclient //10.10.21.103/sharesmb/ -U user00
Password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.9-151.el6]
smb: \>
#linux4
mkdir /sharesmb
yum -y install cifs-utils
vim /etc/fstab
//10.10.21.103/sharesmb /sharesmb cifs defaults,username=user00,password=Pass-1234 0 0
mount -a
(七)脚本
1.在 linux7 上编写/root/CreateFile.py 的 python3 脚本,创建 20 个
文件/root/python/File10 至/root/python/File29,如果文件存在,则删除后
再创建;每个文件的内容同文件名,如 File10 文件的内容为“File10”。
import os
os.system("mkdir -p /root/python")
file = "/root/python/"
for n in range(10,29):
if(n < 20):
res = os.path.isfile("/root/python/file{}".format(n))
if(res):
os.system("rm -rf {}file{}".format(file,n))
else:
res1 = os.system("touch {}file{}".format(file,n))
ec = os.system("echo file{} >> {}file{}".format(n,file,n))
else:
res = os.path.isfile("{}file{}".format(file,n))
if(res):
os.system("rm -rf {}file{}".format(file,n))
else:
res2 = os.system("touch {}file{}".format(file,n))
ec1 = os.system("echo file{} >> {}file{}".format(n,file,n))