---
# System prepended metadata

title: Занятие Линукс 2

---

# Занятие Линукс 2
# Модуль Линукс 2.1

1. Команда df и ее производные:
![](https://i.imgur.com/mKJyITV.png)
![](https://i.imgur.com/EPntNQW.png)
![](https://i.imgur.com/fN6WxI9.png)
![](https://i.imgur.com/PsHQaQb.png)
![](https://i.imgur.com/4dEYbBX.png)
![](https://i.imgur.com/QG0PuHU.png)

2. Команда du и ее производные:
du-сообщает приблизительный объем диск пространства, используемого данными файлами или каталогами
![](https://i.imgur.com/0BcGS1B.png)
![](https://i.imgur.com/Ig8ZmnM.png)
![](https://i.imgur.com/Dfdal4c.png)
![](https://i.imgur.com/FNj1Ymt.png)

3.Команда free
предоставляет информацию об общем объеме физической памяти и памяти подкачки, а также о свободной и используемой памяти
![](https://i.imgur.com/PMQHFzA.png)

4. Установка sysstat
![](https://i.imgur.com/4YuQ6dm.png)

4.1 Iostat
отчет со средней статистикой с момента включения системы до момента запуска программы
![](https://i.imgur.com/NM2z9bu.png)
![](https://i.imgur.com/87Tewyb.png)


![](https://i.imgur.com/GpLNTYT.png)
Интересный метод анализа системы:
iostat -xk -t 10 | awk '// {print strftime("%Y-%m-%d %H:%M:%S"),$0}' >> iostat.log 

Желательно запускать на пару суток.В первую очередь обратим внимание на последнюю колонку *%util*. Хотя бы потому, что большое значение этого параметра (90%-100%) для пользователя выглядит как «сервер висит». У нас sda загружен менее чем на 9%. Нормально. Причем в основном разделом *sda7(SQL)*.

Далее параметры записи/чтения:

пропускная способность колонки rkB/s, wkB/s. Пишем 219 KБ/с
iops колонки r/s, w/s — 10,5 запросов в секунду
время обработки запроса: await — 156 ms, из них собственно выполнение svctm 8 ms

О чем это говорит:
Диск не загружен, числа не большие. Но запросы стоит в очереди 200ms время приемлемое, но при «первом шухере расколется», сама подсистема паршивенькая. Хотя однозначно сказать нельзя? ибо опять таки диск не сильно грузится вот и не торопятся данные отправлять из очереди.

Что еще полезно: rrqm/s, wrqm/s это собственно число запросов, которые приложения попросили выполнить, но система смогла их объединить в блоки в среднем по avgrq-sz байт.

Данные цифры помогут оптимизировать работу приложения:
Если вы откроете 100500 файлов, начнете произвольно прыгать по открытым файлам и заниматься прочими излишествами, выкушаете кеш системы — r/s,w/s начнут стремиться к rrqm/s и wrqm/s, и avgrq-sz падать. Это ситуация чистого Random Access — самый медленный сценарий использования диска.
А если все будет последовательно, то стремиться они будут к единичке (а лучше к нолику), а avgrq-sz расти. Единственный запрос за интервал — это чистой воды Sequential Access — самый быстрый сценарий использования диска.

Проводить его лучше на рабочей машинке, а у меня виртуалка. Не покажет интересного анализа. Если выпрошу ноут у соседки, то апдейтну результаты через несколько суток

5. mpstat
отчет о использовании процессоров
![](https://i.imgur.com/KzO8KB6.png)
![](https://i.imgur.com/w8gQJ2l.png)

6. vmstat
о неполадках, приводящих к снижению производительности
Содержит статистическую информацию о нитях ядра, находящихся в очереди выполнения и ожидающих запуска, а также об оперативной памяти,подкачке,дисках, прерыаниях,системных вызовах,переключении контекста и работе процессора.
![](https://i.imgur.com/Cr5pWaK.png)
![](https://i.imgur.com/2i3eIcR.png)
![](https://i.imgur.com/0UQUc5b.png)


7.утилита/команда w
![](https://i.imgur.com/XEvewdI.png)
![](https://i.imgur.com/wo03Xut.png)

8. htop
установка
![](https://i.imgur.com/lKkjPHs.png)
![](https://i.imgur.com/98IuW0b.png)
*Значение столбцов htop*
![](https://i.imgur.com/v75rpEm.png)


Программа htop выводит следующие столбцы:

*PID*
Идентификатор процесса.

*USER*
Имя пользователя владельца процесса или ID если имя не может быть определено.

*PRI*
Приоритет — внутренний приоритет ядра для процесса, обычно это просто значение nice плюс двадцать. Отличается для процессов имеющих приоритет выполнения real-time.

*NI*
NICE значение процесса от 19 (низкий приоритет) до -20 (высокий приоритет). Более высокое значение означает, что процесс «приятный» для других и позволяет им иметь более высокий приоритет выполнения.

*VIRT*
Размер виртуальной памяти процесса (M_SIZE).

*RES*
Размер резидентного набора (text + data + stack) процесса (т.е. размер используемой физической памяти процесса, M_RESIDENT).

*SHR*
Размер общих страниц процесса (M_SHARE).

*S*
STATE, состояние процесса, может быть:


S для спящих (в простое)
R для запущенных
D для сна диска (бесперебойный)
Z для зомби (ожидает родитель считает его статус выхода)
T для отслеживания или приостановки (т. е. от SIGTSTP)
W для подкачки



*CPU%*
Процент процессорного времени, которое процесс использует в данный момент.

*MEM%*
Процент памяти, используемой процессом в данный момент (в зависимости от размера резидентной памяти процесса, см. M_RESIDENT выше).

*TIME+*
Время, измеренное в часах, указывает на то, сколько процесс провёл в пользовательском и системном времени.

*Command*
Полная командная строка процесса (то есть имя программы и аргументы).


для себя (для справки):
**Как ускорить или замедлить частоту обновления htop**

Для установки времени обновления htop используйте опцию -d после которой укажите время обновления в десятой части секунд.
*Например, чтобы программа обновляла окно каждую 1/10 секунды:*`sudo htop -d 1`

*Чтобы программа выводила новые данные раз в 5 секунд:*`sudo htop -d 50`

**Как вывести процессы в виде дерева**

*Для вывода процессов в виде дерева используйте опцию -t:*`sudo htop -t`
![](https://i.imgur.com/7jYDW31.png)

# Модуль Линукс 2.2 и 2.3 
## + эксперимент, который занял несколько дней (в конце)

### 2.2 
### Установка SSH
![](https://i.imgur.com/nca7s3n.jpg)
по умолчанию он не включился, поэтому пришлось включить
![](https://i.imgur.com/C90ya0n.jpg)

потренировалась изменять параметры в конфиге
![](https://i.imgur.com/HmNZoUJ.jpg)
перезапуск для корректной работы конфига
![](https://i.imgur.com/NaGKxxt.jpg)

Для установки соединения не по паролю, а по ключам необходимо их сгенерировать. 
![](https://i.imgur.com/zGbm4ys.jpg)
ну и отредактировать конфиги клиента и сервера, но здесь лучше не торопиться отключать соединение по паролю. 

Ну и отсюда начинается самое **интересное** 
В конце 2.2 я вижу упоминание о подключении по ssh с линукса на винду через putty. И отсюда начинаются 4 дня мучения в поисках ответа. 

Я уже начала сомневаться в каждом параметре конфигурации. НО решила попробовать просто к другой машинке на линукс (а это оказалась 2.3). Поставила дебиан. И все по маслу пошло:
![](https://i.imgur.com/xdtChgx.jpg)
просто скопировала публичный ключ, обозначив, что это идентификационный файл (-i), в папку пользователя. И, собственно, подключение с первого раза красиво реализовалось. Даже обидно было

И затем главное правило, вынесенное из этой работы: "**ВСЕ НУЖНО ГУГЛИТЬ НА АНГЛИЙСКОМ**"
https://www.youtube.com/watch?v=Wx7WPDnwcDg&ab_channel=WilliamCampbell 
Ни один русскоязычный источник не указал на главную суть проблемы на винде. ПРАВА. F должны быть!
![](https://i.imgur.com/Te3Gprx.jpg)

![](https://i.imgur.com/BcidCKm.jpg)

![](https://i.imgur.com/WxWNB8s.jpg)

И все выполняется исключительно из терминала. Не красота ли?

# Модуль Линукс 2.4

1.Базовый сбор информации
cat /etc/*release - информация о дистрибутиве и какая версия его
![](https://i.imgur.com/upalehj.jpg)
По ядру linux можно понять следующее:
**uname -a**
![](https://i.imgur.com/tASviNJ.jpg)
**whoami**
Как следует из названия, команда whoami выводит имя пользователя для эффективного идентификатора пользователя. Другими словами, он отображает имя текущего вошедшего в систему пользователя
![](https://i.imgur.com/NDXASTH.jpg)
Команда uptime покажет, когда и сколько система работала и соответственно, если она работала без перерыва 3 года, то злоумышлинник может воспользоваться старыми уязвимостями для получения доступа или внедрения кода
![](https://i.imgur.com/opn7UJO.jpg)
Давайте посмотри права директории /home
![](https://i.imgur.com/y1xLMG8.jpg)
Чтобы ограничить права другим пользователям делаем следующее
**sudo chmod o-rx /home/kali**
![](https://i.imgur.com/5qWfKIv.jpg)
ip neigh - показывает с какими компьютерами происходит обмен данными
![](https://i.imgur.com/NFjkmVf.jpg)
sudo ss -tlnp - показывает какие сервисы и с какими портами запущены
![](https://i.imgur.com/vZc9tDD.jpg)
sudo -l - позволяет нам понять, что есть в этом машинки и что пользователь может
![](https://i.imgur.com/qzdxR47.jpg)
2.Суидные файлы
В системе могут быть различные закладки
sudo find / -user root -perm -4000 -exec ls -ldb {} \\; 2> /dev/null
![](https://i.imgur.com/XzOQiD6.jpg)
Нам надо скопировать ссылку данной утилиты и скачать её с помощью wget например в директорию /tmp **
wget https://downloads.cisofy.com/lynis/lynis-3.0.6.tar.gz
![](https://i.imgur.com/qhP02tq.jpg)
Затем давайте проверим контрольную сумму с сайта и то, что мы скачали
![](https://i.imgur.com/srtshxH.jpg)
Далее переходим в директорию lynis
![](https://i.imgur.com/t86ZGDN.jpg)
Далее запускаем утилиту lynis
![](https://i.imgur.com/0waCzRI.jpg)
Перенаправлять файлы лучше через стандартный report утилиты:
/var/log/lynis-report.dat
![](https://i.imgur.com/8xO6olP.jpg)
Для просмотра пакетов в системе **dpkg -l**
![](https://i.imgur.com/i5loX86.jpg)
Для просмотра установленных утилит необходимо набрать следующую команду: **dpkg -L coreutils**
![](https://i.imgur.com/zrUx7qY.jpg)
Установим пакет debsums
![](https://i.imgur.com/TM2UpYm.jpg)
Введем команду sudo find / -printf "%T@;%Tc;%p\\n"
![](https://i.imgur.com/DjwHA2U.jpg)
Далее если надо сделать по одному конкретному пользователю необходиму следующие:
![](https://i.imgur.com/CNxXLlH.jpg)
Но давайте отсортируем данный файл с помощью команды:
sort -rn timeline.csv | less
где флаг -r как раз будет указывать, что последнее изменение будет первым
![](https://i.imgur.com/jDbpmFp.jpg)

# Модуль Линукс 2.5
### 1
### Просмотр списка системных переменных окружения
Просмотр всех присутствующих в Linux системных и пользовательскых переменных и их понятий с помощью команды ***printenv***

![](https://i.imgur.com/lqhvc1R.jpg)

### 2
### Запуск команд с указанием нового значения переменной окружения

Можно изменить опцию любого параметра, чтобы запустить с ним определенную программу или выполнить любые другие действия. В таком случае в консоли будет достаточно прописать env VAR=VALUE, где VAR — название переменной, а VALUE — ее значение, например, путь к папке /home/kali

![](https://i.imgur.com/CsQ0ERE.jpg)

![](https://i.imgur.com/GHtfv0M.jpg)
### 2.1
### Установка и удаление локальных переменных окружения

Установка и удаление локальной переменной при помощи команды ***VAR=VALUE***

![](https://i.imgur.com/hySR4Wv.jpg)

### 2.2
### Добавление и удаление пользовательских переменных

Посмотрим пользовательскую конфигурацию через **sudo nano .bashrc.**

![](https://i.imgur.com/dfRshha.jpg)

![](https://i.imgur.com/oI8wxOp.jpg)

### 2.3
### Создание и удаление системных переменных окружения

Отредактируем файл **/etc/profile**

![](https://i.imgur.com/3KVBA9b.jpg)