Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions bash_script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
#!/bin/bash
set -euo pipefail

echo "Начинаем работу"

echo "Содержимое файла fstab:"
cat /etc/fstab

echo ""

echo "Информация о блочных устройствах:"
lsblk

echo ""

echo "Проверяем наличие нового диска и создаем FS"

if -b /dev/sdb ; then
echo "Найден диск /dev/sdb"
echo "Создаем раздел на /dev/sdb"
echo -e "g\nn\n\n\n\n\nw" | sudo fdisk /dev/sdb

echo "Создаем файловую систему ext4"
sudo mkfs.ext4 /dev/sdb1

echo "Создаем точку монтирования /mnt/mydisk"
sudo mkdir -p /mnt/mydisk

echo "Монтируем диск"
sudo mount /dev/sdb1 /mnt/mydisk

echo "Работа с файлами в /mnt/mydisk"

cd /mnt/mydisk

echo "Создаем тестовые файлы..."
sudo touch file1.txt file2.txt file3.txt
sudo mkdir my_folder

echo "Это тестовый файл 1" | sudo tee file1.txt
echo "Это тестовый файл 2" | sudo tee file2.txt
echo "Это тестовый файл 3" | sudo tee file3.txt

echo "Содержимое каталога /mnt/mydisk"
ls -la

echo "Отмонтируем диск"
cd ~
sudo umount /mnt/mydisk

echo "Проверяем что в /mnt/mydisk пусто после отмонтирования"
ls -la /mnt/mydisk/ || echo "Каталог пуст"

echo "Добавляем запись в fstab"

UUID=$(sudo blkid /dev/sdb1 -s UUID -o value)
echo "UUID диска: $UUID"

if ! grep -q "$UUID" /etc/fstab; then
echo "Добавляем запись в fstab"
echo "UUID=$UUID /mnt/mydisk ext4 defaults 0 2" | sudo tee -a /etc/fstab
else
echo "Запись для этого диска уже есть в fstab"
fi

echo "Проверяем fstab"
sudo mount -a
echo "Проверка прошла успешно!"

echo "Монтируем диск обратно для проверки"
sudo mount /dev/sdb1 /mnt/mydisk

echo "Проверяем что файлы сохранились"
ls -la /mnt/mydisk/

echo "Отмонтируем диск"
sudo umount /mnt/mydisk
else
echo "Диск /dev/sdb не найден"
fi

echo ""
echo "Конец скрипта"
77 changes: 77 additions & 0 deletions task1/task1and2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
Задание 1:

1) Переместиться между директориями
cd
2) Вывести список файлов в директории
ls
3) Вывести список Всех файлов в директории
ls -a
4) Создать папку с подпапками
mkdir folder
cd folder
mkdir folder1
mkdir folder2
5) Внутри папки создать файлик и записать в него что-нибудь
vim file
cat file
6) Переместить файл из одно директории в другую
mv file folder1
ls
cd folder1
ls
7) скопировать файл из одной директории в другую
cp ~/folder/folder1/file ~/folder/folder2/
8) переименовать файл
mv file file1
9) сравнить содержимое файла
cd ~/folder/folder2
cat file1
cd ~/folder/folder1
cat file
vimdiff ~/folder/folder1/file ~/folder/folder2/files
10) отсортировать содержимоей файла по возрастанию и убыванию
vim numbers
sort numbers
sort -r numbers
11) удалить все папки и файлы
cd ~
rm -rf folder

Задание 2:

1) Как работают команды >,>>?
'>' - перезаписывает файл
echo "1232 > file.txt

'>>' - добавляет в конец файла
echo "456546" >> file.txt
2) Что такое перенаправление ввода? stderr,stdout;
stdout - поток для обычных сообщений
stderr - поток для сообщений об ошибках
3) Выести содержание файла не используя текстовые редакторы;
cat file.txt
4) Создать файл с содержимым не используя текстовые редактор;
echo "tralala" > newfile.txt
cat newfile.txt
5) пернеаправить stdout в stderr и обратно на примере команды kinit, ping, tracert
ping example.com 1>&2 (stdout в stderr)
ping example.com 2>&1 (наоборот)

6) чем отличаются stdout и stderr
stdout:
Для обычного, ожидаемого вывода программы
Результаты работы, данные, информация
Пример: список файлов, содержимое файла, результаты вычислений
stderr:
Для сообщений об ошибках и диагностической информации
Предупреждения, ошибки, отладочная информация
Пример: "файл не найден", "недостаточно прав", "неверный синтаксис"
7) что такое stdin?
stdin - это стандартный поток ввода в unix подобных системах.
8) как отправить весь вывод команды в пустоту?
Перенаправление и stdout и stderr в /dev/null
ls file1 file2 > /dev/null 2>&1
Только stdout в пустоту:
echo "этот вывод не увидим" > /dev/null
Только stderr в пустоту:
ls file2 2> /dev/null
45 changes: 45 additions & 0 deletions task2/task1and2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
Задание 1:

