Главная страница

Лабораторная работа. Администрирование Linux. Пояснительная_записка. Лабораторная работа. Администрирование Linux Модуль Инсталляция системы Установка операционной системы


Скачать 5.96 Mb.
НазваниеЛабораторная работа. Администрирование Linux Модуль Инсталляция системы Установка операционной системы
АнкорЛабораторная работа. Администрирование Linux
Дата01.02.2023
Размер5.96 Mb.
Формат файлаdocx
Имя файлаПояснительная_записка.docx
ТипЛабораторная работа
#915563


Лабораторная работа. Администрирование Linux

Модуль 1. Инсталляция системы Установка операционной системы


  • Подготовка стенда

  • Установка системы (CentOS)

  • Автоматическая и ручная разметка диска











1. Создайте новую виртуальную машину (ВМ) со следующими параметрами:

  • RAM 4Gb

  • HDD 120Gb (динамический)

  • Сетевой адаптер (NAT)

  • DVD

Количество ядер CPU и другие параметры можно оставить по умолчанию.

2. Смонтируйте образ дистрибутива (ISO) к DVD ВМ.

3. Запустите ВМ

4. Следуя диалогам на экране, выполните установку в варианте

Workstation, использование диска по умолчанию. Настройка сети – по информации от инструктора.

5. В процессе установки задайте пароль для пользователя root и создайте пользователя-администратора.

Дождитесь завершения процесса установки.



6. Выполните вход в систему для проверки работоспособности системы.


Модуль 2. Основы работы с конфигурационными файлами


  • Система помощи и ее возможности

  • Текстовый редактор vim

  • Символы групповых операций ( bash )

  • Потоки ввода вывода

  • Каналы

  • Практика

2. Ознакомьтесь со справочной системой по графической среде (GNOME HELP)

Меню Activities->Help



3. Для нас важнее help-система, работающая из командной строки.

Откройте терминал (командную строку)

Меню Activities->Terminal



4. Команда man поможет получить информацию по различным утилитам и конфигурационным файлам системы:

Информация по самой утилите man (обратите внимание на список секций)

$ man man



Для выхода из режима просмотра нажмите "q"

5. Информация по утилите passwd (используется для изменения пароля)



6. Возможно совпадение имен утилит и файлов конфигурации. Например, чтобы узнать подробности и структуре файла /etc/passwd, используйте команду:

$ man 5 passwd



5 – это номер секции. Конфигурационные файлы относятся к 5 секции.

7. Редактор vi (vim)

Откройте для редактирования файл /etc/passwd:

$ vi /etc/passwd



vi очень сложен для неподготовленного пользователя, поэтому всегда можно воспользоваться редакторами с более привычным интерфейсом, например nano:

$ nano /etc/passwd



8. Работу терминала обеспечивает приложение bash, позволяющее нам выполнять различные команды с файлами:

$ ls # показывает все файлы в текущей директории



$ ls *.txt # показывает все файлы в текущей директории с расширением *.txt



9. По умолчанию утилиты выдают результат работы в терминал (на экран)

$ ls -l



Мы можем перенаправить вывод результатов в другое место, например в файл

$ ls -l > file1.txt



В текущей директории будет создан файл file1.txt, посмотреть содержимое которого можно текстовым редактором или утилитой cat

$ cat file1.txt



10. Иногда необходимо результат работы одной утилиты передать для обработки другой утилитой. В этом случае используем символ <|>

$ cat file1 | grep Music

Утилита grep показала только те строки из файла file1.txt, в которых есть слово Music


Модуль 3 Управление файлами из командной строки


  • Иерархия файловой системы

  • Основные команды работы с файлами

  • Жесткие и символические ссылки

1. Откройте терминал

2. Посмотрите содержание корневого каталога:

$ ls /



3. Посмотрите содержание каталога /home

$ ls /home



Команда ls имеет множество опций. Посмотрите список файлов в домашнем каталоге:

$ ls



