Admin Guides | Сисадмин
11.4K subscribers
1.23K photos
19 videos
34 files
557 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
Какой механизм позволяет ядру Linux выгружать редко используемые страницы памяти на диск?
Anonymous Quiz
55%
Swap
23%
Page Cache
4%
OOM Killer
18%
Kernel Paging
👍8🤣6
Восстановление root-пароля в Ubuntu

Забыли root-пароль в Ubuntu? Не паникуйте! Сбросить пароль можно за несколько минут. Мы рассмотрим два способа восстановления: через Recovery Mode и альтернативный метод через Grub.

Эти методы работают на обычных системах, а также в виртуальных машинах (VMware, VirtualBox).

Способ 1: Сброс пароля через Recovery Mode

Этот метод удобен, если у вас есть доступ к меню загрузки Grub.

Шаг 1: Вход в режим восстановления
1. Перезагрузите компьютер.
2. Если меню Grub не появляется автоматически, нажимайте Shift во время загрузки.
3. В меню выберите Advanced Options for Ubuntu.
4. Найдите вариант с (recovery mode) и выберите его.

После небольшой загрузки появится меню восстановления.

Шаг 2: Переход в командную строку root
1. В списке выберите Root (Drop to root shell prompt).
2. Нажмите Enter – вы попадете в терминал с root-доступом.

Шаг 3: Разрешение записи в корневой раздел

По умолчанию корневой раздел доступен только для чтения, поэтому перед изменением пароля нужно разрешить запись:

mount -rw -o remount /


Шаг 4: Сброс пароля
1. Посмотрите список пользователей:

ls /home


Здесь будут показаны все пользовательские папки – выберите нужного пользователя.

2. Сбросьте пароль:

passwd username


(вместо username подставьте имя пользователя).

3. Дважды введите новый пароль.

Шаг 5: Перезагрузка системы
1. Введите команду выхода:

exit


2. Вернетесь в меню восстановления – выберите Resume boot для загрузки системы.
3. После перезагрузки можно войти с новым паролем.

Способ 2: Сброс пароля через Grub

Этот метод подходит, если Recovery Mode недоступен или не работает.

Шаг 1: Изменение параметров в Grub
Перезагрузите компьютер и нажимайте Shift, пока не появится меню Grub.
Дальше выберите Ubuntu и нажмите E (редактировать параметры загрузки). И найдите строку, начинающуюся с linux, замените ro на rw и добавьте в конец:

init=/bin/bash


Нажмите Ctrl + X, чтобы загрузиться в систему.

Теперь вы окажетесь в командной строке bash без пароля.

Шаг 2: Смена пароля
Введите команду:

passwd username


Дважды введите новый пароль. И перезагрузите систему командой:

shutdown -r now


После перезагрузки вы сможете войти в систему с новым паролем.

Возможные ошибки и их решение

Ошибка “Authentication token manipulation error”

Проблема: Файловая система доступна только для чтения.
Решение: Разрешите запись перед изменением пароля:

mount -rw -o remount /


Нет пункта “Recovery Mode” в Grub

Проблема: В меню загрузки отсутствует пункт Recovery Mode.
Решение:
• Выберите Ubuntu в Grub, нажмите E для редактирования параметров.
• В конце строки загрузки добавьте single.
• Нажмите Ctrl + X или F10, чтобы загрузиться в терминал суперпользователя.

Ошибка “end Kernel panic” при загрузке

Проблема: Ошибка загрузки ядра.
Решение: Удалите параметр splash boot при редактировании загрузки в Grub.

Ошибка “Failed to connect to bus” при перезагрузке

Проблема: Некорректное завершение системы после смены пароля.
Решение: Используйте команду:

exec /sbin/init
Please open Telegram to view this post
VIEW IN TELEGRAM
👍375🤨1
🧓🏻📱 “Дед, ну не тупи!” – или как не отстать от технологий, а зарабатывать на этом!

Помните, как учили деда пользоваться кнопочным телефоном?
Он держал его, как инопланетный артефакт. Не понимал, куда нажимать. Вы злились, объясняли, но он всё равно не понимал.

