https://github.com/green-fox-academy/safely-syllabus/tree/master/materialreview/scripts/bash
##### 3. vizsgafelkészítő linuxadmin része #####
Tipikus Admin feladatok
Telepítsd a httpd csomagot
Hozz létre egy usert és a hozzá tartozó csoportot a weboldalak adminisztrátorának webmaster néven
A webmaster SSH publikus kulcsa ez:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBaVwDbVfjWUudsIHLQFdfekvdm2S1eYBCw7tZx0U1+gaXOd5LX2cq3P2YEBImsoUl0c9R0wOlf7w6H1bKLYtaCeyKByiyYUBQyU/VmeFH9RUOw1uJzIuuHaOMVx1GuONzymGhTpiPi0x+2gsBDLtdJCq5AiH/8QHJ7BcNNqgjK8kIHPT6gaaXgboy6hIw5KGOnw1+y9yGRXhRWT4vAjncoK7P1UO3BTcc42OpDOdet1E5iGzYAd6lIF6lpjPuJBTvdYZDt33I6vXCSBBnI8tlx7HPSj0ULP+kHl8MAY2Nqv/aRBG8LQULT/QhmG7+y4LVtASJGnylcMRt1i3ojiIx root@408cd9fb18a8
Másold a megfelelő helyre.
A /var/web könyvtárra már nincs szükség, töröld
Hozz létre egy mappát egy készülő weboldalnak: /var/www
Hozz létre egy index.html fájlt ide tetszőleges tartalommal
Töltsd le a következő képet a HTML fájl mellé a /var/www könyvtárba: kép
Tipp: letöltéshez használhatod például a wget parancsot
A /var/www mappa, és a benne lévő összes fájl tulajdonosa legyen a webmaster user és csoport
A /var/www mappa jogosultságait úgy állítsd be, hogy csak a webmaster user tudja írni, viszont mindenki láthassa és be tudjon lépni a könyvtárba.
A /var/www mappán belüli fájlok jogosultságát úgy állítsd be, hogy a webmaster user és group tudja írni és olvasni, mindenki más tudja olvasni, és ne lehessen futtatni a fájlokat
function admintasks()
{
yum -y install httpd
groupadd webmaster
useradd -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 valami > /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. vizsga linuxadmin része #####
Tipikus Admin feladatok
Hozz létre egy új felhasználót mysql-backup néven, és a hozzá tartozó csoportot ugyanezen a néven
Hozz létre egy új fájlt a mysql-backup home mappájában hello.txt néven tetszőleges tartalommal
Hozz létre egy mappát egy készülő adatbázisnak: /var/mariadb-data
Tölts le egy telepítő scriptet innen: mariadb_repo_setup a /var/setup mappába
Tipp: letöltéshez használhatod például a wget parancsot
Állítsd be a /var/setup/mariadb_repo_setup jogosultságait úgy, hogy mindenki tudja futtatni, és mindenki tudja olvasni a tartalmát , de csak a tulajdonos user és csoport tudja írni
A /var/mariadb-data mappa, és a benne lévő összes fájl tulajdonosa legyen a mysql-backup user és csoport
A /var/mariadb-data mappa jogosultságait úgy állítsd be, hogy senki ne tudja írni, viszont mindenki láthassa és tudja listázni a tartalmát.
Telepítsd a mariadb-server nevű csomagot
A konténerben létezik egy /var/web könyvtár, azonban már nincs rá szükség, töröld a tartalmával együtt
Hozd létre a /etc/systemd/system mappát
Hozd létre a /etc/systemd/system/mariadb.service fájlt az alábbi tartalommal:
[Service]
ExecStart=/usr/sbin/mysqld
function mysql()
{
groupadd mysql-backup
useradd -g mysql-backup mysql-backup
mkdir -p /home/mysql-backup/
echo "tetszoleges tartalom" >/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/sbin/mysqld" > /etc/systemd/system/mariadb.service
}
mysql
###### LINUXadmin projektfeladatok #####
1) Tiltsuk le, hogy a root user SSH-n be tudjon lépni.
#!/usr/bin/bash
#futtatas elott:
#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"`
ezt="#PermitRootLogin prohibit-password"
erre="PermitRootLogin no"
miben="/etc/ssh/sshd_config"
sed -i "s/$ezt/$erre/g" $miben
2) SElinux funkciót kapcsoljuk ki.
#!/usr/bin/bash
#futtatas elott:
#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"`
ezt="#PermitRootLogin prohibit-password"
erre="PermitRootLogin yes"
miben="/etc/ssh/sshd_config"
sed -i "s/$ezt/$erre/g" $miben
[User3@linux9 Linux-Admin]$ nano 001.sh
[User3@linux9 Linux-Admin]$ cat 002.sh
#!/usr/bin/bash
#futtatas elott:
#chmod a+x ~/Megoldasaim/Linux-Admin/002.sh
sudo cp /etc/selinux/config /etc/selinux/config-_`date +"%Y%m%d_%H%M%S"`
ezt="SELINUX=enforcing"
erre="SELINUX=disabled"
miben="/etc/selinux/config"
sudo sed -i "s/$ezt/$erre/g" $miben
#getenforce
#reboot
3) A szerverhez hozzá van adva egy disk, ami még nincs használatban
(20GB). A fájl rendszer legyen: 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\nw\n'|sudo fdisk /dev/sdb
echo --------------------------------------------------------------------------------------------
sudo mkfs.xfs -f /dev/sdb1
4) Adja hozzá a géphez /WEBDATA mount point-tal, a kötet címkéje pedig:
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) A /WEBDATA könyvtár alatt hozz létre egy portal, egy interface és egy bin
nevű könyvtárat.
#!/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) Installáld fel a HTTPD web szervert, gép indulásakor induljon
automatikusan.
#!/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) A web szerver a 8080-as porton legyen elérhető. A /WEBDATA/bin könyvtár
legyen a web oldal root dirtectory-ja.
#!/usr/bin/bash
#futtatas elott:
#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"`
ezt="Listen 80"
erre="Listen 8080"
miben="/etc/httpd/conf/httpd.conf"
sudo sed -i "s/$ezt/$erre/g" $miben
ezt="/var/www/html"
erre="/WEBDATA/bin"
miben="/etc/httpd/conf/httpd.conf"
sudo sed -i "s|$ezt|$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) Hozz létre itt egy index.html-et, tartalma legyen: 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) Hozzon létre egy weboperator account-ot, aminek az elsődleges csoportja az
apache, és az ID-ja: 2000.
#chmod a+x ~/Megoldasaim/Linux-Admin/009.sh
sudo useradd -u 2000 -g apache weboperator
10) /WEBDATA kötet tulajdonosa legyen apache. A könyvtár tartalmát apache teljes
joggal, míg az apache csoport tagjai csak olvasási joggal láthatják. Ez alól kivételt a
portal könyvtár jelent, amit a weboperator írhat is. Ha nincs más ötleted, akkor a
tulajdonosi jogokon módosíthatsz a portal könyvtár esetében.
#!/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) Hozz létre egy ssh-s belépéshez használható RSA kulcsot a weboperator
számára .
#!/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) Installálj egy FTP szervert (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) A weboperator tudjon file-t felmásolni ftp-n a /WEBDATA/portal könyvtárba.
#!/usr/bin/bash
#futtatas elott:
#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"`
ezt="listen=NO"
erre="listen=YES"
miben="/etc/vsftpd/vsftpd.conf"
sudo sed -i "s/$ezt/$erre/g" $miben
ezt="listen_ipv6=YES"
erre="listen_ipv6=NO"
miben="/etc/vsftpd/vsftpd.conf"
sudo sed -i "s/$ezt/$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) Hozz létre egy interface account-ot, aminek az elsődleges csoportja az apache,
és az ID-ja: 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) Az interface tudjon file-t felmásolni ftp-n a /WEBDATA/interface könyvtárba.
#!/usr/bin/bash
#futtatas elott:
#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"`
ezt="listen=NO"
erre="listen=YES"
miben="/etc/vsftpd/vsftpd.conf"
sudo sed -i "s/$ezt/$erre/g" $miben
ezt="listen_ipv6=YES"
erre="listen_ipv6=NO"
miben="/etc/vsftpd/vsftpd.conf"
sudo sed -i "s/$ezt/$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 restart vsftpd.service
sudo firewall-cmd --permanent --zone=public --add-service=ftp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
16) Hozz létre script-et, ami a /root/log könyvtárba ioperf.log néven kiírja
percenkénti IO terhelést.A script induljon minden reggel 6-kor, és este ~20:00-ig
fusson.
#!/bin/bash
#TUDOM, HOGY 22-ig KELLETT, DE AKKOR MOST NEM FUTNA :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) Hozz létre script-et, ami a /root/log könyvtárba cpuperf.log néven kiírja
percenkénti CPU terhelést. A script induljon minden reggel 6-kor, és este ~20:00-ig
fusson
#!/bin/bash
#TUDOM, HOGY 22-ig KELLETT, DE AKKOR MOST NEM FUTNA :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"`
Hagyj üzenetet