---
# System prepended metadata

title: Занятие 2. Администрирование Linux

---

# Занятие 2. Администрирование Linux
# Практическая работа №2.1
<span STYLE="font-size:16.0pt">**1. Команда df в linux** </span>
![](https://i.imgur.com/9rKtb5s.png)
![](https://i.imgur.com/5p1vQ0j.png)
![](https://i.imgur.com/4YEAQY2.png)
![](https://i.imgur.com/kAN3vIa.png)
![](https://i.imgur.com/V7phQJR.png)
![](https://i.imgur.com/3AkJz5O.png)
![](https://i.imgur.com/0Vj3ia1.png)
![](https://i.imgur.com/hXZZx0M.png)
<span STYLE="font-size:16.0pt">**2. Команда du в Linux** </span>
![](https://i.imgur.com/krRfdUR.png)
![](https://i.imgur.com/mo0XxHt.png)
![](https://i.imgur.com/gweIxYo.png)
![](https://i.imgur.com/kOlFGwi.png)
![](https://i.imgur.com/1XiuLoc.png)
![](https://i.imgur.com/T253EKM.png)
![](https://i.imgur.com/THq8kMi.png)
![](https://i.imgur.com/Zzyl83x.png)
![](https://i.imgur.com/5Q66Ljt.png)
![](https://i.imgur.com/ODwzRwC.png)
<span STYLE="font-size:16.0pt">**3. Команда free в Linux** </span>
![](https://i.imgur.com/bIMqf8c.png)
![](https://i.imgur.com/Gg7zO0r.png)
![](https://i.imgur.com/4qToZxD.png)
![](https://i.imgur.com/JqrGrh9.png)
![](https://i.imgur.com/aeG0Omy.png)
![](https://i.imgur.com/Ue0iZ9D.png)
![](https://i.imgur.com/OmfKBWz.png)
![](https://i.imgur.com/YiM3tuW.png)
<span STYLE="font-size:16.0pt">**4. iostat** </span>
![](https://i.imgur.com/4rLaSK6.png)
![](https://i.imgur.com/7pmq89p.png)
![](https://i.imgur.com/vNtb1fe.png)
![](https://i.imgur.com/bcduVbL.png)
![](https://i.imgur.com/2yg98Yo.png)
![](https://i.imgur.com/EtT8qjV.png)
![](https://i.imgur.com/NtcH3GR.png)
<span STYLE="font-size:16.0pt">**5. mpstat** </span>
![](https://i.imgur.com/r9i5eA4.png)
![](https://i.imgur.com/xsZHh0r.png)
![](https://i.imgur.com/x7tMwNK.png)
![](https://i.imgur.com/f4EunhY.png)
![](https://i.imgur.com/juOmCgm.png)
<span STYLE="font-size:16.0pt">**6. vmstat** </span>
![](https://i.imgur.com/t5cSPQt.png)
![](https://i.imgur.com/Gf27IBB.png)
![](https://i.imgur.com/NwfF6pJ.png)
![](https://i.imgur.com/KhfXfNv.png)
![](https://i.imgur.com/3jTXq6P.png)
<span STYLE="font-size:16.0pt">**7. Утилита/команда " w "** </span>
![](https://i.imgur.com/Y6wkjNE.png)
![](https://i.imgur.com/pNfXYQk.png)
![](https://i.imgur.com/gZWriZY.png)
![](https://i.imgur.com/VFYcWH7.png)
![](https://i.imgur.com/hnR6Rl7.png)
![](https://i.imgur.com/B0G1K0C.png)
![](https://i.imgur.com/jurbSO5.png)
![](https://i.imgur.com/WMBkCD8.png)
<span STYLE="font-size:16.0pt">**8. Утилита htop** </span>
![](https://i.imgur.com/NtzMZM5.png)
![](https://i.imgur.com/B7gXPgT.png)
# Практическая работа №2.2
<span STYLE="font-size:18.0pt">**1. Установка пакетов SSH** </span>
**SSH** - встроенный пакет, поэтому устанавливается одной командой:
<span style="color:red">```$ sudo apt-get install ssh```</span> **В Ubuntu** 
<span style="color:red">`$ yum -y install openssh-server openssh-clients`</span>  **В CentOS**
![](https://i.imgur.com/PANSh9w.png)
Проверка работы SSH-демона:
<span style="color:red">`$ systemctl status sshd`</span> или <span style="color:red">`$ service sshd status`</span>.
![](https://i.imgur.com/4PWkq1f.png)

<span STYLE="font-size:18.0pt">**2. Настройка SSH** </span>
Настройки демона хранятся в файле /etc/ssh/sshd_config. Посмотреть его можно командой <span style="color:red">`cat /etc/ssh/sshd_config`</span>
![](https://i.imgur.com/aHlfgfa.png)

Перейти к настройке: 
<span style="color:red">`sudo nano /etc/ssh/sshd_config`</span>
Наиболее важными являются следующие параметры:
- **Port (int)** – номер порта, через который будет работать соединение
- **AddressFamily (inet / inet6)** – семейство используемых IP-адресов: IPv4 и IPv6
- **ListenAddress (ip:port)** – порты для отдельных сетевых интерфейсов
- **PubkeyAuthentication (no/yes)** – авторизация и шифрование трафика с помощью SSH-ключей
- **AuthorizedKeysFile (etc/ssh/authorized_keys)** – общий файл для хранения открытых ключей пользователей
- **AuthorizedKeysFile (home/user/.ssh/authorized_keys)** – ключи для отдельного пользователя
- **PasswordAuthentication (no/yes)** – парольный доступ
- **PermitEmptyPasswords (no/yes)** – авторизация по пустому паролю
- **DenyUsers / DenyGroups (user user)** – запрещенные пользователи
- **AllowUsers / AllowGroups (user user)** – разрешенные пользователи
- **PermitRootLogin (no/yes)** – root-доступ

Для применения сделанных настроек необходим перезапуск SSH:
<span style="color:red">`$ systemctl restart sshd`</span> или <span style="color:red">`$ service sshd restart`</span>.

<span STYLE="font-size:18.0pt">**3. Подключение по SSH** </span>
Для подключения к машие через PuTty необходимо ввести доменное имя или ip в соответствующее поле, указать порт подключения (по умолчанию 22) и нажать "open"
![](https://i.imgur.com/5g1ifJq.png)
Откроется окно, где будет необходимо ввести логин и пароль удаленной учетной записи, после чего можно будет спокойно пользоваться системой
![](https://i.imgur.com/c9ae8BK.png)

# Практическая работа №2.3
<span STYLE="font-size:18.0pt">**1. Утилита ssh-keygen:** </span>
В случае авторизации по ключу, должна быть предварительно сгенерирована пара SSH-ключей — открытый на стороне сервера и закрыты для авторизации клиента. Для этого используется команда <span style="color:red">`$ ssh-keygen`</span>.
![](https://i.imgur.com/TcMwWui.png)
При создании ключей требуется указать путь для хранения ключей и кодовую фразу для ключа с паролем. В пути хранения появятся 2 файла:
<span style="color:red">`id_rsa.pub`</span> – открытый ключ
<span style="color:red">`id_rsa`</span> – закрытый ключ

Команда для отправки открытого ключа на сервер:
<span style="color:red">`ssh-copy-id -i ~/.ssh/id_rsa.pub user_name@host_name`</span>
Или можно подключиться по паролю и вручную сохранить ключи:
<span style="color:red">`cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"`</span>

<span STYLE="font-size:18.0pt">**2. Поддключение по SSH с помощью ключа** </span>
Для подключения к серверу из командной строки используются команды:
<span style="color:red">`ssh remote_host`</span>
<span style="color:red">`ssh remote_username@remote_host`</span>
<span style="color:red">`ssh -p 22 remote_username@remote_host`</span>
`remote_host` - ip или доменное имя, `remote_username` – имя пользователя на удаленной машине, `-p 22` – порт подключения
Если ключи были успешно перенесены на сервер была произведена настройка sshd_config, то подключение произойдет автоматически
![](https://i.imgur.com/7sFSz0j.png)


# Практическая работа №2.4
<span STYLE="font-size:18.0pt">**1. Утилита wget** </span>
**Wget** — консольная программа для автоматического получения файлов по сети. Скачать ее можно командой <span style="color:red">`sudo apt-get install wget`</span>
Для ее использования достаточно указать url файла:
<span style="color:red">`wget https://downloads.cisofy.com/lynis/lynis-3.0.8.tar.gz`</span>
![](https://i.imgur.com/Uti6GAR.png)
Для проверки контрольной суммы файла или пакета надо выполнить команду <span style="color:red">`sha256sum lynis-3.0.8.tar.gz`</span> и сверить полученное значение
![](https://i.imgur.com/MKZZXqN.png)

<span STYLE="font-size:18.0pt">**2. Проверка пакета на целостность** </span>
Для проверки целостности пакета существуют 2 команды: <span style="color:red">`dpkg`</span> и <span style="color:red">`debsums`</span>. Первая является утилитой для управления пакетами и довольно сложна для понимания из-за своей низкоуровневости. Вторая более дружелюбна к пользователю направлена исключительно на проверку MD5-сумм.

Для начала подготовим стенд. Для этого получим список всех встроенных утилит и изменим случайный пакет, предварительно создав backup:
<span style="color:red">`dpkg -L coreutils`</span>
<span style="color:red">`sudo mv /bin/ls /bin/ls.bak`</span>
<span style="color:red">`sudo cp /bin/cat /bin/ls`</span>
После этого можно произвести проверку целостности файлов. Для **dpkg** это делается командой <span style="color:red">`dpkg -V coreutils`</span>
![](https://i.imgur.com/TmOWwM1.png)

Для **debsums** есть несколько вариантов с разными параметрами:
- **-a** - Проверяет все файлы (включая конфигурационные, которые обычно располагаются слева)
- **-e** - Проверяет только конфигурационные файлы пакетов
- **-с** - Выводит список измененных на stdout файлов
- **-I** - Отображает файлы, в которых отсутствует информация о md5sum
- **-s** - Выводит только ошибки; при их отсутствии не производит никаких действий

Пример вывода <span style="color:red">`debsums -ac coreutils`</span> и <span style="color:red">`debsums -cs coreutils`</span>:
![](https://i.imgur.com/4ElRRny.png)


# Практическая работа №2.5
<span STYLE="font-size:18.0pt">**1. Введение. .bashrc, .bash_profile и .bash_login** </span>
**Переменные окружения в Linux** - это специальные переменные, определенные оболочкой и используемые программами во время выполнения.
- Системные переменные. Эти опции загружаются сразу же при старте операционной системы, хранятся в определенных конфигурационных файлах, а также доступны для всех пользователей и всей ОС в целом. Обычно такие параметры считаются самыми главными и часто используемыми во время старта самых различных приложений.
- Пользовательские переменные. Каждый пользователь имеет свою домашнюю директорию, где хранятся все важные объекты, к их числу относятся и конфигурационные файлы пользовательских переменных. Они применяются под конкретного юзера в то время, когда он авторизован через локальный «Терминал».
- Локальные переменные. Существуют параметры, применяемые только в рамках одной сессии. При ее завершении они будут навсегда удалены и для повторного старта все придется создавать вручную. Создаются, редактируются и удаляются при помощи соответствующих консольных команд.

Системные и пользовательские переменные имеют свои файлы конфигурации, находящиеся в следующих путях:
- **/etc/profile** – Системные переменные. Эти опции загружаются сразу же при старте операционной системы
- **/etc/environment** — более широкий аналог предыдущей конфигурации. Имеет те же опции, что и предыдущий файл, но без каких-либо ограничений при удаленном подключении.
- **~/.bashrc** — относится к конкретному юзеру, хранится в его домашней директории и выполняется каждый раз при новом запуске терминала.
- **/etc/bash.bashrc** — аналогично .bashrc, но при инициализации Bash читается первым. Не задокументирован в обычной документации Bash по причине того, что эта функция добавлена Debian и принята Ubuntu
- **~/.bash_profile** — то же, что .bashrc, только для удаленного взаимодействия, например, при использовании SSH.

**Ubuntu**:
![](https://i.imgur.com/OdHzTFb.png)
**Red Hat**
![](https://i.imgur.com/j5wsgyV.png)


<span STYLE="font-size:18.0pt">**2. Локальные переменные** </span>
Посмотреть список всех переменных окружения можно командой <span style="color:red">`printenv`</span>
Выражение до знака = — название переменной, а после — ее значение.
![](https://i.imgur.com/0P9CA7C.png)

Для создания локальной переменной используется конструкция <span style="color:red">`VAR=VALUE`</span>, где <span style="color:red">`VAR`</span> – название переменной, а <span style="color:red">`VALUE`</span> - ее значение. Изменение переменных окружения делается похожим образом через <span style="color:red">`env VAR=VALUE`</span>. Для получения значения переменнной перед ее названием требуется указать <span style="color:red">`$`</span>
![](https://i.imgur.com/SYeA3HY.png)
Удаление параметра происходит через команду <span style="color:red">`unset`</span> 
![](https://i.imgur.com/opUwwAg.png)

<span STYLE="font-size:18.0pt">**3. Пользовательские переменные** </span>
Пользовательские переменные находятся в конфигурационных файлах, поэтому для их создания и удаления необходимо перейти в <span style="color:red">`~/.bashrc`</span> с помощью <span style="color:red">`nano`</span>
![](https://i.imgur.com/pJdCY4s.png)
Создание переменных аналогично локальным переменным. Удалить переменную можно не только стерев строку, но и закоментировав ее <span style="color:red">`#`</span>. Чтобы изменения вступили в силу, нужно ввести команду <span style="color:red">`source ~/.bashrc`</span>
![](https://i.imgur.com/2aDfZO8.png)

<span STYLE="font-size:18.0pt">**4. Системные переменные** </span>
Как и пользовательские переменные, системные находятся в файле конфигурации, но по пути <span style="color:red">`/etc/profile`</span>.
![](https://i.imgur.com/rDRlc9q.png)

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