---
# System prepended metadata

title: Untitled

---

### Отчет Никита Кузенков 
## Занятие 2. Администрирование Linux
### Задача к практической работе 2.1:
1. Команда df в linux

Чтобы посмотреть доступное пространство на всех примонтированных разделах и информацию о них достаточно набрать
Утилита отображает стандартный набор колонок, но понять в ее выводе что-то с первого раза сложно. Все данные выводятся в килобайтах. Теперь давайте попросим утилиту выводить данные в более читаемом формате:

`df -h`

Это самое популярное сочетание опций, потому что оно дает максимально понятную информацию и уже можно судить о том, что происходит на диске. Например, мы видим, что в домашней папке уже занято 87% места и, возможно, пора что-то удалить. Если задать опцию -a, вы можете получить информацию обо всех файловых системах известных ядру, которые были смонтированы:

`df -a`
![](https://i.imgur.com/5fZv0eH.png)
Здесь отображается огромное количество виртуальных файловых систем ядра. Если вы хотите вывести только информацию про реальные файловые системы на жестком диске можно использовать опцию -x чтобы отфильтровать все tmpfs:

`df -x tmpfs`

Также можно отфильтровать две файловые системы:

`df -x devtmpfs -x tmpfs`

Или же указать файловую систему, которую нужно отображать:

`df -t ext4`

Также можно указать интересующий вас раздел, как вы видели в синтаксисе команды:

`df -h /dev/sdb6`

С помощью опции -i вы можете посмотреть информацию про состояние inode в вашей файловой системе:

`df -hi /dev/sdb6`

Вывести объем доступного пространства в каталоге:

`df -h /home`

Команда df – очень простой в освоении, но эффективный инструмент, позволяющий всегда быть в курсе использования дискового пространства в ваших системах.
![](https://i.imgur.com/QsAqE2n.png)
2. Команда du в Linux
**Команда du** , сокращение от «использование диска», сообщает приблизительный объем дискового пространства, используемого данными файлами или каталогами. Это практически полезно для поиска файлов и каталогов, занимающих большие объемы дискового пространства.

`du [OPTIONS]... FILE...`

Если данный FILE является каталогом, du будет суммировать использование диска для каждого файла и подкаталога в этом каталоге. Если *FILE* не указан, *du* сообщит об использовании диска в текущем рабочем каталоге .

При выполнении без какой-либо опции du отображает использование диска для данного файла или каталога и каждого из его подкаталогов в байтах.

`du ~/Documents`

Вы также можете передать команде du несколько файлов и каталогов в качестве аргументов:

`du ~/Documents ~/Pictures ~/.zshrc`

Если вы запустите du для файла или каталога, для которого у вас нет прав, вы получите что-то вроде «du: невозможно прочитать каталог». В этой ситуации вам нужно будет добавить к команде sudo .

**du много опций, я выделю только наиболее часто используемые.**

Параметр -a указывает du сообщать об использовании дискового пространства каждым файлом в каталоге.

`du -a ~/Documents`

Обычно вы хотите отображать только пространство, занимаемое данным каталогом, в удобочитаемом формате. Для этого используйте параметр *-h* .

Например, чтобы получить общий размер */var/lib* и всех его подкаталогов, вы должны выполнить следующую команду:

`sudo du -h /var`
![](https://i.imgur.com/8hOZypi.png)
Чтобы сообщить только общий размер указанного каталога, а не подкаталогов, используйте параметр -s 
Параметр -c указывает du сообщать общую сумму. Это полезно, когда вы хотите получить объединенный размер двух или более каталогов.
Если вы хотите отобразить использование диска подкаталогами n-уровня, используйте параметр --max-depth и укажите уровень подкаталогов.
![](https://i.imgur.com/t5tSoci.png)
По умолчанию утилита du повторно использует дисковое пространство, используемое каталогом или файлом. Чтобы узнать очевидный размер файла, используйте переключатель --apparent-size . «Видимый размер» файла — это фактический объем данных в файле.
du также позволяет использовать шаблон оболочки.

**Использование du с другими командами**

Команду *du* можно комбинировать с другими командами с конвейерами.
Например, чтобы напечатать 5 самых больших каталогов внутри каталога */var* вы должны передать вывод du в команду sort чтобы отсортировать каталоги по их размеру, а затем передать результат в команду head которая распечатает только 5 верхних каталогов
![](https://i.imgur.com/1S86KHq.png)
3. Команда free в Linux
free
Вывод будет включать три строки, заголовок, одну строку для памяти и одну для свопа
Доступно — оценка объема памяти, доступного для запуска новых приложений без подкачки.
По умолчанию команда free показывает информацию о памяти в килобайтах. Чтобы просмотреть информацию в удобочитаемом формате (обычно в мегабайтах и гигабайтах), используйте параметр -h
Например, чтобы отобразить результат в мегабайтах, введите --mega
Чтобы отобразить строку, показывающую итоги столбца, используйте параметр -t . Это дает вам сумму памяти и свопа в столбцах total, used и free.

Чтобы постоянно отображать информацию о памяти на экране, вызовите free с параметром -s ( --seconds ), за которым следует число, определяющее задержку.

Например, чтобы распечатывать информацию о памяти каждые пять секунд, вы должны выполнить:

`free -s 5`

free команда будет продолжать отображать результат, пока вы не нажмете CTRL+C Это похоже на поведение команды watch .

Чтобы отображать результат определенное количество раз, используйте параметр -c ( --count ). В примере ниже команда выведет результат десять раз:

`free -s 5 -c 10`
![](https://i.imgur.com/Lby4jgF.png)

3.1 Команда free в Linux с примерами
![](https://i.imgur.com/jlEif2C.png)
![](https://i.imgur.com/ATFmUyw.png)
4. iostat
`sudo iostat`

В первой части отчёта находится информация о загруженности процессора. Тут есть такие колонки:

- %user - процент использования процессора программами, запущенными на уровне пользователя;
- %nice - процент использования процессора программами запущенными тоже в пространстве пользователя, но только с изменённым приоритетом;
- %system - процент использования процессора ядром;
- %iowait - процент времени затраченного на ожидание завершения операций ввода/вывода;
- %steal - процент простоя виртуального процессора, пока гипервизор отдаёт мощность другому виртуальному процессору;
- %idle - процент времени пока процессор не занят ничем.


- tps - означает количество запросов на чтение или запись к устройству в секунду;
- KB_read/s, MB_read/s - количество килобайт или мегабайт, прочитанных с устройства за секунду;
- KB_wrtn/s, MB_wrtn/s - количество килобайт или мегабайт записанных на устройство в секунду;
- KB_dscd/s, MB_dscd/s - скорость освобождения блоков данных на устройстве, килобайт или мегабайт в секунду;
- KB_read, MB_read - общее количество прочитанных данных с диска с момента загрузки системы;
- KB_wrtn, MB_wrtn - количество записанных данных с момента загрузки системы;
- KB_dscd, MB_dscd - количество освобождённых блоков на диске в результате выполнения операции trim в килобайтах или мегабайтах.

![](https://i.imgur.com/k5XDykp.png)
![](https://i.imgur.com/og0chR9.png)
Для просмотра данных в удобном формате выполните:

`sudo iostat -h`
![](https://i.imgur.com/PsxDSsB.png)
Чтобы посмотреть данные по нужному устройству просто укажите это устройство:

`sudo iostat /dev/nvme0n1`

Можно посмотреть статистику по каждому разделу устройства, тогда надо воспользоваться опцией -p:

`sudo iostat -p /dev/nvme0n1`

Чтобы утилита автоматически обновляла данные каждую секунду просто добавьте интервал. Например:

`sudo iostat -p /dev/nvme0n1 1`
![](https://i.imgur.com/hXjMJVN.png)
Если вы не хотите чтобы утилита суммировала все данные с момента запуска операционной системы, то можно использовать опцию -y. Но работает она только если задан интервал:

`sudo iostat -y -p /dev/nvme0n1 1`
![](https://i.imgur.com/mTM5aU0.png)
4.1 Профилирование нагрузки на файловую систему с помощью iostat
![](https://i.imgur.com/IsfmWR1.png)

![](https://i.imgur.com/0rHHcF4.png)


5. mpstat

5.1 Отображение всей информации
![](https://i.imgur.com/dpHrNQx.png)

5.2 Показать статистику CPU индивидуального процессора (или) ядра
![](https://i.imgur.com/sdnGx5H.png)
5.3 Для отображения статистически о конкретном CPU или ядре
![](https://i.imgur.com/r6qfTIZ.png)
5.4 Можно выполнить «mpstat -V» чтобы показать версию утилиты:
![](https://i.imgur.com/cwK0i34.png)
5.5 Дополнительные опции
![](https://i.imgur.com/qhVIr48.png)

6. vmstat
![](https://i.imgur.com/Bp9oMYA.png)

Приведенный ниже пример иллюстрирует применение vmstat для обнаружения программ, которые потребляют слишком много ресурсов CPU.

**vmstat -a**

(active/inactive memory) - активная/неактивная память

**vmstat -f**

(number of forks since boot) - количество вилок с момента загрузки

**vmstat -d**

(disk statistics) - статистика диска

**vmstat -D**

(summarize disk statistics) - (общая статистика диска)
![](https://i.imgur.com/WJFIx33.png)
![](https://i.imgur.com/cvx8wBV.png)

7. Утилита/команда " w "

В таблице для каждого пользователя выводятся следующие поля:

```
USER — имя пользователя.
TTY — название терминала.
FROM — название удаленного компьютера или IP-адрес.
LOGIN — время входа в систему.
IDLE — время бездействия.
JCPU — время, использованное всеми процессами, подключенными к tty. Оно не включает завершенные фоновые задания, но включает фоновые задания, работающие в данный момент.
PCPU — время, использованное текущим процессом, который указан в поле WHAT.
WHAT — текущий процесс (командная строка текущего процесса).

```

- h

Не выводить заголовок у таблицы.


- u

Игнорировать имена пользователей при определении времени текущего процесса и времени CPU.


- s

Использовать сокращенный формат вывода. Не выводить колонки JCPU и PCPU.


- f

Включить или выключить вывод поля from, которое соответствует имени удаленного хоста (remote hostname). В зависимости от дистрибутива Linux (версии утилиты w), поле from может выводиться или не выводиться по умолчанию.


- i

Выводить в поле from IP-адрес вместо имени хоста (hostname), если это возможно.


- o

Выводить информацию в старом формате. Время, которое меньше 1 минуты, не выводится.


- V

Вывести версию утилиты w.
![](https://i.imgur.com/sS3sgW8.png)
8. Утилита htop
**В самом верху показана нагрузка на каждое ядро центрального процессора (цифры от 1 до 12).**`

```
Mem — это общее количество оперативной памяти и используемая память.
Task — обобщённая статистика по процессам
Swp — уровень занятости файла подкачки (если он есть)
Load average — средняя загрузка центрального процессора
Uptime — время работы операционной системы с момента последней загрузки

```
![](https://i.imgur.com/Jr8u14X.png)
### Практическая работа №2.2
1. Установка пакетов SSH

![](https://i.imgur.com/CJKbWSJ.png)
![](https://i.imgur.com/156kEm9.png)

2. Настройка SSH
![](https://i.imgur.com/VS7FJAN.png)
![](https://i.imgur.com/cyNJ2Bc.png)

![](https://i.imgur.com/KOxqflX.png)
![](https://i.imgur.com/PryGeva.png)
по паролю
![](https://i.imgur.com/JPU4djX.png)



4. Для генерации ключей используется утилита ssh-keygen:

![](https://i.imgur.com/t0Hlu9c.png)
![](https://i.imgur.com/Y2MUgoO.png)


5. Подключиться к серверу linux c хостовой операционной системы через Putty. 
![](https://i.imgur.com/Cu1QL21.png)

![](https://i.imgur.com/11IRl3w.png)
по ключу
![](https://i.imgur.com/QztzqA5.png)



### Практическая работа №2.3
2. Создание ключей SSH
![](https://i.imgur.com/t0Hlu9c.png)

3. Как скопировать открытый ключ на ваш сервер
![](https://i.imgur.com/BBKiAKk.png)
Аутентификация на сервере с использованием ключей SSH
![](https://i.imgur.com/rlzWFWP.png)


5. Отключение аутентификации с помощью пароля на сервере
![](https://i.imgur.com/WpEeMXo.png)
6. Копирование открытого ключа с помощью SSH
![](https://i.imgur.com/Vl1IXAv.png)


### Практическая работа №2.4
1. Базовый сбор информации
Начнём со сбора информации о дистрибутивах
![](https://i.imgur.com/5iMYAy1.png)
**По ядру linux можно понять следующее:**
**uname -a**
![](https://i.imgur.com/HoeQioY.png)
Команда uptime покажет, когда и сколько система работала и соответственно, если она работала без перерыва 3 года, то злоумышлинник может воспользоваться старыми уязвимостями для получения доступа или внедрения кода.
![](https://i.imgur.com/O7Pc4e0.png)
Давайте посмотри права директории /home
![](https://i.imgur.com/n8M6ofd.png)
Чтобы ограничить права другим пользователям делаем следующее
sudo chmod o-rx /home/kali
![](https://i.imgur.com/Xagwk2V.png)
ip neigh - показывает с какими компьютерами происходит обмен данными
sudo ss -tlnp - показывает какие сервисы и с какими портами запущены
sudo -l - позволяет нам понять, что есть в этом машинки и что пользователь может
![](https://i.imgur.com/cc3npRs.png)
2. Суидные файлы
![](https://i.imgur.com/xcp34fz.png)

![](https://i.imgur.com/GQVcCMz.png)
![](https://i.imgur.com/XiEdx98.png)
![](https://i.imgur.com/HXoKzla.png)
![](https://i.imgur.com/SbGwAsC.png)
![](https://i.imgur.com/uKHfVC1.png)
![](https://i.imgur.com/IZRwyoP.png)
3. Проверка целостностей пакетов
![](https://i.imgur.com/3bzNrkx.png)
![](https://i.imgur.com/7yO17Xg.png)
![](https://i.imgur.com/1AG0g7E.png)
![](https://i.imgur.com/qQjutAh.png)
![](https://i.imgur.com/76jkfHL.png)
![](https://i.imgur.com/Ryybsjm.png)
![](https://i.imgur.com/Q8aEWzw.png)
![](https://i.imgur.com/InyuZwc.png)
![](https://i.imgur.com/X4Z0o3Q.png)

### Практическая работа №2.5
1. Просмотр списка системных переменных окружения
![](https://i.imgur.com/FLrvUk2.png)
2. Запуск команд с указанием нового значения переменной окружения
![](https://i.imgur.com/tZzGqq2.png)
2.1 Установка и удаление локальных переменных окружения
![](https://i.imgur.com/HR8FWVO.png)
2.2 Добавление и удаление пользовательских переменных
![](https://i.imgur.com/ZSohVrm.png)
![](https://i.imgur.com/dUWS1UI.png)
![](https://i.imgur.com/yfqPL4l.png)