Теперь представьте: в будущем ваши внуки так же будут учить ВАС. Вы будете смотреть на нейросети, технологии и ИИ с таким же ужасом 🤯

Звучит страшно? НО ВЫХОД ЕСТЬ!

💻👉🏻
Hey, Tech! | Технологии и AI - место, где тебе не дадут устареть. Где ты каждый день будешь узнавать, как развивается мир технологий, что стоит за нейросетями и как они могут работать на тебя и твой кошелек.

💰 Мы рассказываем о свежих способах заработка на нейросетях, новых платформах и трендах.

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

📲 Подпишись на Hey, Tech! | Технологии и AI и забудь о страхе стать “дедом, который не шарит”.
6👍5😁3
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работает Keepalived и зачем он нужен?

Ответ: Keepalived — это сервис для настройки отказоустойчивости и балансировки трафика с помощью VRRP (Virtual Router Redundancy Protocol). Он позволяет автоматически переключать виртуальный IP-адрес (VIP) между узлами при сбоях.

Основные компоненты:
VRRP-инстанс: следит за состоянием узлов и управляет VIP.
Script-checks: выполняет пользовательские проверки работоспособности.
Notify-скрипты: запускаются при смене активного узла.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3
Типичный путь сисадмина
🔥30😁20👍3
🤔Что нужно, чтобы настроить разработку, тестирование и развертывание наиболее рациональным образом?

👉🏻 Сделали развернутый обзор актуальных DevOps инструментов в 2025 году

Расскажем:
✔️ Основные категории DevOps инструментов
✔️ Развернутый обзор популярных DevOps инструментов
✔️ Почему DevOps инструменты необходимы?

👉🏻Забрать разбор в боте

Реклама ООО «Слёрм» ИНН 3652901451
👍1
Как определить версию Linux?

Linux — это целое семейство операционных систем, и иногда бывает необходимо узнать, какая именно версия установлена.

Особенно это актуально при установке программ, обновлениях или настройке системы.


Самый простой способ — использовать команду:

hostnamectl


Она покажет название дистрибутива, его версию, кодовое имя и текущую версию ядра.

Важное уточнение

Часто всю систему называют просто Linux, но технически это неверно. Linux — это только ядро системы, а GNU — это набор библиотек и инструментов, которые делают систему полноценной. Вместе они образуют GNU/Linux, хотя в обиходе принято сокращать до просто Linux.

Дополнительные способы определения версии

Проверка пакетного менеджера

Если hostnamectl вам не помог, можно определить систему по ее пакетному менеджеру. В Linux чаще всего используются три основных менеджера пакетов:
rpm – для Red Hat-подобных систем (RHEL, CentOS, Fedora)
dpkg – для Debian-подобных систем (Debian, Ubuntu, Mint)
pacman – для Arch Linux и его производных (Manjaro)

Чтобы проверить, какой пакетный менеджер установлен, выполните:

for i in rpm dpkg pacman; do which $i; done 2>/dev/null


Вывод покажет путь к используемому менеджеру. Например:
• /usr/bin/dpkg – указывает на Debian/Ubuntu
• /bin/rpm – указывает на Red Hat (RHEL, CentOS, Fedora)

Проверка версии дистрибутива

CentOS и RHEL

Для CentOS:

cat /etc/centos-release


Для RHEL:

cat /etc/redhat-release


Для Fedora аналогично:

cat /etc/fedora-release


Debian, Ubuntu, Mint

cat /etc/issue


Этот файл содержит информацию о версии дистрибутива.

Arch Linux

Для Arch Linux проверять версию бессмысленно, так как при каждом обновлении (pacman -Syu) система становится актуальной версией.

Проверка системных параметров

Версия ядра и архитектура

Узнать версию ядра и разрядность системы можно командой:

uname -a


Вывод будет содержать информацию о версии ядра и архитектуре процессора (x86_64, arm и т. д.).

Архитектура процессора

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

lscpu


Она покажет модель процессора, количество ядер, тактовую частоту и разрядность.
👍15👎1
‼️ Администрация нашего канала специально для вас купила доступ в частный клуб за 1500 долларов