1) Добавьте пользователей user1 и user2:
1.1) user1 - оболочка bash
sudo useradd -s /bin/bash user1
1.2) user2 - оболочка sh
sudo useradd -s /bin/sh user2
1.3) установите им пароли
sudo password user1
sudo password user2

2) Назначьте пользователю 1 группу администраторов, польователя 2 добавте в группу пользователя 1
sudo usermod -aG sudo user1
sudo usermod -aG user1 user2
3) Что такое права доступа? Выведите права доступа на файлы в директории пользователя
Права доступа - это набор правил, определяющих, какие действия пользователи могут выполнять с файлами и каталогами.
ls -la ~user1/
ls -la ~user2/
4) Как изменить права на файлы? Создайте файл который будет на который у всез пользователей будут все возможные права
sudo mkdir /folder
sudo touch /folder/file
sudo chmod 777 /folder/file
ls -l /folder/file
5) Как называется учётная запись встренного администратора в linux?
root
6) Как выполнить команду от имени администратора?
sudo su
7) Есть ли ограничения у суперпользователя?
некоторые защищенные файлы, файловые системы, которые только для прочтения
8) Удалите пользователя 2 с помощью пользователя 1.
sudo userdel user2
9) Как можно изменить владельца папки? измените владельца папки из пункта 4
sudo chown user1 folder
sudo chown user1:user1 folder

Задание 2:
1. Запретите пользователю user1 из предыдщуего задания выполнять вход в систему
sudo usermod -L user1
2. Как вы это сделали?
Заблокировал пароль пользователя
3. Какие ещё способы это сделать вы знаете?
Полная блокировка учетной записи
4. Можно ли создать пользователей с одинаковыми username?

Нет, потому что username должен быть уникальным в системе, иначе при создании выдаст ошибку
123 changes: 123 additions & 0 deletions task3/all_tasks_from_3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
Задание 1:

1) Какие файловые системы вы знаете?
FAT32, NTFS - для Windows
ext2, ext3, ext4, XFS, Btrfs - для Linux
2) Как можно классифиировать файловые системы? в чём отличия??
Файловые системы различаются по своему назначению: дисковые предназначены для физических носителей, сетевые обеспечивают доступ к файлам через сеть, а виртуальные работают с системной информацией в оперативной памяти. По структуре данных они делятся на журналируемые, которые сохраняют целостность данных через ведение журнала изменений, и нежурналируемые, где такая защита отсутствует. По архитектуре хранения различают блочные системы, работающие с фиксированными блоками данных, и объектные, где данные хранятся как независимые объекты с метаданными.
3) Какие файловые системы используются в linux?
ext4, XFS, Btrfs, ZFS
4) Как можно создать файловую систему на диске?
Создается раздел диска и форматируется
5) Как можно подключить диск в систему, что такое монтирование?
Монтирование диска - подключение файловой системы, находящейся на устройстве, к определенной директории в дереве каталогов.
6) файловая система procfs, cifs, tpmfs,sysfs. В чём особенности каждой из них?
'procfs' - виртуальная ФС в Linux, предоставляет доступ к информации о процессах и системе в реальном времени через файлы в /proc
'cifs' - сетевая ФС для доступа к общим ресурсам Windows/SMB, поддерживает аутентификацию, шифрование и работу с правами доступа

'tmpfs' - ФС в оперативной памяти для временных файлов, обеспечивает высокую скорость доседа, но данные теряются при перезагрузке

'sysfs' - виртуальная ФС в Linux, отображает информацию о устройствах, драйверах и ядре системы через файлы в /sys
7) Как можно получить информацию о системе используя лишь команду cat?
вывести ифонмацию о процессоре и состоянии памяти системы

Команда cat может читать виртуальные файлы в каталогах /proc и /sys
Вывод информации о процессоре:
cat /proc/cpuinfo
Вывод состояния памяти:
cat /proc/meminfo

