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

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.04.2024

Просмотров: 11

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Лабораторная работа. Администрирование 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

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