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

##### 3. linuxadmin Teil der Prüfungsvorbereitung #####

Typische Verwaltungsaufgaben
Installieren Sie das httpd-Paket
Erstellen Sie einen Benutzer und die entsprechende Gruppe als Webmaster für den Website-Administrator
Der öffentliche SSH-Schlüssel des Webmasters lautet wie folgt:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBaVwDbVfjWUudsIHLQFdfekvdm2S1eYBCw7tZx0U1+gaXOd5LX2cq3P2YEBImsoUl0c9R0wOlf7w6H1bKLYtaCeyKByiyYUBQyU/VmeFH9RUOw1uJzIuuHaOMVx1GuONzymGhTpiPi0x+2gsBDLtdJCq5AiH/8QHJ7BcNNqgjK8kIHPT6gaaXgboy6hIw5KGOnw1+y9yGRXhRWT4vAjncoK7P1UO3BTcc42OpDOdet1E5iGzYAd6lIF6lpjPuJBTvdYZDt33I6vXCSBBnI8tlx7HPSj0ULP+kHl8MAY2Nqv/aRBG8LQULT/QhmG7+y4LVtASJGnylcMRt1i3ojiIx root@408cd9fb18a8
Kopieren Sie es an die richtige Stelle.

Das Verzeichnis /var/web wird nicht mehr benötigt, löschen Sie es
Erstellen Sie einen Ordner für eine in Bearbeitung befindliche Website: /var/www
Erstellen Sie hier eine index.html-Datei mit beliebigem Inhalt
Laden Sie das folgende Bild zusammen mit der HTML-Datei in das Verzeichnis /var/www herunter: image
Tipp: Zum Herunterladen können Sie den Befehl wget verwenden, zum Beispiel

Der Ordner /var/www und alle darin enthaltenen Dateien sollten Eigentum des Benutzers und der Gruppe webmaster sein
Legen Sie die Berechtigungen für den Ordner /var/www so fest, dass nur der Benutzer webmaster darauf schreiben kann, aber alle anderen darauf zugreifen können.
Legen Sie die Berechtigungen für die Dateien im Ordner /var/www so fest, dass nur der Benutzer und die Gruppe "webmaster" lesen und schreiben können, alle anderen können nur lesen, und die Dateien können nicht ausgeführt werden