Тезисно: в канале будут сигналы, новости, обзор рынка, которых нет в официальном доступе, общение с единомышленниками, обучение - без него никуда и конечно юмор.

До завтрашнего дня оставлю доступ в канал бесплатным. Все, кто успеет подписаться - останутся бесплатно навсегда. Кто захочет подписаться после 25 февраля, смогут сделать это только платно 👇

Вступить — https://t.iss.one/+vRkxpCeXULlkMDli
💊14😁3🤪3👍1🔥1
Morse Micro представила Wi-Fi HaLow маршрутизатор с дальностью до 16 км

Morse Micro выпустила маршрутизатор MM−HL1−EXT на базе Wi-Fi HaLow (IEEE 802.11ah). Он передаёт данные на 16 км в открытой местности и до 3 км в городе.

Работает в диапазонах 900 МГц (США) и 868 МГц (EMEA), обеспечивая устойчивый сигнал, но с ограничением скорости до 32 Мбит/с. Также поддерживает Wi-Fi 4 (2,4 ГГц) с пиковыми 300 Мбит/с.


Внутри двухъядерный MediaTek MT7621A, 256 МБ ОЗУ и чип MM6108 (мощность 23 дБм). Есть порты Ethernet WAN/LAN, USB-C и поддержка OpenWrt 23.05.

Маршрутизатор уже продаётся в США, Канаде и Австралии за $99.

В сентябре Morse Micro установила рекорд, передав Wi-Fi HaLow на 15,9 км.
👍16🔥61😁1
Какой параметр ядра можно использовать для включения защиты от атак типа “Stack Smashing”?
Anonymous Quiz
33%
kernel.randomize_va_space
18%
kernel.nx
24%
fs.protected_symlinks
25%
net.ipv4.tcp_syncookies
👍5
Как расширить диск сервера в CentOS? (Часть 1)

Очень частая ситуация: виртуальная машина на Linux (CentOS) работает долго, пока в какой-то момент не заканчивается место. В Hyper-V или VMware можно просто увеличить виртуальный диск, но внутри системы ничего не изменится, и сервер все равно будет считать, что дисковое пространство осталось прежним.

В этой инструкции разберем, как расширить диск в CentOS, управляя Physical Volume (PV), Volume Group (VG) и Logical Volume (LV).

Можно ли расширить существующий диск?

Перед тем как что-то делать, проверьте, есть ли у вас возможность создать новый раздел.

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

Проверяем количество разделов командой:

fdisk -l


Пример вывода, где можно добавить новый раздел:

Device Boot      Start         End      Blocks   Id  System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 2636 20972857+ 8e Linux LVM


У нас 2 раздела — значит, можно добавить еще 2.

А вот если уже 4 раздела, то расширение невозможно:

Device Boot      Start         End      Blocks   Id  System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 2636 20972857+ 8e Linux LVM
/dev/sda3 2637 19581 136110712+ 8e Linux LVM
/dev/sda4 19582 22844 26210047+ 8e Linux LVM


В этом случае придется создавать новый диск, а не расширять существующий.

Если у вас менее 4 разделов, идем дальше!

Создание нового раздела

Допустим, вы уже увеличили виртуальный диск, и система его видит. Теперь создадим новый раздел.

1️⃣Проверяем текущие диски командой:

fdisk -l


Пример вывода:

Disk /dev/sda: 10.7 GB, 10737418240 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 391 3036285 8e Linux LVM


2️⃣ Запускаем fdisk для редактирования диска:

fdisk /dev/sda


3️⃣Внутри утилиты вводим:
• n → создаем новый раздел
• p → выбираем Primary (основной)
• Указываем номер (например, 3)
• Дважды нажимаем Enter, чтобы использовать все доступное место

4️⃣Меняем тип раздела на LVM (8e):

t
3
8e


5️⃣Сохраняем изменения:

w


Обновление таблицы разделов

Теперь нужно, чтобы система увидела новый раздел. Запускаем:

partprobe -s


Если не сработало, попробуйте:

partx -v -a /dev/sda


Если после этого новый раздел не появился, придется перезагрузить сервер.

Проверяем результат:

