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"`
Einen Kommentar hinterlassen