Admin Guides | Сисадмин
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов. Админ, реклама: @Ak_Mihail Биржа: https://telega.in/c/admguides РКН: https://kurl.ru/nQejS
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Admin Guides | Сисадмин
تُعد قناة Admin Guides | Сисадмин (@admguides) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 11 644 مشتركاً، محتلاً المرتبة 10 749 في فئة التكنولوجيات والتطبيقات والمرتبة 56 330 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 11 644 مشتركاً.
بحسب آخر البيانات بتاريخ 23 يونيو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار 45، وفي آخر 24 ساعة بمقدار 4، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 13.71%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 7.68% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 1 597 مشاهدة. وخلال اليوم الأول يجمع عادةً 894 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 10.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل ядро, /proc, grep, latency, linux.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.
Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides
РКН: https://kurl.ru/nQejS”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 24 يونيو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
0.0.0.0 находят сканерами за минуты.
Смотрим кто слушает и на каком адресе:
ss -tlnp
Колонка Local Address:Port покажет либо 127.0.0.1:6379, либо 0.0.0.0:6379, либо *:6379. Последние два варианта означают что порт открыт наружу если файрвол не блокирует.
Фильтруем сразу всё что слушает на всех интерфейсах:
ss -tlnp | grep -E "0.0.0.0|:::"
Для каждого найденного порта смотрим какой процесс и его конфиг:
ss -tlnp | grep 6379
cat /etc/redis/redis.conf | grep bind
Если bind 0.0.0.0 или bind строка отсутствует вообще, сервис слушает везде по умолчанию.
Проверяем доступность снаружи реально, не из предположений:
nmap -p 6379 <внешний_IP>
⏺Что делать
Привязываем к localhost если внешний доступ не нужен:
bind 127.0.0.1
Если доступ нужен но из ограниченного списка хостов, бинд на конкретный внутренний интерфейс плюс файрвол:
bind 10.0.0.5
iptables -A INPUT -p tcp --dport 6379 -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 6379 -j DROP
⚡️ Файрвол не оправдание для bind 0.0.0.0. Если правило где-то слетит при обновлении конфига или временно отключат для дебага, сервис без аутентификации окажется открыт всему интернету. Bind на нужный адрес это вторая линия защиты, не единственная.apt install lm-sensors
sensors-detect --auto
sensors
Смотрим вывод, находим строку Core 0, Core 1 или Package id 0, это и есть температура CPU.
Скрипт проверки с отправкой алерта:
#!/bin/bash
THRESHOLD=80
BOT_TOKEN="ваш_токен"
CHAT_ID="ваш_chat_id"
TEMP=$(sensors | grep "Package id 0" | awk '{print $4}' | tr -d '+°C')
if (( $(echo "$TEMP > $THRESHOLD" | bc -l) )); then
curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
-d chat_id="${CHAT_ID}" \
-d text="⚠️ CPU temperature: ${TEMP}°C on $(hostname)"
fi
Добавляем в cron каждые 5 минут:
*/5 * * * * /usr/local/bin/cpu_temp_check.sh
Для проверки что бот работает до того как ждать реального перегрева:
curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" -d chat_id="${CHAT_ID}" -d text="test"
⚡️bc может быть не установлен на минимальных образах. Если нет, сравнение чисел можно сделать через awk без внешних зависимостей: awk -v t=”$TEMP” -v th=”$THRESHOLD” ‘BEGIN{exit !(t>th)}’.Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
❓Вопрос: Что такое perf events в Linux и как их используют для профилирования системы?
✅Ответ: perf events — это подсистема ядра Linux для сбора информации о производительности CPU, подсистемы памяти, кэшей и других ресурсов. Она позволяет проводить точное профилирование приложений и ядра без модификации кода.
Применение на практике:
• Сбор статистики по событиям процессора (cache misses, branch mispredictions, CPU cycles).
• Профилирование узких мест в приложениях и ядре.
• Использование инструментов perf, perf stat и perf record для анализа и визуализации данных, что помогает оптимизировать производительность и выявлять узкие места на уровне CPU и памяти.Из vim можно выйти в shell через :shell или запустить команду через :!команда. Получаешь полный root-shell в обход любых ограничений sudoers.sudoedit работает иначе. Копирует файл во временную директорию, открывает копию от имени текущего пользователя в его редакторе, и только после сохранения копирует результат обратно от root. Редактор никогда не получает привилегии.
sudoedit /etc/nginx/nginx.conf
sudo -e /etc/nginx/nginx.conf
Обе команды делают одно и то же.
Редактор выбирается из переменных окружения пользователя в порядке: SUDO_EDITOR, VISUAL, EDITOR. Можно поставить любой:
export SUDO_EDITOR=nano
sudoedit /etc/hosts
В sudoers можно явно разрешить sudoedit и запретить sudo vim:
user ALL=(ALL) sudoedit /etc/nginx/nginx.conf
user ALL=(ALL) !sudo vim /etc/nginx/nginx.conf
Проверяем что разрешено:
sudo -l/tmp очищается при перезагрузке. На большинстве современных систем это вообще tmpfs, то есть RAM. Файл положил, сервер перезагрузился, файла нет./var/tmp переживает перезагрузки. Это обычная файловая система, systemd-tmpfiles чистит её раз в 30 дней по умолчанию. Файлы живут долго. Проверяем что реально смонтировано:
mount | grep tmp
systemd-tmpfiles --cat-config | grep -E "tmp|var/tmp"
Что куда класть
В /tmp идёт то что нужно прямо сейчас: сокеты, pipe-файлы, временные буферы во время работы процесса. Приложения кладут туда lock-файлы, unix sockets, промежуточные данные между шагами скрипта.
⏺В /var/tmp идёт то что должно пережить перезагрузку: кеш пакетного менеджера, временные файлы установщиков, данные которые нужны после рестарта сервиса.
Реальный пример: apt кладёт скачанные пакеты в /var/tmp чтобы не перекачивать если установка прервалась и сервер перезагрузили.# /etc/login.defs PASS_MAX_DAYS 90 PASS_MIN_DAYS 1 PASS_WARN_AGE 14PASS_MAX_DAYS: через сколько дней пароль истекает. PASS_MIN_DAYS: минимум дней до смены, защищает от немедленной смены обратно на старый. PASS_WARN_AGE: за сколько дней предупреждать пользователя. Для существующих пользователей login.defs не применяется задним числом, только chage:
chage -M 90 -m 1 -W 14 username
Смотрим текущую политику пользователя
chage -l username
passwd -S username
chage -l покажет даты последней смены, истечения, предупреждения и блокировки.
Применяем ко всем пользователям разом
for user in $(awk -F: '$3 >= 1000 && $3 != 65534 {print $1}' /etc/passwd); do
chage -M 90 -W 14 $user
echo "$user: $(chage -l $user | grep 'Password expires')"
done
Фильтруем по UID >= 1000 чтобы не трогать системных пользователей.
Принудительная смена при следующем входе
Если нужно сбросить пароль конкретному пользователю:
chage -d 0 username
При следующем SSH-входе система потребует сменить пароль до того как пустит в систему.Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
❓Вопрос: Что такое dirty pages в Linux и как работает механизм writeback?
✅Ответ: Dirty pages - это страницы памяти, которые были изменены в RAM, но ещё не записаны на диск. Они появляются, когда процесс пишет данные в файл, но ядро откладывает запись для оптимизации производительности.
Как это работает:
• При записи в файл данные сначала попадают в page cache и помечаются как dirty.
• Ядро периодически запускает механизм writeback, который сбрасывает dirty pages на диск.
• Это может делать pdflush / flush threads или отдельные kernel workers в зависимости от версии ядра.netstat -s | grep -E "drop|fail|error|overflow"
cat /proc/net/dev
Переполнение очереди входящих пакетов
Пакеты приходят быстрее чем ядро успевает их обработать. Очередь переполняется, остальное дропается:
cat /proc/net/softnet_stat
Третья колонка это dropped. Если растёт, ядро не справляется с входящим потоком. Увеличиваем размер очереди:
sysctl -w net.core.netdev_max_backlog=5000
sysctl -w net.core.rmem_max=16777216
conntrack
Таблица соединений полная, новые пакеты дропаются на уровне netfilter:
cat /proc/sys/net/netfilter/nf_conntrack_count
cat /proc/sys/net/netfilter/nf_conntrack_max
dmesg | grep "nf_conntrack: table full"
Если count близок к max, увеличиваем или чистим устаревшие записи:
sysctl -w net.netfilter.nf_conntrack_max=524288
conntrack -F
Переполнение socket buffer
Приложение не успевает читать из сокета, буфер переполняется:
ss -s
netstat -su | grep "receive errors"
Смотрим конкретные сокеты с переполнением:
ss -unp | awk '$2 > 0'
Ненулевой Recv-Q на UDP говорит что приложение не успевает читать.
iptables
Правило которое дропает трафик молча, без лога:
iptables -L -n -v | grep -v "0 0"
iptables -t nat -L -n -v
Смотрим на счётчики pkts и bytes, ненулевые правила с DROP и REJECT.В обсуждениях на Reddit пользователи просят вернуть прежнюю опцию локальной установки без обходных методов вроде скриптов или Rufus.Microsoft объясняет изменения безопасностью и функциями вроде BitLocker, где ключи восстановления хранятся в облаке. ⏺Часть пользователей считает это оправданным, чтобы не терять доступ к данным, другие - навязанной интеграцией с сервисами компании. Несмотря на внутреннюю критику и обсуждения в Microsoft, компания пока не планирует возвращать простой локальный режим установки.
ls -la /proc/<PID>/ns/
lsns -p <PID>
lsns покажет все namespace к которым принадлежит процесс и сколько процессов их разделяют.
Создаём изолированное окружение вручную
Запускаем shell в новых namespace без Docker:
unshare --pid --net --mount --fork bash
Процесс получает изолированный PID, сеть и файловую систему. Проверяем:
ps aux ip aВидим только свои процессы и пустой сетевой стек. nsenter: заходим в namespace существующего процесса
nsenter -t <PID> --net --pid bash
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