fdisk -l


Если новый раздел появился (например, /dev/sda3), значит, все прошло успешно.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: В чем разница между source script.sh и ./script.sh в bash?

Ответ: При запуске ./script.sh создается новый процесс, и все переменные внутри скрипта остаются только в его окружении. После завершения скрипта изменения не затрагивают текущую сессию.

При выполнении source script.sh (или . script.sh) код исполняется в текущем процессе shell, а все изменения (например, объявленные переменные) сохраняются в текущей сессии.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍222🔥21
Продвинутые CLI-команды для разработчиков (Часть 1)

Нет, здесь мы не будем говорить о базовых командах вроде ls, rm и cd. Вы и так их знаете.

Эта статья для тех, кто уже уверенно работает в терминале и хочет прокачать свои навыки.

Wget — загрузка файлов из сети

wget — это утилита для скачивания файлов по HTTP, HTTPS и FTP. Работает в фоновом режиме, не требует взаимодействия с пользователем и позволяет загружать файлы даже после выхода из системы.

Простой пример скачивания файла:

wget https://website.com/static/images/header.jpg


Полезные опции:
• -c — продолжить загрузку, если она была прервана
• -O — задать имя выходного файла
• -r — рекурсивная загрузка (например, всей папки)

Скачивание сайта целиком:

wget -r -np -k https://example.com


SCP — безопасное копирование файлов между серверами

SCP (Secure Copy) — это защищенный способ копирования файлов между удаленными машинами через SSH.

Копирование файла с удаленного сервера на локальный компьютер:

scp [email protected]:/path/to/foobar.txt /local/directory/


Копирование файла с локального компьютера на удаленный сервер:

scp /local/directory/foobar.txt [email protected]:/path/to/destination/


Копирование каталога (с флагом -r):

SSH-ключи — избавляемся от ввода пароля

Чтобы автоматизировать SSH-подключения и работу с Git, создайте пару ключей с помощью:

ssh-keygen -t ed25519


После генерации добавьте публичный ключ на сервер:

ssh-copy-id [email protected]


Теперь можно подключаться без пароля:

ssh [email protected]


CHMOD — управление правами доступа

Изменение прав доступа к файлам:

chmod 664 robots.txt
chmod 775 public/images


Расшифровка:
• 664 — владелец и группа могут читать и записывать, остальные — только читать
• 775 — владелец и группа могут читать, записывать и выполнять, остальные — только читать и выполнять

Полный доступ ко всем:

chmod 777 script.sh
👍16
🤣13👍3😱2🥱2😁1
Слышали ли вы, что...

SRE — это просто «продвинутый DevOps»,
внедрение SRE требует огромных ресурсов и подходит только гигантам вроде Google,
SRE занимается только устранением инцидентов.

Правда в том, что эти и многие другие убеждения далеки от реальности. Мы собрали для вас PDF-файл, в котором разоблачаем самые популярные мифы о SRE.

Это must-have для тех, кто хочет понять, как SRE может помочь именно вашей работе и бизнесу, без лишних сложностей и заблуждений.

📍Переходите к боту-помощнику и забирайте полезный PDF прямо сейчас 🔗

Реклама. ООО "СЛЁРМ". ИНН 3652901451. erid: 2W5zFGro77n
👍2
Продвинутые CLI-команды для разработчиков (Часть 2)

Продолжаем разбирать полезные команды, которые помогут вам работать быстрее и эффективнее в терминале.

Tar — архивируем файлы в консоли

tar позволяет создавать и извлекать архивы без потери структуры каталогов.

Создать архив без сжатия:

tar -cvf my-archive.tar /path/to/directory


Создать сжатый архив (с gzip):

tar -czvf my-archive.tar.gz /path/to/directory


Распаковать архив в текущую папку:

tar -xvf my-archive.tar


Распаковать в указанную папку:

tar -xvf my-archive.tar -C /home/user/folder/


Alias — сокращаем длинные команды

Если вы часто вводите длинные команды, создайте для них псевдонимы (alias).

Пример:

alias gs="git status"
alias ll="ls -lah"


Теперь вместо git status можно просто писать gs.

