Типичный Сисадмин
1.25K subscribers
361 photos
43 videos
199 links
⚙️Информация для системного администратора
Download Telegram
Восстановление удаленных объектов в Active Directory

При удалении любого объекта в Active Directory (пользователя, группы, компьютера или OU), вы можете восстановить его. В этой статье мы рассмотрим, как восстановить удаленный объект в AD с помощью PowerShell и графических инструментов.

Сначала разберемся, что происходит при удалении объекта из каталога AD. Поведение AD при удалении объектов зависит от того включена ли Active Directory Recycle Bin или нет (по умолчанию отключена). В обоих случаях объект не удаляется физически, а помечается как удаленный (атрибут isDeleted = true) и перемещается в специальный контейнер Deleted Objects (не отображается в обычных mmc оснастках управления AD). Однако при включенной корзине AD все атрибуты и членство в группах сохраняется.

https://telegra.ph/Vosstanovlenie-udalennyh-obektov-v-Active-Directory-09-26
Как подключиться к контейнеру Docker по ssh

После того, как у вас появился контейнер Docker, работающий в системе Linux, одна из вещей, которые вам, вероятно, потребуется сделать, – это запустить команды внутри контейнера.

https://telegra.ph/Kak-podklyuchitsya-k-kontejneru-Docker-po-ssh-09-26
1
This media is not supported in your browser
VIEW IN TELEGRAM
RBAC Wizard

RBAC Wizard - это инструмент, который помогает визуализировать и анализировать конфигурации RBAC в кластере Kubernetes. Он обеспечивает графическое представление объектов RBAC Kubernetes.

https://github.com/pehlicd/rbac-wizard
Команды мониторинга и отладки

top отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)

ps -eafw отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)

ps -e -o pid,args --forest вывести PID’ы и процессы в виде дерева

pstree отобразить дерево процессов

kill -9 98989
kill -KILL 98989
«убить» процесс с PID 98989 «на смерть» (без соблюдения целостности данных)

kill -TERM 98989 Корректно завершить процесс с PID 98989

kill -1 98989
kill -HUP 98989
заставить процесс с PID 98989 перепрочитать файл конфигурации

lsof -p 98989 отобразить список файлов, открытых процессом с PID 98989

lsof /home/user1 отобразить список открытых файлов из директории /home/user1

strace -c ls > /dev/null вывести список системных вызовов, созданных и полученных процессом ls

strace -f -e open ls > /dev/null вывести вызовы бибилотек

watch -n1 ‘cat /proc/interrupts’ отображать прерывания в режиме реального времени

last reboot отобразить историю перезагрузок системы

last user1 отобразить историю регистрации пользователя user1 в системе и время его нахождения в ней

lsmod вывести загруженные модули ядра

free -m показать состояние оперативной памяти в мегабайтах

smartctl -A /dev/hda контроль состояния жёсткого диска /dev/hda через SMART

smartctl -i /dev/hda проверить доступность SMART на жёстком диске /dev/hda

tail /var/log/dmesg вывести десять последних записей из журнала загрузки ядра

tail /var/log/messages вывести десять последних записей из системного журнала
3
Шпаргалка по tmux
👍31
Совет по Linux

Найдите все нерабочие символьные ссылки в вашей системе с помощью:


find . -xtype l
2
Шпаргалка по RAID

mdadm — утилита для работы с программными RAID-массивами различных уровней. В данной инструкции рассмотрим примеры ее использования.

Информация о RAID
cat /proc/mdstat - состояние всех RAID
mdadm -D /dev/md0 - подробная инфа о конкретном RAID
lsblk - список дисков с разделами, местом, типом
df -hT - свободное место, тип файловой системы, точки монтирования

Сборка RAID
mdadm —zero-superblock —force /dev/sd{b,c} - обнуление суперблоков на дисках sdb sdc (для удаления инфы о других RAID)
при получении ответа mdadm: Unrecognised md component device - /dev/sdb значит, что диск не использовался для RAID, продолжаем
mdadm —create —verbose /dev/md0 -l 1 -n 2 /dev/sd{b,c}
* где /dev/md0 — устройство RAID, которое появится после сборки; -l 1 — уровень RAID; -n 2 — количество дисков, из которых собирается массив; /dev/sd{b,c} — сборка выполняется из дисков sdb и sdc.

Создание файловой системы и монтирование массива
mkfs.ext4 /dev/md0 - создание файловой системы ext4 на md0
mount /dev/md0 /mnt - разово примонтировать md0 к /mnt
nano /etc/fstab, прописать /dev/md0 /mnt ext4 defaults 1 2 - постоянное монтирование, работает после перезагрузки