Задание 2:
1) Какая структура каталогов в linux? выведите список файлов в корне системы
Файловая структура древовидная
Чтобы просмотреть нужно ввести ls /
2) Где хранятся папки пользователей в системе?
Папки пользователей хранятся в каталоге /home/. Каждый пользователь (кроме root) имеет свою подпапку здесь
3) Где домашняя папка суперпользователя?
/root/
4) Где хранятся основые конфигурационные файлы в системе?
/etc/
5) ЧТо за папки /bin,/sbin,usr/sbin,/usr/sbin
/bin - основные бинарные файлы для всех пользователей, необходимые для работы системы в однопользовательском режиме
/sbin - системные бинарные файлы для администратора, необходимые для загрузки и восстановления системы
/usr/bin - дополнительные пользовательские программы, не критичные для базовой работы системы
/usr/sbin - дополнительные системные утилиты для администратора, не требуются при загрузке системы
Основное отличие: /bin и /sbin содержат критически важные программы для загрузки системы, а /usr/bin и /usr/sbin - дополнительные программы

Задание 3:

1. Выведите содержимое fstab. Что хранится в fstab?
cat /etc/fstab
В fstab хранится информацию о всех смонтированных файловых системах. Он сообщает системе, что, куда, как и когда монтировать при загрузке.
2. Добавьте в виртуальную машину ещё один диск
3. Узнайте как ситема видит ваш диск - выведите информацию о блочных устройствах
lsblk
4. С помощью полученной информации создайте на диске таблицу разделов и фаловую систему ext4
sudo fdisk /dev/sdb
sudo mkfs.ext4 /dev/sdb1
lsblk
5. Примонитруте диск в каталог /mnt
sudo mount /dev/sdb1 /mnt
6. Зайдите в каталог и создайте там файлы
cd /mnt
sudo touch 123.txt
sudo touch 1234.txt
7. Отмонтируйте диск и проверье остались ли файлы
sudo umount /mnt
ls /mnt
8. Сделайте так чтобы диск автоматически подключался при загрузке систем ( добавьте информацию о нём с fstab)
sudo blkid /dev/sdb1
sudo nano /etc/fstab
9. Проверьте корретность записанных в fstab данных перед перезагрузкой
sudo mount -a
10. Перезагрущите систему и убедитесь что диск был подключён к системе
sudo systemctl reboot
lsblk

Задание 4:
1. Raid массивы, что такое икакие бывают
RAID-массивы - это объединение нескольких физических дисков в один логический для повышения надежности и/или производительности.
'RAID 0' - чередование данных на нескольких дисках. Плюсы: высокая скорость. Минусы: нет надежности - при отказе одного диска теряются все данные.
'RAID 1' - зеркалирование данных на двух дисках. Плюсы: высокая надежность. Минусы: эффективная емкость 50%.
'RAID 5' - чередование с контролем четности. Минимально 3 диска. Плюсы: хорошее соотношение надежности и емкости. Минусы: падение производительности при отказе диска.
'RAID 10' - зеркало из страйпов. Комбинация RAID 0 и RAID 1. Плюсы: высокая скорость и надежность. Минусы: дорого - требуется минимум 4 диска.
2. Добавьте в виртуальную машину 2 диска отформатируйте их в ext4
sudo fdisk /dev/sdc
sudo mkfs.ext4 /dev/sdc1
sudo fdisk /dev/sdd
sudo mkfs.ext4 /dev/sdd1
lsblk
3. Создайте из них raid 0 массив
sudo mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdc1 /dev/sdd1

cat /proc/mdstat
sudo mdadm --detail /dev/md0

sudo mkfs.ect4 /dev/md0

sudo mkdir /mnt/raid0
sudo mount /dev/md0 /mnt/raid0
sudo touch /mnt/raid0/test_file_raid.txt
ls -la /mnt/raid0/
4. Проверье всё ли работает
cat /proc/mdstat
sudo mdadm --detail /dev/md0
sudo dd if=/dev/zero of=/mnt/raid0/test.bin bs=1M count=100
5. Удалите raid0 и создайте raid1
sudo umoun /mnt/raid0
sudo mdadm --stop /dev/md0

sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1
cat /proc/mdstat
sudo mdadm --detail /dev/md1

sudo mkfs.ext4 /dev/md1
sudo mkdir /mnt/raid1
sudo mount /dev/md1 /mnt/raid1
sudo touch /mnt/raid1/test_file_raid1.txt
6. В чём между ними разница?
Ключевое отличие: RAID 0 жертвует надежностью ради скорости, RAID 1 жертвует емкостью ради надежности.
7. Есть ли файловые системы которые поддерживают raid массивы без стороненго ПО
zfs и btrfs
8. Можно ли создать raid массив во время установки системы?
Да, во время установки системы на этапе разметки дисков выбрать ручную разметку, создать raid-устройство, выбрать тип, добавить физ. диски в массив и создать файловую систему на raid-устройстве.
Loading