Но! Эти псевдонимы временные — после перезапуска терминала они исчезнут.

Чтобы сделать их постоянными, добавьте их в ~/.bashrc или ~/.zshrc:

echo 'alias gs="git status"' >> ~/.bashrc
source ~/.bashrc


Совет 1: Перенаправление вывода

Вместо того чтобы читать длинный вывод команды в терминале, его можно сохранить в файл:

ls -al > output.txt  # Сохранение вывода в файл
ls -al >> output.txt # Добавление в файл без перезаписи


А если нужен и файл, и экран — используем tee:

ls -al | tee output.txt

Совет 2: Объединение команд


Запустить несколько команд подряд:

ls -al; pwd;

Запустить вторую команду только если первая успешна:

mkdir images && cd images


Запустить вторую команду только если первая провалилась:

mkdir images || echo "Папка уже существует"
👍132
Какие знания ключевые для успешного ИБ-специалиста?
🔴 Знание компьютерных сетей позволяет выявлять 70% уязвимостей, настраивать защиту и анализировать трафик, что критично для предотвращения 90% атак.

Освойте сети за 4 месяца на курсе от Академии Кодебай — стартуем 3 марта. Регистрация

Курс создан для: Junior IT-специалистов, системных администраторов, Web-разработчиков, сетевых инженеров, которые хотят досконально освоить архитектуру сетей

Содержание курса:
✦ Изучение топологии сетей, видов сетевого оборудования
✦ Маршрутизация данных и управление доступом к среде
✦ Протокол IP, транспортный и прикладной уровни
✦ Система имен DNS, безопасность в сетях и противодействие атакам

По всем вопросам пишите @Codeby_Academy
👍2
👍16😁7💯32
Какой инструмент позволяет просматривать открытые сокеты в Linux и фильтровать их по PID?
Anonymous Quiz
23%
netstat
22%
ss
26%
lsof
29%
Все перечисленные
😁10👍6👌3
Настройка и использование Docker Compose

Docker Compose — это инструмент для управления многоконтейнерными приложениями.

Он позволяет описывать и запускать сервисы через YAML-файл, а затем управлять ими с помощью всего одной команды.

1️⃣Установка и настройка проекта

Создайте каталог проекта и перейдите в него:

mkdir composetest  
cd composetest


Создайте файл app.py с простым веб-приложением на Flask + Redis:

import time
import redis
from flask import Flask

app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)

def get_hit_count():
retries = 5
while True:
try:
return cache.incr('hits')
except redis.exceptions.ConnectionError as exc:
if retries == 0:
raise exc
retries -= 1
time.sleep(0.5)

@app.route('/')
def hello():
count = get_hit_count()
return f'Hello World! I have been seen {count} times.'


Создайте requirements.txt для зависимостей:

flask  
redis


Теперь напишем Dockerfile, который описывает, как собирать контейнер:

FROM python:3.7-alpine
WORKDIR /code
ENV FLASK_APP app.py
ENV FLASK_RUN_HOST 0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["flask", "run"]


2️⃣ Конфигурация Docker Compose

Создайте docker-compose.yml, в котором определим сервисы:

version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"


Здесь:
web — наше Flask-приложение, которое собирается из Dockerfile.
redis — сервис Redis, использующий готовый образ.

3️⃣ Запуск проекта

Теперь просто запустите Compose:

docker-compose up


Вы должны увидеть вывод, похожий на этот:

Creating network "composetest_default" with the default driver
Creating composetest_web_1 ...
Creating composetest_redis_1 ...
web_1 | * Running on https://0.0.0.0:5000/


Откройте в браузере https://localhost:5000/, и приложение начнет считать посещения.

4️⃣ Горячая правка кода без пересборки

Чтобы не пересобирать контейнер при изменении кода, обновите docker-compose.yml:

version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
environment:
FLASK_ENV: development
redis:
image: "redis:alpine"


Теперь код изменяется на лету, без пересборки образа.

Пример: измените app.py:

return f'Hello from Docker! I have been seen {count} times.'


Перезагрузите страницу в браузере — новый текст появится без перезапуска контейнера.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍161