https://github.com/green-fox-academy/safely-syllabus/tree/master/materialreview/scripts/bash
##### 3. linuxadmin часть подготовки к экзамену ######
Типичные задачи администратора
Установите пакет httpd
Создайте пользователя и соответствующую группу как webmaster для администратора сайта
Открытый ключ SSH веб-мастера выглядит следующим образом:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBaVwDbVfjWUudsIHLQFdfekvdm2S1eYBCw7tZx0U1+gaXOd5LX2cq3P2YEBImsoUl0c9R0wOlf7w6H1bKLYtaCeyKByiyYUBQyU/VmeFH9RUOw1uJzIuuHaOMVx1GuONzymGhTpiPi0x+2gsBDLtdJCq5AiH/8QHJ7BcNNqgjK8kIHPT6gaaXgboy6hIw5KGOnw1+y9yGRXhRWT4vAjncoK7P1UO3BTcc42OpDOdet1E5iGzYAd6lIF6lpjPuJBTvdYZDt33I6vXCSBBnI8tlx7HPSj0ULP+kHl8MAY2Nqv/aRBG8LQULT/QhmG7+y4LVtASJGnylcMRt1i3ojiIx root@408cd9fb18a8
Скопируйте его в нужное место.
Каталог /var/web больше не нужен, удалите его
Создайте папку для создаваемого веб-сайта: /var/www
Создайте здесь файл index.html с произвольным содержимым
Загрузите следующее изображение в каталог /var/www вместе с HTML-файлом: image
Совет: для загрузки можно использовать команду wget, например
Папка /var/www и все файлы в ней должны принадлежать пользователю и группе webmaster
Установите разрешения на папку /var/www так, чтобы только пользователь webmaster мог писать в нее, но все могли видеть и иметь к ней доступ.
Установите разрешения на файлы в папке /var/www так, чтобы только пользователь и группа webmaster могли читать и писать, все остальные могли читать, и файлы не могли быть запущены
функция admintasks()
{
yum -y install httpd
вебмастер группы
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 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/*
}
##### 3-й экзамен linuxadmin часть #######
Типичные задачи администратора
Создайте нового пользователя с именем mysql-backup и группу с тем же именем
Создайте новый файл в домашней папке mysql-backup с именем hello.txt с любым содержимым
Создайте папку для базы данных в процессе работы: /var/mariadb-data
Загрузите установочный скрипт отсюда: mariadb_repo_setup в /var/setup
Совет: для загрузки можно использовать команду wget, например
Установите права доступа к /var/setup/mariadb_repo_setup так, чтобы каждый мог запустить его и каждый мог прочитать его содержимое, но только пользователь и группа owner могли писать в него
Папка /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/sbin/mysqld" > /etc/systemd/system/mariadb.service
}
mysql
Задачи проекта LINUXadmin ######## ####
1) Запретите пользователю root входить в систему через 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) На сервер добавляется диск, который еще не используется
(20 ГБ). Файловая система должна быть: 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
<<ком
echo "n
p
1
w
"|sudo fdisk /dev/sdb
com
#sudo sfdisk /dev/sdb
echo -e 'n\np\n\n\n\n\n\n\nw\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/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/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) Создайте здесь index.html с содержимым 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) Создайте учетную запись веб-оператора с основной группой
apache, а его идентификатор - 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-ключ для входа в систему 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\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) Веб-оператор должен иметь возможность копировать файл по 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"
в 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) Создайте учетную запись интерфейса с 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"
в 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 restart vsftpd.service
sudo firewall-cmd --permanent --zone=public --add-service=ftp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
16) Создайте скрипт, который записывает в каталог /root/log файл ioperf.log
IO нагрузка в минуту. Сценарий должен запускаться каждое утро в 6:00 утра и работать до ~20:00 вечера.
фуссон.
#!/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) Создайте скрипт, который записывает в /root/log файл cpuperf.log
Загрузка процессора в минуту. Сценарий должен запускаться каждое утро в 6:00 утра и работать до ~20:00 вечера
fusson
#!/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"`.
Оставить комментарий