и сравните с расширенным списком:

$ ls -l



4. Выполните команду перехода в домашний каталог пользователя:

$ cd

или

$ cd



5. Создайте файл file1 в текущем каталоге:

$ touch file1

6. Проверьте наличие файла:

$ ls file1



7. Используя любой текстовый редактор, внесите произвольный текст в file1:

$ nano file1





8. Создайте копию файла file1 с именем file2:

$ cp file1 file2

9. Посмотрите содержимое file2:

$ cat file2



содержимое должно быть идентично file1.



10. Создайте в домашнем каталоге новый каталог с именем dir1:

$ mkdir dir1

11. Переместите файл file2 в каталог dir1:

$ mv file2 dir1

12. Снова посмотрите содержимое file2:

Выдается сообщение об ошибке. Почему?



13. Используя относительный путь к файлу, посмотрите содержимое file2:

$ cat dir1/file2



14. Удалите каталог dir:

$ rmdir dir1

Выдается ошибка - в каталоге имеются файлы



15. Можно предварительно удалить все файлы в каталоге, затем

повторить команду удаления:

$ rm dir1/*

$ rmdir dir1

или воспользоваться командой rm для удаления каталога вместе со всем содержимым:

$ rm -r dir1



16. Посмотрите содержимое файла /etc/passwd:

$ cat /etc/passwd

На экран выводится достаточно длинный список системных пользователей.



17. Найдем в этом списке строки, содержащие слово root:

$ grep root /etc/passwd



18. Для просмотра больших текстовых файлов удобна утилита less:

$ less /etc/passwd



Вы попадаете в режим просмотра с возможностью перемещения по тексту и поиска.

Для перемещения можно использовать клавиши со стрелками, для поиска используется клавиша "/" и далее текст для поиска, для выхода из режима просмотра - клавиша "q".



19. Для вывода только начальных или только последних строк большого текстового файла можно использовать утилите head и tail:

$ head /etc/passwd

$ tail /etc/passwd

По умолчанию показывается 10 строк. Это количество можно указывать:

$ head -3 /etc/passwd

$ tail -5 /etc/passwd



20. Удалите файл file1:

$ rm file1


Модуль 4. Потоковые редакторы


  • Регулярные выражения

  • Потоковые редакторы (sed , awk)

  • Архиваторы ( tar, gzip, bzip2 )

1. Откройте терминал

2. Создайте копию файла /etc/passwd в своей домашней директории:

$ cp /etc/passwd

3. Посмотрим начало файла passwd

$ head passwd



Первая строка содержит описание пользователя root. Заменим слово root на слово test

$ sed -e 's/root/test/g' passwd | head

4. При поиске и замене текста можно использовать регулярные выражения

$ sed -e 's/bash$/sh/g' passwd | head

Была выполнена замена слова bash на слово sh, но только в том случае, если слово bash завершало строку



5. awk – это скорее язык программирования, позволяющий быстро решать несложные задачи в командной строке

Сравните результат работы команд

$ ls -l

и

$ ls -l | awk ' {print $1,$3,$5} '



Вторая команда показала только первый, третий и пятый столбец

6. Утилита gzip позволяет сжать файл:

$ gzip passwd

Выполните команду

$ ls -l

Обратите внимание, что файла passwd был заменен файлом passwd.gz

Распаковать файл можно командой

$ gunzip passwd.gz

В результате файл passwd будет восстановлен в исходном виде



7. Утилита bzip2:

Сжать файл:

$ bzip2 passwd

В результате появляется файл passwd.bz2

Распаковать файл

$ bunzip2 passwd.bz2



8. Утилита tar

Создать архив без компресии:

$ tar -cvf passwd.tar passwd

Создать архив с компресией:

$ tar -czvf passwd.tar.gz passwd

Сравните размеры файлов passwd.tar и passwd.tar.gz

$ ls -l passwd.tar*



Удалите файл passwd

$ rm passwd

Восстановим файл из несжатого архива:

$ tar -xvf passwd.tar

Восстановим файл из сжатого архива:

$ tar -xzvf passwd.tar.gz


Модуль 5. Основы работы в терминале


  • Виртуальные терминалы

  • Повышение привилегий пользователя ( su , sudo )

  • Подключение к системе по протоколу ssh

  • Генерация ключей ssh

1. В Centos8 по умолчанию используются 6 терминалов, включение которых выполняется клавишами ++ ... ++

Графическая среда занимает терминал № 1. При включении остальных терминалов графика выключается и мы попадаем в командную строку.

В разных версиях графика может занимать другие терминалы. В Centos 8 выход в терминал без графики приводит к блокировке сессии в терминале 1 (графика)

2. Выполнение команд можно продолжать как в псевдотерминале на десктопе GNOME, так и в любом виртуальном терминале.

Откройте терминал

Для выполнения некотрых привилегированных действий требуются права администратора (root)

Команда sudo позволяет выполнить любую команду с правами администратора

$ ls /root # выдает ошибку - не хватает прав

$ sudo ls /root # работает после ввода пароля



Уберем запрос пароля

$ sudo visudo

Поставим комментарий в строку (# в начале строки)

%wheel ALL=(ALL) ALL

Уберем комментарий в строке

# %wheel ALL=(ALL) NOPASSWD: ALL

Сохраним изменения:

, <:>, ,



Команда

$ sudo su /root

не должна запрашивать пароль



3. Команда su позволяет открыть сессию от именно пользователя root

$ su -



Запрашивается пароль root.

$ sudo su -

пароль не запрашивает



После выполнения команды su мы находимся в сессии root, о чем говорит символ # в командной строке



После выполнения всех команд, которые мы хотели выполнить в сессии root, закрыть ее командой exit



$ exit

и мы возвращаемся в ту сессию, откуда вызывали su

4. Для подключения к удаленным компьютерам можно использовать ssh

$ ssh root@localhost

запрашивается пароль root. При первом подключении выдается запрос на обмен ключами шифрования, следует ответить



5. Подключение по ssh без пароля.

Генерируем ключи шифрования:

$ ssh-keygen

на запросы нажимаем



В результате создается директория .ssh и несколько файлов в ней.

Отправим открытый ключ на хост-получатель:

$ ssh-copy-id -i .ssh/id_rsa.pub root@localhost



Далее мы можем подключаться по ssh без пароля

$ ssh root@localhost



Или можем сразу передать команду для выполнения

$ ssh root@localhost ls -l


Модуль 6. Управление локальными пользователями и доступом к файлам при помощи разрешений файловой системы Linux


  • Пользователи и группы

  • Менеджмент учетных записей

  • Права доступа

  • Права при создании объектов ( umask )

  • Специализированные права доступа ( SUID / SGID / Sticky bit )

  • Файл /etc/passwd - список пользователей

  • Файл /etc/group - список групп

  • Файл /etc/shadow - БД паролей и параметров безопасности

1. Команды для работы с пользователями:

Выполняем с правами root:

$ sudo su -

Создание нового пользователя:

# useradd test

Установка домашнего каталога:

# usermod -d /home/test/ test

Изменение пароля пользователя:

# passwd test



Другие утилиты для изменения пароля:

# chpasswd



Добавление новой группы:

# groupadd group1

Принадлежность к группам:

# usermod -G group1 -g test test

Проверка:

# id test

Блокировка:

# passwd -l test



Снятие блокировки - задать новый пароль.

Команда chage - изменение срока жизни пароля и др. параметров

в файле /etc/shadow

2. Атрибуты файлов, определяющие доступ:

rwx - чтение, запись, исполнение

Три уровня доступа - владелец, группа, все остальные

rwxrwxrwx

Команда ls -l

Создайте файлы file1, file2, file3

# touch file{1,2,3}

Изменение владельца файла:

# chown test:test file1

# chgrp group1 file2

Изменение атрибутов файлов:

# chmod ugo+rwx file3

# chmod 777 file4

3. При создании файлов из маски 666 вычитается значение umask

# umask

0022



# touch file10

# ls -l file10



При создании директории вычитание umask производится из 777

# mkdir d1

# ls -l



Значение umask можно изменить:

# umask 0021



4. SUID, SGID, Sticky bit

SUID и SGID позволяют процессам запускаться с правами владельца файла, а не наследовать права запускающего.

Установка SUID:

$ cp /usr/bin/touch .

$ ls -l touch

$ chmod u+s touch

$ ls -l touch

$ chmod g+s touch

$ ls -l touch



Sticky bit устанавливается для директорий, и позволяет удалять только те файлы, которые принадлежат пользователю, даже если на уровне директории имеется полный доступ к другим файлам.

Установка:

$ mkdir d2

$ ls -l

$ chmod +t d2

$ ls -l


Модуль 7. Использование возможностей ACL


  • Лист контроля доступа ( ACL )

  • Примеры использования ACL

1. Создадим текстовый файл /abcd.txt от имени root

# echo "12345">/abcd.txt

Обычный пользователь тест не может модифицировать этот файл:

$ touch /abcd.txt

touch: cannot touch '/abcd.txt': Permission denied

С помощью механизма ACL разрешим доступ

# setfacl -m "u:test:rwx" /abcd.txt

# ls -l /abcd.txt



знак <+> в списке атрибутов говорит о наличии ACL

Посмотрим список ACL

# getfacl /abcd.txt



Теперь команда

$ touch /abcd.txt

от имени пользователя test должна выполняться без ошибок



Можно устанавливать ACL для групп

# setfacl -m g:group1:r-x /abcd.txt



Можно установить для директории набор атрибутов ACL, которые будут наследоваться всеми файлами, создаваемыми в этой директории

# mkdir cool

# setfacl -d -m u:test:rw- cool

# cd cool

# touch f1

# getfacl f1



Удаление всех ACL

# setfacl -b /abcd.txt

Удаление конкретных ACL

# setfacl -x u:test /abcd.txt


Модуль 8. Настройка сети в Linux


  • Основы работы с сетью

  • Маршрутизация

  • Настройки DNS

  • Инструменты сетевой диагностики

1. Убедитесь, что сетевой адаптер активен в виртуальной машине файлы конфигурации сети:

/etc/sysconfig/network-scripts

/etc/resolv.conf

/etc/hosts

/etc/hostname

Исправления, вносимые в resolv.conf, перезатираются сервисом NetworkManager при рестарте, если используется DHCP. Можно запретить NetworkManager:

systemctl disable NetworkManager

или

systemctl mask NetworkManager

Если запретили NetworkManager, желательно установить пакет network-scripts

# yum install network-scripts



Тестирование сети:

# ping mail.ru

# ping 8.8.8.8





# ifconfig



# ip a show



# hostname



Установите статический адрес для сетевого адаптера, перезагрузитесь, проверьте работу сети.

Перед установкой статического адреса запомните динамический, его далее и используйте в качестве статического:

# ip a show



Измените адрес DNS-сервера в /etc/resolv.conf, проверьте его работу

В качестве DNS можно попробовать использовать общедоступные адреса

Google DNS: 8.8.8.8

8.8.4.4

Yandex DNS: 77.88.8.8

77.88.8.1


Модуль 9. Мониторинг и управление процессами в Linux


  • Процессы и сигналы

  • Использование памяти

  • Монитор производительности ( top )

  • Сигналы

  • Изменение приоритетов процесса

1. Откройте терминал

2. Получите список выполняемых процессов:

$ ps

В терминале увидите примерно такой результат:



Мы получили номер процесса (PID), терминал откуда процесс был запущен (pts/0), затраченное процессорное время и команду, запустившую процесс.

3. Для запуска программы необходимо, чтобы исполняемый файл находился в одном из каталогов переменной PATH, либо необходимо указывать путь к исполняемому файлу

Посмотрите содержимое переменной PATH:

$ echo $PATH

4. Выполните команду

$ which ls

Получим примерно следующее:



Нас интересует путь "/usr/bin/ls"

Создайте копию программы ls в домашнем каталоге:

Мы можем выполнить две разные программы ls - одну из каталога /usr/bin/, или ее копию из домашнего каталога. Для запуска ls из каталога /usr/bin/ достаточно выполнить команду

$ ls

Даже если наш текущий каталог - домашний, будет выполнена именно программа из файла

/usr/bin/ls (сработает поиск по каталогам из переменной PATH)

Для запуска программы из домашнего каталога нужно указать путь к программе – или абсолютный, или относительный. Варианты запуска:

Из текущего каталога:

$ ./ls

Из домашнего каталога:

$ /ls



Из любого другого каталога:

$ /dir1/dir2/dir3/prog_to_run (это только пример)

5. Команда ps используется для получения информации о процессах:

$ ps

Имеет различные опции

$ ps aux



6. Команда top включает режим мониторинга наиболее активных процессов с периодическим обновлением списка. Выход из режима мониторинга клавиша "q". Позволяет выполнять различные действия с процессами – останавливать, менять приоритет.

$ top



7. Управлять запущенными процессами можно с помощью сигналов, передаваемых процессам. Утилита kill позволяет передавать различные сигналы, чаще всего используется для завершения процессов. Выполните команду:

$ cat /dev/zero /dev/null &

команда cat будет выполняться в фоновом режиме и получит какой-то PID. Узнаем PID процесса для команды cat:

$ ps



В примере выше это 12893. Остановим процесс командой kill:

$ kill 6698

Проверьте, что процесс отсутствует в списке

$ ps



Иногда процесс в результате каких-то ошибок не реагирует на сигнал завершения от команды kill. В этом случае можно использовать более "жесткий" вариант завершения:

$ kill -9 6698



8. Узнать код завершения процесса можно, обратившись к переменной $?

$ echo $?

Значение переменной следует проверять сразу после завершения процесса.

9. По умолчанию программы запускаются в режиме "foreground". Запустить в режиме "background" можно с помощью символа "&" в командной строке:

$ cat /dev/zero /dev/null &

Или, если программа уже работает в foreground, можно нажать CTRL/Z, чтобы процесс остановился и был переведен в background.

Получить список программ в background можно командой jobs:

$ jobs



Можно перевести процесс в foreground командой fg:

$ fg 1



Номер задания в квадратных скобках (не путать с номером процесса, PID)

Задание со статусом "Остановлен" можно запустить в фоновом режиме командой bg:

$ bg 1

После этого по команде jobs ьы увидим изменение статуса задания.

10. Остановите все запущенные процессы cat с помощью команд ps и kill.


Модуль 10. Установка и обновление программных пакетов


  • Установка и удаление программ

  • Поиск необходимых программ в репозитории

  • Знакомство с группами пакетов

  • Репозитории ( разворачивание локального репозитория )

1. Установка ПО из пакетов (rpm)

Проверим, установлен ли пакет:

# rpm -q wget



Список файлов пакета:

# rpm -ql wget



Удалим пакет wget:

# rpm -e wget

Найдем установочный файл для пакета wget:

# find / -name wget*

Установим пакет:

# <путь к файлу из команды find>



2. Использование менеджеров пакетов и репозиториев (yum, dnf)

yum и dnf - умеют разрешать зависимости и работать с репозиториями

Удалим пакет wget:

# dnf remove wget

или

# yum remove wget

Установим пакет:

# dnf install wget

или

# yum install wget

Поиск пакета в доступных репозиториях:

yum search wget*

Настройка репозиториев:



3. Обновление системы и ПО

Команда:

# yum update

Выполняться будет долго, если список изменений большой



написать администратору сайта