https://github.com/green-fox-academy/safely-syllabus/tree/master/materialreview/scripts/bash

#### 3. linuxadmin部分的考试准备 ####

典型的管理任务
安装httpd软件包
为网站管理员创建一个用户和相应的组作为网站管理员
网站管理员的SSH公钥是这样的:
ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQDBaVwDbVfjWUudsIHLQFdfekvdm2S1eYBCw7tZx0U1+gaXOd5LX2cq3P2YEBImsoUl0c9R0wOlf7w6H1bKLYtaCeyKByiyYUBQyU/VmeFH9RUOw1uJzIuuHaOMVx1GuONzymGhTpiPi0x+2gsBDLtdJCq5AiH/8QHJ7BcNNqgjK8kIHPT6gaaXgboy6hIw5KGOnw1+y9yGRXhRWT4vAjncoK7P1UO3BTcc42OpDOdet1E5iGzYAd6lIF6lpjPuJBTvdYZDt33I6vXCSBBnI8tlx7HPSj0ULP+kHl8MAY2Nqv/aRBG8LQULT/QhmG7+y4LVtASJGnylcMRt1i3ojiIxroot@408cd9fb18a8
把它复制到正确的地方。

/var/web目录不再需要了,请删除它
为正在运行的网站创建一个文件夹:/var/www
在这里创建一个具有任意内容的index.html文件
将以下图片与HTML文件一起下载到/var/www目录:image
提示:要下载,你可以使用wget命令,例如

/var/www文件夹和其中的所有文件应该由网站管理员用户和组拥有。
设置/var/www文件夹的权限,以便只有网站管理员用户可以写入该文件夹,但所有人都可以看到和访问它。
设置/var/www文件夹内文件的权限,以便只有网站管理员用户和组可以读和写,其他人可以读,并且不能运行这些文件

