# Занятие 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)