# Занятие 2. Администрирование Linux
# Практическая работа №2.1
## 1. Команда df в linux
df
df -a

df -BM
df -h
df -H
df -i

df -T /root
df -P
df -k
df --total

df --output
df -t tmps
df -x tmps
df -x tmps -x devtmps
df -h /dev/rtc
df -hi /dev/rtc

## 2. Команда du в Linux
du -a /root

du
du /root
du /root /lib

du -h /var
du -sh /var
du -csh /var/log /var/lib

du -h --max-depth=1 /var/lib
du -sh --apparent-size /var/lib
du -csh ~/li*

du -h /var/ | sort -rh | head -5

## 3. Команда free в Linux
free
free -h
free -b
free --kilo
free --mega
free --giga
free --tera
free -k
free -m

free -g
free --tebi
free --pebi
free --kilo --si
free -h -t

free -s 5
free -s 3 -c 4
free -h --si -s 5 -c 4
watch free -h


## 4. iostat
apt-get install sysstat

iostat
iostat -c
iostat -d
iostat -h

iostat -m
iostat -o JSON

iostat -p
iostat -x

iostat -y -p /dev/dvd 1
iostat -z

iostat /dev/sr0
iostat -p /dev/sr0
iostat -p /dev/sr0 1

```
df -hl
iostat -xk -t 10 | awk '// {print strftime("%Y-%m-%d %H:%M:%S"),$0}' >> iostat.log &
iostat -xk -t 10 | awk '// {print strftime("%Y-%m-%d %H:%M:%S"),$0}'
```


## 5. mpstat
mpstat -A

mpstat -P ALL
mpstat -P 0
mpstat -V
mpstat --help

## 6. vmstat
vmstat
vmstat -a
vmstat -f
vmstat -d
vmstat -D

vmstat 1
vmstat --help

## 7. Утилита/команда " w "
w
w -h
w -u
w -s
w -f
w -i
w -o
w -V

## 8. Утилита htop
apt install htop

htop

htop -t

htop -d 20

# Практическая работа №2.2
## 1. Установка пакетов SSH
Установка с помощью команды `apt-get install ssh`

Проверка статуса. Команда `systemctl status sshd`

Заходим в файл /etc/ssh/sshd_config с помощью nano.
Убираем знак диеза перед Port 22 и меняем порт на 2225. Теперь подключение будет осуществляться по порту 2225
Отключаем рут доступ: убрать диез перед PermitRootLogin и ставим "no".

Перезапустим ssh, чтобы настройки применились. Команда:
`service ssh restart`

Зайдём через putty с хостовой системы, порт укажем новый (2225), hostname - 192.168.132.140

Далее необходимо ввести логин и пароль

# Практическая работа №2.3
В роли клиента у нас будет выступать ВМ ubuntu. С помощью команды `ssh-keygen` создадим ключи для подключения по ssh
Создание ключа

Скопируем ключ на сервер (хост 192.168.132.140) по порту 2225, команда `ssh-copy-id user@192.168.132.140 -p 2225`. После ввода команды потребуется ввести пароль от учетной записи сервера.

Копирование прошло успешно, введём команду ssh -p '2225' 'user@192.168.132.140'. Пароль вводить не нужно, вход выполнен, проверим, на что мы зашли командой `uname -a`.

Заходим в файл /etc/ssh/sshd_config с помощью nano уже на нашем сервере и отключаем подключение по паролю. Перезапускаем.

# Практическая работа №2.4
## 1.Базовый сбор информации
cat /etc/release - информация о дистрибутиве, версии

uname -a - показать информацию о ядре системы
whoami - показать, под каким пользователем находимся
uptime - когда и сколько работала машина
ls -la /home - подробно показать информацию о директории home и вывести скрытые файлы
chomd o-rx - убрать права на чтение и запуск группы других пользователей
ip neigh - показывает с какими компьютерами происходит обмен данными
ss -tlnp - показывает какие сервисы и с какими портами запущены
sudo -l - позволяет нам понять, что есть в этой машинк и что пользователь может. Root-пользователь может запускать всё

## 2.Суидные файлы
Просмотр закладок с помощью следующей команды:
`find / -user root -perm -4000 -exec ls -ldb {} \\; 2> /dev/null`

Загрузка утилиты lynis. Команда `wget https://downloads.cisofy.com/lynis/lynis-3.0.8.tar.gz`

Разархивация. Команда `tar xfv lynis-3.0.8.tar.gz`

Проверка контрольной суммы. Команда `sha256sum lynis-3.0.8.tar.gz`

Информация с сайта

Сумма совпадает
Переходим в директорию lynis: `cd lynis`. Просматриваем данные в ней: `ls`

Аудит системы. Команда ./lynis audit system


Вывод опций ./lynis show options

Перенаправим вывод в/var/log/lynis-report.dat перенаправим вывод

## 3. Проверка целостностей пакетов
dpkg -l

dpkg -L coreutils - посмотреть все установленные утилиты

Посмотрим подробнее информацию об утилите /bin/dir с помощью опции --help:

Затем (на скриншоте выше) перенесём данную утилиту в /bin/dir.bak с помощью команды mv (mv /bin/dir /bin/dir.bak)
Потом переименуем /bin/false в /bin/dir с помощью cp.
также установим debsums с помощью apt install
`debsums -cs coreutils`
`debsums -ac coreutils`
`debsums -ac`
`dpkg --verify coreutils`

find / -printf "%T@;%Tc;%p\\n"

find /root -printf "%T@;%Tc;%p\\n" > timeline.csv

head timeline.cvs

sort -rn timeline.csv | less


# 5 Практическая работа №2.5
Проверим, загружен ли coreutils (apt-get install coreutils)

Посмотрим переменные окружения (printenv)

Создадим переменную окружения (env HOME=/home/nlo)

## 1 Установка и удаление локальных переменных окружения
HOMETEST=/home/nlo - созданние
echo $HOMETEST - показать значение этой переменной
unset $HOMETEST - удалить переменную окружения
echo $HOMETEST - показать значение этой переменной (пусто, потому что удалили её)

## 2 Добавление и удаление пользовательских переменных
Также можно с помощью nano перейти в .bashrc
В конца файла напишем export NEWTEST='/home/user' и затем применим настройки командой source .bashrc (потому что обновление происходит при повторном запуске файла)
echo $NEWTEST выведет значение новой переменной

## 3 Создание и удаление системных переменных окружения
Также, как и в пункте выше, но заходим уже в /etc/profile. Теперь у нас новая переменная TEST, которая указывает на /home/nlo

Обновление и проверка