Восстановление RAID
Замена жесткого диска
При выходе из строя, команда mdadm -D /dev/md0 выдаст: State : clean, degraded
mdadm /dev/md0 —remove /dev/sdc - удалить сбойный диск
mdadm /dev/md0 —add /dev/sde - добавить новый диск в массив
Статус должен стать Rebuild Status : 40% complete и так до полного восстановления

Пересборка массива
Если нам нужно вернуть ранее разобранный или развалившийся массив из дисков, которые уже входили в состав RAID, вводим:
mdadm —assemble —scan - команда сама найдет необходимую конфигурацию и восстановит RAID.
mdadm —assemble /dev/md0 /dev/sdb /dev/sdc - с указанием из каких дисков пересобрать

Запасной диск (Hot Spare)
Если в массиве будет запасной диск для горячей замены, при выходе из строя одного из основных дисков, его место займет запасной.
mdadm /dev/md0 —add /dev/sdd - Диском Hot Spare станет тот, который просто будет добавлен к массиву

Добавить диск к массиву, расширить массив
Добавление активного диска к RAID, который будет использоваться для работы, а не в качестве запасного.
mdadm /dev/md0 —add /dev/sde

mdadm -G /dev/md0 —raid-devices=3 - расширяем RAID
* в данном примере подразумевается, что у нас RAID 1 и мы добавили к нему 3-й диск.

Установка mdadm
Если каким-то образом в дистрибутиве нет этого пакета
apt-get install mdadm

Удаление массива
Если нам нужно полностью разобрать RAID, сначала размонтируем и остановим его:

umount /mnt
* где /mnt — каталог монтирования нашего RAID.

mdadm -S /dev/md0

Затем очищаем суперблоки на всех дисках, из которых он был собран:
mdadm —zero-superblock /dev/sdb
mdadm —zero-superblock /dev/sdc
mdadm —zero-superblock /dev/sdd
👍41
Руководство по стеку протоколов TCP/IP для начинающих

Cтек протоколов TCP/IP широко распространен. Он используется в качестве основы для глобальной сети интернет. Разбираемся в основных понятиях и принципах работы стека.

Стек протоколов TCP/IP (Transmission Control Protocol/Internet Protocol, протокол управления передачей/протокол интернета) — сетевая модель, описывающая процесс передачи цифровых данных. Она названа по двум главным протоколам, по этой модели построена глобальная сеть — интернет. Сейчас это кажется невероятным, но в 1970-х информация не могла быть передана из одной сети в другую, с целью обеспечить такую возможность был разработан стек интернет-протоколов также известный как TCP/IP.

Разработкой этих протоколов занималось Министерство обороны США, поэтому иногда модель TCP/IP называют DoD (Department of Defence) модель. Если вы знакомы с моделью OSI, то вам будет проще понять построение модели TCP/IP, потому что обе модели имеют деление на уровни, внутри которых действуют определенные протоколы и выполняются собственные функции. Мы разделили статью на смысловые части, чтобы было проще понять, как устроена модель TCP/IP:

https://telegra.ph/Rukovodstvo-po-steku-protokolov-TCPIP-dlya-nachinayushchih-02-11
4
Как вывести список установленных пакетов в Linux по дате?

В Linux можно вывести список установленных пакетов с датой установки с помощью различных инструментов, в зависимости от используемого менеджера пакетов.

1. Для Debian/Ubuntu (dpkg и apt)

grep "install " /var/log/dpkg.log

ИЛИ если лог-файл архивирован:

zgrep "install " /var/log/dpkg.log.*

Для более удобного вывода:

grep "install " /var/log/dpkg.log | awk '{print $1, $2, $5}'

Если система использует journalctl:

journalctl -u apt --no-pager | grep "install "



2. Для RHEL, CentOS, Fedora (dnf, yum)
Список установленных пакетов по дате:

rpm -qa --last

ИЛИ:

rpm -qa --queryformat '%{installtime} %{installtime:date} %{name}-%{version}-%{release}\n' | sort -n

Если используется dnf:

dnf history list

Чтобы получить подробности о конкретной транзакции:

dnf history info <ID_транзакции>

А для yum:

yum history list all



3. Для Arch Linux (pacman)

expac --timefmt='%Y-%m-%d %T' '%l\t%n' | sort -n

ИЛИ:

grep -E 'installed' /var/log/pacman.log



4. Для OpenSUSE (zypper)

zypper info --installed-only | grep -B 2 "Install Date"



Вывод в удобном формате
Если нужно отсортировать пакеты по дате и времени:

rpm -qa --queryformat '%{installtime:date} %{name}\n' | sort

Для Debian/Ubuntu:

grep "install " /var/log/dpkg.log | awk '{print $1, $2, $5}' | sort
Please open Telegram to view this post
VIEW IN TELEGRAM
Шпаргалка по командам в Ubuntu
1
Скрипт для мониторинга дискового пространства в Linux