功能 admintasks()
{
	yum -y install httpd
	groupadd webmaster
	useradd -g webmaster webmaster
	#mkdir -p ~/.ssh
	mkdir -p /home/webmaster/.ssh
	触摸 /home/webmaster/.ssh/authorized_keys

	echo ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQDBaVwDbVfjWUudsIHLQFdfekvdm2S1eYBCw7tZx0U1+gaXOd5LX2cq3P2YEBImsoUl0c9R0wOlf7w6H1bKLYtaCeyKByiyYUBQyU/VmeFH9RUOw1uJzIuuHaOMVx1GuONzymGhTpiPi0x+2gsBDLtdJCq5AiH/8QHJ7BcNNqgjK8kIHPT6gaaXgboy6hIw5KGOnw1+y9yGRXhRWT4vAjncoK7P1UO3BTcc42OpDOdet1E5iGzYAd6lIF6lpjPuJBTvdYZDt33I6vXCSBBnI8tlx7HPSj0ULP+kHl8MAY2Nqv/aRBG8LQULT/QhmG7+y4LVtASJGnylcMRt1i3ojiIxroot@408cd9fb18a8 >> /home/webmaster/.ssh/authorized_keys
	rm -rf /var/web
	mkdir /var/www
	echo something > /var/www/index.html
	wget https://upload.wikimedia.org/wikipedia/commons/9/92/Penguin_Admin.svg -P /var/www
	chown webmaster:webmaster /var/www
	chmod a+rx,u+w /var/www
	chmod -R a=r,ug=rw /var/www/*

}

####第三次考试linuxadmin部分####TP4T#

典型的管理任务
创建一个名为mysql-backup的新用户和相应的同名组。

在mysql-backup的主文件夹中创建一个名为hello.txt的新文件,内容不限

为正在运行的数据库创建一个文件夹:/var/mariadb-data

从这里下载一个安装脚本:mariadb_repo_setup到/var/setup。

提示:要下载,你可以使用wget命令,例如

设置/var/setup/mariadb_repo_setup的权限,使每个人都可以运行它,每个人都可以阅读它的内容,但只有所有者用户和组可以写入它。

/var/mariadb-data文件夹和其中的所有文件应该由mysql-backup用户和组拥有。

设置/var/mariadb-data文件夹的权限,使任何人都不能写入该文件夹,但每个人都可以看到和列出其内容。

安装名为mariadb-server的软件包

容器中存在一个/var/web目录,但它不再需要了,请删除它和它的内容。

创建/etc/systemd/system文件夹

创建文件/etc/systemd/system/mariadb.service,其内容如下:

[服务]
ExecStart=/usr/sbin/mysqld

函数mysql()
{
	groupadd mysql-backup
	useradd -g mysql-backup mysql-backup
	mkdir -p /home/mysql-backup/
	echo "like content" >/home/mysql-backup/hello.txt
	mkdir /var/mariadb-data
	wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup -P /var/setup
	chmod -R a=rx, ug+w /var/setup/mariadb_repo_setup
	chown mysql-backup:mysql-backup /var/mariadb-data
	chown mysql-backup:mysql-backup /var/mariadb-data/*.
	chmod -R a=rx,a-w /var/mariadb-data
	yum -y install mariadb-server
	rm -rf /var/web
	mkdir /etc/systemd/system
	echo -e "[Service]\nExecStart=/usr/bin/mysqld" > /etc/systemd/system/mariadb.service
}

mysql

##### LINUXadmin项目任务 ####

 

1) 不允许根用户通过SSH登录。

#!/usr/bin/bash
#futtatas之前:
#chmod a+x ~/Megoldasaim/Linux-Admin/001.sh
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config-_`date +"%Y%m%d_%H%M%S"`。

this="#PermitRootLogin prohibit-password
this="PermitRootLogin no"
what="/etc/ssh/sshd_config"

sed -i "s/$ez/$erre/g" $miben

2) SElinux功能被关闭。

#!/usr/bin/bash
#futtatas之前:
#chmod a+x ~/Megoldasaim/Linux-Admin/001.sh
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config-_`date +"%Y%m%d_%H%M%S"`。

this="#PermitRootLogin prohibit-password
this="PermitRootLogin yes"
miben="/etc/ssh/sshd_config"

sed -i "s/$ez/$erre/g" $miben
[User3@linux9 Linux-Admin]$ nano 001.sh
[User3@linux9 Linux-Admin]$ cat 002.sh
#!/usr/bin/bash
#futtatas之前:
#chmod a+x ~/Megoldasaim/Linux-Admin/002.sh
sudo cp /etc/selinux/config /etc/selinux/config-_`date +"%Y%m%d_%H%M%S"`。

this="SELINUX=enforcing"
this="SELINUX=disabled"
what="/etc/selinux/config"

sudo sed -i "s/$ez/$erre/g" $miben

#getenforce
#reboot

3) 一个尚未使用的磁盘被添加到服务器中。
(20GB)。 文件系统应该是:XFS

#!/bin/bash
#elotte:
#chmod a+x ~/Megoldasaim/Linux-Admin/003.sh

sudo ls /sys/class/scsi_host | sudo awk '{print "echo "- - -" > /sys/class/scsi_host/" $1 "/scan" }' | sudo /usr/bin/bash

lsblk

#(echo n; echo p;echo ""; echo ""; echo ""; echo w ) | sudo fdisk /dev/sdb
<<com

echo "n
p
1


w
"|sudo fdisk /dev/sdb
com
#sudo sfdisk /dev/sdb


echo -e 'n\npn\n\nrnw\n'|sudo fdisk /dev/sdb
echo --------------------------------------------------------------------------------------------

sudo mkfs.xfs -f /dev/sdb1

4) 将其添加到机器上,并标上/WEBDATA挂载点和卷标:
网络数据 (WEBDATA)

#!/bin/bash
#elotte:
#chmod a+x ~/Megoldasaim/Linux-Admin/004.sh
sudo mkfs.xfs -f /dev/sdb1 -L WEBDATA
sudo mkdir -p /WEBDATA
sudo mount /dev/sdb1 /WEBDATA

5) 在/WEBDATA下创建一个门户,一个界面和一个bin
图书馆。

#!/bin/bash
#elotte:
#chmod a+x ~/Megoldasaim/Linux-Admin/004.sh

sudo mkdir -p /WEBDATA/portal
sudo mkdir -p /WEBDATA/interface
sudo mkdir -p /WEBDATA/bin

6) 安装HTTPD网络服务器,在启动时启动它
自动。

#!/bin/bash
#elotte:
#chmod a+x ~/Megoldasaim/Linux-Admin/006.sh

sudo yum -y install httpd
sudo systemctl enable httpd.service
sudo systemctl start httpd.service
sudo systemctl status httpd.service

7) 网络服务器应该可以在8080端口访问。/WEBDATA/bin目录
应该是网页的根目录。

#!/usr/bin/bash
#futtatas之前:
#chmod a+x ~/Megoldasaim/Linux-Admin/007.sh
sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/httpd.conf-_`date +"%Y%m%d_%H%M%S"`。

this="Listen 80"
this="Listen 8080"
what="/etc/httpd/conf/httpd.conf"

sudo sed -i "s/$ez/$erre/g" $miben

this="/var/www/html"
this="/WEBDATA/bin"
miben="/etc/httpd/conf/httpd.conf"

sudo sed -i "s|$his|$erre|g" $miben

sudo systemctl 重新启动 httpd.service

sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

8) 在这里创建一个带有PORTAL内容的index.html。

#!/bin/bash
#elotte:
#chmod a+x ~/Megoldasaim/Linux-Admin/008.sh

sudo touch /WEBDATA/bin/index.html
sudo echo "PORTAL" | sudo tee /WEBDATA/bin/index.html
sudo chown apache:apache /WEBDATA/bin/index.html

9) 创建一个主组的网络管理员账户
apache,其ID为2000。

#chmod a+x ~/Megoldasaim/Linux-Admin/009.sh

sudo useradd -u 2000 -g apache weboperator

10) /WEBDATA卷应该由apache拥有,目录的内容应该由apache完全拥有。
权限,而apache组的成员有只读权限。这方面的例外是
门户目录,这可以由网络管理员来写。如果你没有其他想法,你可以用
改变门户库的所有权。

#!/bin/bash
#elotte:
#chmod a+x ~/Megoldasaim/Linux-Admin/010.sh

sudo chown apache:apache /WEBDATA
sudo chmod -R u+rwx,g+r /WEBDATA
sudo setfacl -m u:weboperator:rw /WEBDATA/portal

11) 创建一个RSA密钥,用于使用weboperator登录ssh。
为 .

#!/bin/bash
#elotte:
#chmod a+x ~/Megoldasaim/Linux-Admin/002.sh

sudo mkdir -p /home/weboperator/.ssh
sudo echo -e 'y\n\n\n'|sudo ssh-keygen -t rsa -f /home/weboperator/.ssh/id_rsa
sudo chown -R weboperator /home/weboperator/.ssh

12) 安装一个FTP服务器(vsftpd)。

#!/bin/bash
#elotte:
#chmod a+x ~/Megoldasaim/Linux-Admin/012.sh

sudo yum -y install vsftpd
sudo systemctl start vsftpd.service
sudo systemctl status vsftpd.service

13) weboperator应该能够通过ftp复制一个文件到/WEBDATA/portal。

#!/usr/bin/bash
#futtatas之前:
#chmod a+x ~/Megoldasaim/Linux-Admin/013.sh

#https://www.ryadel.com/en/vsftpd-configure-different-home-folder-each-user-specific-directory/

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf-_`date +"%Y%m%d_%H%M%S"`。
this="listen=NO
this="listen=YES"
what="/etc/vsftpd/vsftpd.conf"

sudo sed -i "s/$ezt/$erre/g" $miben

this="listen_ipv6=YES"
this="listen_ipv6=NO"
in what="/etc/vsftpd/vsftpd.conf"

sudo sed -i "s/$ez/$erre/g" $miben


sudo echo "userlist_deny=NO
local_enable=YES
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/user_config_dir/" | sudo tee -a /etc/vsftpd/vsftpd.conf

sudo cp /etc/vsftpd/user_list /etc/vsftpd/user_list-_`date +"%Y%m%d_%H%M%S" `


sudo echo "weboperator" | sudo tee -a /etc/vsftpd/user_list

sudo mkdir /etc/vsftpd/user_config_dir/...。

sudo cp /etc/vsftpd/user_config_dir/weboperator /etc/vsftpd/user_config_dir/weboperator-_`date +"%Y%m%d_%H%M%S"`。

sudo touch /etc/vsftpd/user_config_dir/weboperator

sudo echo "local_root=/WEBDATA/portal
write_enable=YES" | sudo tee /etc/vsftpd/user_config_dir/weboperator

sudo systemctl 重新启动 vsftpd.service

sudo firewall-cmd --permanent --zone=public --add-service=ftp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

14) 创建一个接口账户,将apache作为主组、
和它的ID:2001。

#!/bin/bash
#elotte:
#chmod a+x ~/Megoldasaim/Linux-Admin/014.sh

sudo useradd -u 2001 -g apache interface
sudo echo -e 'Password1\nPassword1'|sudo passwd interface

15) 接口应该能够通过ftp上传文件到/WEBDATA/interface。

#!/usr/bin/bash
#futtatas之前:
#chmod a+x ~/Megoldasaim/Linux-Admin/015.sh

sudo setfacl -m u:interface:rwx /WEBDATA/interface


sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf-_`date +"%Y%m%d_%H%M%S" `
this="listen=NO
this="listen=YES"
what="/etc/vsftpd/vsftpd.conf"

sudo sed -i "s/$ezt/$erre/g" $miben

this="listen_ipv6=YES"
this="listen_ipv6=NO"
in what="/etc/vsftpd/vsftpd.conf"

sudo sed -i "s/$ez/$erre/g" $miben


sudo cp /etc/vsftpd/user_list /etc/vsftpd/user_list-_`date +"%Y%m%d_%H%M%S" `


sudo echo "interface" | sudo tee -a /etc/vsftpd/user_list

sudo mkdir /etc/vsftpd/user_config_dir/...。

sudo cp /etc/vsftpd/user_config_dir/interface /etc/vsftpd/user_config_dir/interface-_`date +"%Y%m%d_%H%M%S" `

sudo touch /etc/vsftpd/user_config_dir/interface

sudo echo "local_root=/WEBDATA/interface
write_enable=YES" | sudo tee /etc/vsftpd/user_config_dir/interface

sudo systemctl 重新启动 vsftpd.service

sudo firewall-cmd --permanent --zone=public --add-service=ftp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

16) 创建一个脚本,将ioperf.log写入/root/log目录。
脚本应该在每天早上6:00开始,一直运行到晚上~20:00。
fusson.

#!/bin/bash

1TP4i知道要到22日,但现在不好玩了 :d 21:04

#elotte:
#chmod a+x ~/Megoldasaim/Linux-Admin/016.sh



sudo mkdir /root/log

echo "#!/bin/bash
sudo iostat | sudo tee -a /root/log/ioperf.log" | sudo tee ~/iostatbash.sh

sudo chmod a+x ~/iostatbash.sh


echo "*/1 6-22 * * * ~/iostatbash.sh"| tee -a ~/crontab-_`date +"%Y%m%d_%H%M" `

crontab ~/crontab-_`date +"%Y%m%d_%H%M"`。

17) 创建一个脚本,将cpuperf.log写到/root/log中。
每分钟的CPU负载。该脚本应该在每天早上6:00开始,并运行到晚上20:00。
傅森

#!/bin/bash

1TP4i知道要到22日,但现在不好玩了 :d 21:04

#elotte:
#chmod a+x ~/Megoldasaim/Linux-Admin/017.sh

sudo mkdir /root/log

echo "#!/bin/bash
sudo top -b -n 1 | sudo tee -a /root/log/cpuperf.log" | sudo tee ~/cpustatbash.sh

sudo chmod a+x ~/cpustatbash.sh

echo "*/1 6-22 * * * ~/cpustatbash.sh"| tee -a ~/crontab-_`date +"%Y%m%d_%H%M" `

crontab ~/crontab-_`date +"%Y%m%d_%H%M"`。