Funktion admintasks()
{
	yum -y install httpd
	gruppenadd webmaster
	benutzeradd -g webmaster webmaster
	#mkdir -p ~/.ssh
	mkdir -p /home/webmaster/.ssh
	touch /home/webmaster/.ssh/authorized_keys

	echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBaVwDbVfjWUudsIHLQFdfekvdm2S1eYBCw7tZx0U1+gaXOd5LX2cq3P2YEBImsoUl0c9R0wOlf7w6H1bKLYtaCeyKByiyYUBQyU/VmeFH9RUOw1uJzIuuHaOMVx1GuONzymGhTpiPi0x+2gsBDLtdJCq5AiH/8QHJ7BcNNqgjK8kIHPT6gaaXgboy6hIw5KGOnw1+y9yGRXhRWT4vAjncoK7P1UO3BTcc42OpDOdet1E5iGzYAd6lIF6lpjPuJBTvdYZDt33I6vXCSBBnI8tlx7HPSj0ULP+kHl8MAY2Nqv/aRBG8LQULT/QhmG7+y4LVtASJGnylcMRt1i3ojiIx root@408cd9fb18a8 >> /home/webmaster/.ssh/authorized_keys
	rm -rf /var/web
	mkdir /var/www
	echo etwas > /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/*

}

##### 3. Prüfung linuxadmin Teil #######

Typische Verwaltungsaufgaben
Erstellen Sie einen neuen Benutzer namens mysql-backup und eine Gruppe mit demselben Namen

Erstellen Sie im Home-Ordner von mysql-backup eine neue Datei namens hello.txt mit beliebigem Inhalt

Erstellen Sie einen Ordner für eine in Bearbeitung befindliche Datenbank: /var/mariadb-data

Laden Sie ein Installationsskript von hier herunter: mariadb_repo_setup nach /var/setup

Tipp: Zum Herunterladen können Sie den Befehl wget verwenden, zum Beispiel

Legen Sie die Berechtigungen für /var/setup/mariadb_repo_setup so fest, dass jeder das Programm ausführen und seinen Inhalt lesen kann, aber nur der Benutzer und die Gruppe des Besitzers darauf schreiben können

Der Ordner /var/mariadb-data und alle darin enthaltenen Dateien sollten dem Benutzer und der Gruppe mysql-backup gehören

Setzen Sie die Berechtigungen für /var/mariadb-data so, dass niemand darauf schreiben kann, aber jeder den Inhalt sehen und auflisten kann.

Installieren Sie das Paket "mariadb-server

Ein /var/web-Verzeichnis existiert im Container, wird aber nicht mehr benötigt, löschen Sie es und seinen Inhalt

Erstellen Sie den Ordner /etc/systemd/system

Erstellen Sie die Datei /etc/systemd/system/mariadb.service mit dem folgenden Inhalt:

[Service]
ExecStart=/usr/sbin/mysqld

Funktion mysql()
{
	groupadd mysql-backup
	useradd -g mysql-backup mysql-backup
	mkdir -p /home/mysql-backup/
	echo "wie Inhalt" >/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 "[Dienst]\nExecStart=/usr/sbin/mysqld" > /etc/systemd/system/mariadb.service
}

mysql

###### LINUXadmin Projektaufgaben ###1T##

 

1) Erlauben Sie dem Benutzer root nicht, sich über SSH anzumelden.

#!/usr/bin/bash
#futtatas vorher:
#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 nein"
what="/etc/ssh/sshd_config"

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

2) Die SElinux-Funktion ist ausgeschaltet.

#!/usr/bin/bash
#futtatas vorher:
#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 ja"
miben="/etc/ssh/sshd_config"

sed -i "s/$ez/$erre/g" $miben
[Benutzer3@linux9 Linux-Admin]$ nano 001.sh
[Benutzer3@linux9 Linux-Admin]$ cat 002.sh
#!/usr/bin/bash
#futtatas vorher:
#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=erzwingend"
this="SELINUX=deaktiviert"
what="/etc/selinux/config"

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

#getenforce
#reboot

3) Dem Server wird eine Festplatte hinzugefügt, die noch nicht in Gebrauch ist
(20 GB) Das Dateisystem sollte sein: 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\np\n\n\n\n\nw\n'|sudo fdisk /dev/sdb
echo --------------------------------------------------------------------------------------------

sudo mkfs.xfs -f /dev/sdb1

4) Fügen Sie es dem Rechner mit dem Einhängepunkt /WEBDATA und dem Volume-Label hinzu:
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) Erstellen Sie unter /WEBDATA ein Portal, eine Schnittstelle und eine Ablage
Bibliothek.

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

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

6) Installieren Sie den HTTPD-Webserver und starten Sie ihn beim Booten.
automatisch.

#!/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) Der Webserver sollte über Port 8080 erreichbar sein. Das Verzeichnis /WEBDATA/bin
sollte das Stammverzeichnis der Webseite sein.

#!/usr/bin/bash
#futtatas vorher:
#chmod a+x ~/Megoldasaim/Linux-Admin/007.sh
sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/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 restart httpd.service

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

8) Erstellen Sie hier eine index.html mit dem Inhalt PORTAL.

#!/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) Erstellen Sie ein Weboperator-Konto mit der primären Gruppe
apache, und seine ID ist 2000.

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

sudo useradd -u 2000 -g apache weboperator

10) Das Volume /WEBDATA sollte apache gehören und der Inhalt des Verzeichnisses sollte vollständig apache gehören.
Berechtigung, während die Mitglieder der Gruppe apache nur Lesezugriff haben. Die Ausnahme hiervon ist die
Portalverzeichnis, das vom Weboperator geschrieben werden kann. Wenn Sie keine anderen Ideen haben, können Sie das
die Eigentumsrechte für die Portalbibliothek ändern.

#!/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) Erstellen Sie einen RSA-Schlüssel für die ssh-Anmeldung mit dem Weboperator
für .

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

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

12) Installieren Sie einen FTP-Server (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) Der Weboperator sollte in der Lage sein, eine Datei per ftp nach /WEBDATA/portal zu kopieren.

#!/usr/bin/bash
#futtatas vorher:
#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 restart vsftpd.service

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

14) Erstellen Sie ein Schnittstellenkonto mit apache als primäre Gruppe,
und seine ID: 2001.

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

sudo useradd -u 2001 -g apache interface
sudo echo -e 'Passwort1\nPasswort1'|sudo passwd interface

15) Die Schnittstelle sollte in der Lage sein, Dateien über ftp nach /WEBDATA/interface hochzuladen.

#!/usr/bin/bash
#futtatas vorher:
#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 "Schnittstelle" | 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 restart vsftpd.service

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

16) Erstellen Sie ein Skript, das in das Verzeichnis /root/log als ioperf.log schreibt
Das Skript sollte jeden Morgen um 6:00 Uhr beginnen und bis ~20:00 Uhr laufen.
fusson.

#!/bin/bash

1TP4I WEISS, DASS ES BIS 22 IST, ABER JETZT IST ES NICHT LUSTIG :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-_`Datum +"%Y%m%d_%H%M"`

17) Erstellen Sie ein Skript, das in /root/log als cpuperf.log schreibt
CPU-Last pro Minute. Das Skript sollte jeden Morgen um 6:00 Uhr beginnen und bis ~20:00 Uhr laufen
fusson

#!/bin/bash

1TP4I WEISS, DASS ES BIS 22 IST, ABER JETZT IST ES NICHT LUSTIG :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-_`Datum +"%Y%m%d_%H%M"`