Скрипт ниже предназначен для мониторинга использования дискового пространства на указанном разделе сервера. Настраиваемые параметры включают в себя максимально допустимый процент использования дискового пространства (`MAX`), адрес электронной почты для получения оповещений (`EMAIL`) и целевой раздел (`PARTITION`).

Скрипт использует команду df для сбора информации об использовании диска и отправляет предупреждения по электронной почте, если текущее использование превышает заданный порог.



#!/bin/bash

# Set the maximum allowed disk space usage percentage
MAX=90

# Set the email address to receive alerts
EMAIL=user@example.com

# Set the partition to monitor (change accordingly, e.g., /dev/sda1)
PARTITION=/dev/sda1

# Get the current disk usage percentage and related information
USAGE_INFO=$(df -h "$PARTITION" | awk 'NR==2 {print $5, $1, $2, $3, $4}' | tr '\n' ' ')
USAGE=$(echo "$USAGE_INFO" | awk '{print int($1)}') # Remove the percentage sign

if [ "$USAGE" -gt "$MAX" ]; then
# Send an email alert with detailed disk usage information
echo -e "Warning: Disk space usage on $PARTITION is $USAGE%.\n\nDisk Usage Information:\n$USAGE_INFO" | \
mail -s "Disk Space Alert on $HOSTNAME" "$EMAIL"
fi
👍32
Полное руководство по Docker Secrets

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

https://earthly.dev/blog/docker-secrets/
1
Основные команды PowerShell

1. Основные команды управления системой:
- Get-Help: Получение справки о командах. Например, Get-Help Get-Process показывает справку о команде Get-Process.
- Get-Command: Показать список всех доступных команд или команд, связанных с определённой задачей. Пример: Get-Command *process*.
- Get-Service: Показать все службы, установленные на системе.
- Start-Service: Запустить службу. Пример: Start-Service -Name "wuauserv".
- Stop-Service: Остановить службу.
- Restart-Service: Перезапустить службу.

2. Работа с файлами и каталогами:
- Get-ChildItem: Просмотреть файлы и каталоги (аналог команды dir или ls`). Пример: `Get-ChildItem C:\.
- Set-Location: Перейти в другой каталог (аналог cd`). Пример: `Set-Location C:\Users.
- Copy-Item: Копировать файл или папку. Пример: Copy-Item C:\source.txt C:\destination.txt.
- Move-Item: Переместить файл или папку. Пример: Move-Item C:\file.txt C:\archive\file.txt.
- Remove-Item: Удалить файл или папку. Пример: Remove-Item C:\file.txt.
- New-Item: Создать новый файл или каталог. Пример: New-Item -Path C:\ -Name "file.txt" -ItemType "file".

3. Информация о системе и процессах:
- Get-Process: Показать список всех запущенных процессов.
- Stop-Process: Остановить процесс. Пример: Stop-Process -Name "notepad".
- Get-EventLog: Просмотр журналов событий (Event Logs). Пример: Get-EventLog -LogName Application.
- Get-WmiObject: Получить информацию о системе, например, о процессоре или установленной ОС. Пример: Get-WmiObject Win32_OperatingSystem.

4. Работа с пользователями и группами:
- Get-LocalUser: Показать всех локальных пользователей.
- New-LocalUser: Создать нового локального пользователя. Пример: New-LocalUser -Name "TestUser" -Password (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force).
- Remove-LocalUser: Удалить локального пользователя.
- Add-LocalGroupMember: Добавить пользователя в локальную группу. Пример: Add-LocalGroupMember -Group "Administrators" -Member "TestUser".

5. Работа с переменными и данными:
- Set-Variable: Установить переменную. Пример: Set-Variable -Name "MyVar" -Value "Hello".
- Get-Variable: Показать значения переменных.
- Remove-Variable: Удалить переменную.
- Export-Csv: Экспорт данных в CSV-файл. Пример: Get-Process | Export-Csv -Path "C:\processes.csv".
- Import-Csv: Импорт данных из CSV-файла. Пример: Import-Csv -Path "C:\processes.csv".

6. Потоки данных и конвейеры:
- | (Pipeline): Передача данных от одной команды к другой. Пример: Get-Process | Where-Object { $_.CPU -gt 100 } — вывести процессы, которые используют больше 100 единиц процессорного времени.
- Out-File: Записать результат команды в файл. Пример: Get-Process | Out-File -FilePath "C:\processes.txt".
- Select-Object: Выбор определённых полей. Пример: Get-Process | Select-Object -Property Name, CPU.

7. Сетевые команды:
- Test-Connection: Проверить доступность компьютера (аналог команды ping`). Пример: `Test-Connection google.com.
- Get-NetIPAddress: Показать список всех IP-адресов на машине.
- Get-NetAdapter: Показать информацию о сетевых адаптерах.

8. Скрипты и автоматизация:
- Invoke-Command: Выполнить команду на удалённой системе. Пример: Invoke-Command -ComputerName "Server1" -ScriptBlock { Get-Process }.
- Start-Job: Запустить задачу в фоне. Пример: Start-Job -ScriptBlock { Get-Process }.
- Get-Job: Показать статус фоновых задач.
- Receive-Job: Получить результат выполнения фоновой задачи.

9. Обновления и безопасность:
- Install-Module: Установка PowerShell-модулей. Пример: Install-Module -Name "PSWindowsUpdate".
- Update-Module: Обновление установленных модулей.

10. Дополнительные команды:
- Clear-Host (или `cls`): Очистить экран.
- Exit: Выйти из сеанса PowerShell.
- Measure-Object: Подсчитать количество объектов, или сумму значений. Пример: Get-ChildItem | Measure-Object.
3
ArcherySec — open-source инструмент, который позволяет проводить сканирование инфраструктуры

export TIME_ZONE='Asia/Kolkata'
git clone https://github.com/archerysec/archerysec.git
cd archerysec
NAME=User EMAIL=user@user.com PASSWORD=admin@123A bash setup.sh
./run.sh


ArcherySec интегрируется с 80+ коммерческими и открытыми инструментами и имеет удобный ArcherySec CLI — локально развертываемый инструмент командной строки, предназначенный для запуска на любом хосте Linux.

https://github.com/archerysec/archerysec
2👍2
PowerShell: используем Invoke-Command для запуска команд/скриптов на удаленных компьютерах

В этой статье мы рассмотрим особенности использования командлета Invoke-Command для удаленного выполнения команд и скриптов. Возможно запускать команды удаленно на одном компьютере, или параллельно на множестве компьютерах в вашей сети. Командлет Invoke-Command использует возможности удаленного управления, заложенные в PowerShell Remoting. PowerShell Remoting позволяет удаленно подключаться к PowerShell сессиям на компьютерах через службу WinRM (Windows Remote Management) через протокол Web Services for Management (WS-Management). Этот сервис дает возможность принимать команды Powershell и устанавливать сеансы.

https://telegra.ph/PowerShell-ispolzuem-Invoke-Command-dlya-zapuska-komandskriptov-na-udalennyh-kompyuterah-09-26
Полезные команды Linux. Средство управления пакетами - YUM ( Fedora, RedHat и т.д. )

# yum list
Вывести листинг пакетов, установленных в системе

# yum clean headers
Удалить все заголовки файлов, которые система использует для разрешения зависимостей

# yum clean [package]
Очистить rpm-кэш, удалив закачанные пакеты

# yum search [package]
Найти пакет в репозитории

# yum clean all
Очистить rpm-кэш, удалив закачанные пакеты и заголовки

# yum -y install [ package ]
Скачать и установить пакет

# yum update [package]
обновить пакет

# yum -y update
Обновить все пакеты, установленные в систему

# yum localinstall [ package.rpm ]
Попытаться установить пакет RPM и все зависимые от него пакеты, используя ваши репозитории

# yum remove [package]
Удалить пакет
1
Полезные команды Linux. Анализ файловой системы

# badblocks -v /dev/hda1
Проверить раздел hda1 на наличие bad-блоков

# fsck /dev/hda1
Проверить и при необходимости попробовать восстановить целостность linux-файловой системы раздела hda1

# fsck.ext2 /dev/hda1
Проверить и при необходимости попробовать восстановить целостность файловой системы ext2 раздела hda1

# fsck.msdos /dev/hda1
Проверить и при необходимости попробовать восстановить целостность файловой системы fat раздела hda1

# fsck.vfat /dev/hda1
Проверить и при необходимости попробовать восстановить целостность файловой системы fat раздела hda1

# fsck.ext3 /dev/hda1
Проверить и при необходимости попробовать восстановить целостность файловой системы ext3 раздела hda1

# dosfsck /dev/hda1
Проверить и при необходимости попробовать восстановить целостность файловой системы fat, раздела hda1

# e2fsck /dev/hda1
Проверить и при необходимости попробовать восстановить целостность файловой системы ext2 раздела hda1

# e2fsck -j /dev/hda1
Проверить и при необходимости попробовать восстановить целостность файловой системы ext3 раздела hda1, журнал файловой системы расположен там же
1
Stacer – Опенсорсная утилита для оптимизации и мониторинга Linux-систем

https://github.com/oguzhaninan/Stacer
1👍1😢1
Создаем логические тома LVM на Linux

Система хранения данных – один из тех кардинальных компонентов, без которых ваш сервер не может обойтись, и поэтому требует к себе пристального внимания, несмотря ни на что.

Это краткое руководство по внедрению LVM на вашем linux-сервере или рабочей станции.

https://telegra.ph/Sozdaem-logicheskie-toma-LVM-na-Linux-10-09
👍21