Системный администратор - Сетевые технологии - Компьютерная помощь
6.88K subscribers
3.11K photos
4.46K videos
1.06K files
661 links
Канал для системных администраторов или те кто работает в ИТ сфере.
📚КНИГИ ПО
💠Cisco systems
💠Mikrotik
💠VoIP
💠Linux
💠 Windows server
💠 Сетевые технологии
📽Видеоуроки
🤝Поддержка
Наша группа: @SySAD
Feedback bot: @SySADbot
Download Telegram
Порты и протоколы 📡💻

🔹 Общие сетевые протоколы
- ARP – Протокол разрешения адресов (сопоставляет IP с MAC-адресом).
- TCP – Протокол управления передачей (соединение с контролем передачи).
- UDP – Протокол дейтаграмм пользователя (бесконтактная передача данных).

🔹 Протоколы управления сетью
- DHCP (udp/67, udp/68) – Протокол динамической конфигурации узла (автоматическая выдача IP).
- DNS (udp/53, tcp/53) – Система доменных имен (преобразует доменные имена в IP).
- ICMP – Протокол управляющих сообщений (используется для диагностики сети).
- SNMP (udp/161) – Простой протокол управления сетью (сбор данных и управление устройствами).
- Telnet (tcp/23) – Доступ к удалённому устройству через консоль.
- SSH (tcp/22) – Безопасный удалённый доступ к устройству (зашифрованный вход в консоль).
- RDP (tcp/3389) – Протокол удалённого рабочего стола (графический интерфейс удалённого управления).

🔹 Приложенческие протоколы
- FTP (tcp/20, tcp/21) – Протокол передачи файлов (отправка и получение файлов между устройствами).
- TFTP (udp/69) – Упрощённая версия FTP (простой способ передачи файлов).
- SMB (tcp/445) – Протокол обмена файлами в Windows (сетевой доступ к файлам и принтерам).
- SMTP (tcp/25) – Простой протокол передачи почты (отправка email).
- POP3 (tcp/110) – Протокол почты версии 3 (получение email в клиенте).
- IMAP4 (tcp/143) – Улучшенная версия почтового протокола (удобное управление email).
- HTTP (tcp/80) – Протокол передачи гипертекста (основа веб-коммуникации).
- HTTPS (tcp/443) – Безопасный HTTP (шифрованное соединение в интернете).
- TLS/SSL (tcp/443) – Протоколы безопасного соединения (защита веб-трафика).
- NetBIOS (udp/137, udp/138, tcp/139) – Протоколы для взаимодействия устройств в локальной сети.

🔹 Протоколы VoIP (голосовая связь по IP)
- SIP (tcp/5060-5061) – Протокол установления соединений (VoIP-сигнализация).
- RTP (динамический порт) – Протокол передачи реального времени (VoIP-аудио/видео поток).
- MGCP (udp/2427, udp/2727) – Протокол управления медиашлюзами.
- H.323 (tcp/1720) – Протокол голосовой связи по IP.

@sysadmin1
👍4🔥322💯2
Инструкция по обжиму витой пары 🛠

@sysadmin1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍32🎉1🏆1
📌 Шпаргалка по управлению LVM (Logical Volume Manager)

📍 Основные компоненты LVM
- PV (Physical Volume) – физический том (жёсткий диск, раздел).
- VG (Volume Group) – группа томов (объединяет PV).
- LV (Logical Volume) – логический том (раздел внутри VG).


🔹 Создание LVM
1️⃣ Создание PV (физического тома)
pvcreate /dev/sdX

📌 Размечаем диск как физический том LVM.

2️⃣ Создание VG (группы томов)
vgcreate my_vg /dev/sdX

📌 Создаём группу томов и добавляем в неё физический диск.

3️⃣ Создание LV (логического тома)
lvcreate -L 10G -n my_lv my_vg

📌 Создаём логический том размером 10 ГБ в группе my_vg.



🔹 Просмотр информации
📋 Список всех PV, VG, LV
pvdisplay  # Физические тома
vgdisplay # Группы томов
lvdisplay # Логические тома


📋 Короткий формат
pvs  # PV
vgs # VG
lvs # LV




🔹 Управление LVM
📏 Расширение LV
lvextend -L +5G /dev/my_vg/my_lv
resize2fs /dev/my_vg/my_lv # Для ext4
xfs_growfs /dev/my_vg/my_lv # Для XFS

📌 Добавляем 5 ГБ к логическому тому и расширяем файловую систему.

🔪 Удаление LV
lvremove /dev/my_vg/my_lv

📌 Удаление логического тома.

🔪 Удаление VG
vgremove my_vg

📌 Удаление группы томов.

🔪 Удаление PV
pvremove /dev/sdX

📌 Удаление физического тома.



🔹 Дополнительно
📍 Автоматическое распределение PV в VG
vgextend my_vg /dev/sdY

📌 Добавляем новый диск в группу томов.

📍 Сжатие LV (уменьшение размера)
umount /dev/my_vg/my_lv
e2fsck -f /dev/my_vg/my_lv
resize2fs /dev/my_vg/my_lv 10G
lvreduce -L 10G /dev/my_vg/my_lv
mount /dev/my_vg/my_lv /mnt

📌 Уменьшаем размер тома до 10 ГБ (осторожно: может привести к потере данных!).

📍 Создание снапшота
lvcreate -L 1G -s -n my_snapshot /dev/my_vg/my_lv

📌 Создаём снапшот логического тома.



🔥 Полезные команды
lsblk  # Просмотр разделов
df -h # Проверка занятого места
blkid # Информация о файловых системах


💡 LVM позволяет динамически изменять размеры томов без перезапуска системы!

@sysadmin1
👍42🔥2🎉1🤝1
📌 Шпаргалка по настройке Postfix

📌 1. Установка Postfix
Ubuntu/Debian:
sudo apt update && sudo apt install postfix -y

CentOS/RHEL:
sudo yum install postfix -y

После установки выбрать "Internet Site" и ввести доменное имя сервера.


📌 2. Основные конфигурационные файлы
📂 /etc/postfix/main.cf – главный конфиг
📂 /etc/postfix/master.cf – управление службами
📂 /etc/postfix/virtual – виртуальные почтовые ящики
📂 /etc/aliases – почтовые алиасы

Перезапуск после изменений:
sudo systemctl restart postfix



📌 3. Основные параметры в main.cf
myhostname = mail.example.com    # Имя почтового сервера
mydomain = example.com # Доменное имя
myorigin = $mydomain # Отправитель по умолчанию
inet_interfaces = all # Разрешить работу на всех интерфейсах
inet_protocols = ipv4 # Только IPv4 (по умолчанию IPv6 тоже включен)
mydestination = $myhostname, localhost.$mydomain, localhost
relayhost = # Ретрансляция отключена



📌 4. Разрешение отправки почты
Добавить в main.cf:
mynetworks = 127.0.0.0/8, 192.168.1.0/24  # Разрешенные сети
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination



📌 5. Настройка SASL (Аутентификация)
📌 Установить SASL:
sudo apt install sasl2-bin -y

📌 Настроить /etc/default/saslauthd:
START=yes
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"

📌 Добавить в main.cf:
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain = $mydomain

Перезапустить службы:
sudo systemctl restart saslauthd postfix



📌 6. Настройка DKIM (Подпись почты)
📌 Установить OpenDKIM:
sudo apt install opendkim opendkim-tools -y

📌 Настроить Postfix (main.cf):
milter_protocol = 2
milter_default_action = accept
smtpd_milters = unix:/run/opendkim/opendkim.sock
non_smtpd_milters = unix:/run/opendkim/opendkim.sock

📌 Сгенерировать ключ DKIM:
sudo opendkim-genkey -b 2048 -d example.com -D /etc/opendkim/keys -s default -v

Добавить в DNS TXT-запись для default._domainkey.example.com.


📌 7. Настройка SPF (Защита от подмены)
Добавить в DNS TXT-запись:

example.com TXT "v=spf1 mx ~all"

Проверка SPF:
nslookup -type=txt example.com



📌 8. Настройка DMARC (Доп. защита)
Добавить в DNS TXT-запись:

_dmarc.example.com TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"



📌 9. Очередь почты в Postfix
📌 Просмотр очереди:
mailq

📌 Удалить все письма:
postsuper -d ALL

📌 Перезапустить доставку писем:
postqueue -f



📌 10. Логирование и отладка
📌 Проверить логи почты:
sudo tail -f /var/log/mail.log

📌 Проверить конфигурацию Postfix:
postconf -n


@sysadmin1
🔥4👍21😁1🎉1
Как найти и удалить большие файлы в Linux?


🔍 Находим файлы больше 1 ГБ:
find / -type f -size +1G 2>/dev/null

📌 Разбор команды:
- / — искать по всей системе (можно заменить на конкретную папку, например, /var/log).
- -type f — искать только файлы (без директорий).
- -size +1G — ищем файлы больше 1 гигабайта.
- 2>/dev/null — скрываем ошибки доступа.

📂 Выводим ТОП-10 самых больших файлов:
find / -type f -exec du -h {} + 2>/dev/null | sort -rh | head -n 10

Это покажет нам список самых больших файлов в системе.

🗑 Удаляем ненужные:
После анализа можно удалить файлы вручную:
rm -f /путь/к/файлу

Осторожно! Безвозвратное удаление. Лучше сначала проверить файлы перед удалением.

🚀 Автоматическое удаление файлов старше 30 дней и больше 500M:
find /var/log -type f -size +500M -mtime +30 -exec rm -f {} \;

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

@sysadmin1
👍2🆒21🔥1🏆1
🔥 Шпаргалка: Обход ограничений root и восстановление пароля root в Linux

1️⃣ Временное получение прав root через sudo
Если root-заблокирован, но есть sudo-пользователь:
sudo su -

Или выполнить команду от имени root:
sudo -i

Если sudo не настроен для пользователя:
su - root

(Требуется пароль root, если не установлен — переходи к следующему пункту)



2️⃣ Восстановление пароля root через режим восстановления (Recovery Mode)
1. Перезагрузи систему и на экране GRUB выбери Advanced optionsRecovery mode
2. Выбери пункт root - Drop to root shell prompt
3. Проверь файловую систему и перемонтируй ее в режим записи:

   mount -o remount,rw /

4. Установи новый пароль root:

   passwd root

5. Перезагрузи систему:

   reboot




3️⃣ Восстановление root-доступа через редактирование GRUB
Если Recovery Mode недоступен, редактируем загрузку GRUB:
1. Перезагрузи сервер
2. В меню GRUB выбери нужную ОС и нажми e (Edit)
3. Найди строку, начинающуюся с linux /boot/... и в конце допиши:

   init=/bin/bash

4. Нажми Ctrl + X или F10 для загрузки
5. Перемонтируй файловую систему:

   mount -o remount,rw /

6. Сбрось пароль root:

   passwd root

7. Перезагрузи систему:

   exec /sbin/init




4️⃣ Восстановление root через LiveCD / LiveUSB
Если не удается получить доступ через GRUB, используй загрузочный Linux (LiveCD):
1. Загрузи систему с LiveCD (Ubuntu, Debian, Kali и т. д.)
2. Определи диск с установленной ОС:

   fdisk -l

3. Подключи диск:

   mount /dev/sdXn /mnt

4. Перейди в среду chroot:

   chroot /mnt

5. Сбрось пароль root:

   passwd root

6. Перезагрузи систему:

   reboot




5️⃣ Восстановление root-доступа в системах с SELinux
Если включен SELinux, после сброса пароля root обязательно обнови контекст:
touch /.autorelabel

или
restorecon -v /etc/shadow




6️⃣ Полное удаление пароля root
Если хочешь полностью удалить пароль root, используй команду:
passwd -d root

После этого можно зайти под root без пароля.



⚠️ Важно!
- Используй эти методы только на своих серверах.
- При потере root-доступа заблаговременно настрой sudo или создай резервного пользователя.
- В корпоративных системах возможны дополнительные ограничения (LDAP, PAM, Secure Boot).

@sysadmin1
👍4💯21🔥1🎉1
🔍 Логирование и аудит действий пользователей в Linux

📌 Мониторинг активности пользователей — ключевой аспект безопасности системы. Разбираем инструменты: auditd, last, who, w, history.


🛡 auditd — мощный инструмент аудита
💾 Логи: /var/log/audit/audit.log
🔧 Настройка:
- Запуск и проверка статуса:

  systemctl start auditd
systemctl enable auditd
systemctl status auditd

- Добавление правила аудита (отслеживание изменений файла /etc/passwd):

  auditctl -w /etc/passwd -p wa -k passwd_changes

- Просмотр лога:

  ausearch -k passwd_changes

- Фильтрация по пользователю (UID 1000):

  ausearch -ua 1000



🔙 last — история входов в систему
- Показать список последних входов:

  last

- Фильтр по пользователю:

  last username

- Проверка перезагрузок:

  last reboot



🕵 who — активные пользователи
- Кто в системе сейчас:

  who

- Подробная информация:

  who -a



📊 w — активность пользователей
- Кто в системе и что делает:

  w

- Разбор вывода:
- USER — имя пользователя
- TTY — терминал
- IDLE — время бездействия
- COMMAND — выполняемая команда



📜 history — история команд
- Просмотр истории:

  history

- Очистка истории:

  history -c && history -w

- Логирование всех команд в реальном времени (добавить в ~/.bashrc):

  export HISTTIMEFORMAT="%d/%m/%y %T "
export PROMPT_COMMAND="history -a"


Сохраняй и делись с коллегами! 🚀

👉 @sysadmin1
🔥4👍21🎉1👌1
This media is not supported in your browser
VIEW IN TELEGRAM
Fuck - это великолепная утилита, которое исправляет ошибки в предыдущих консольных командах.

Примеры:

apt-get install vim
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?


fuck
sudo apt-get install vim [enter/↑/↓/ctrl+c]
[sudo] password for nvbn:
Reading package lists... Done

...

git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

git push --set-upstream origin master



fuck
git push --set-upstream origin master [enter/↑/↓/ctrl+c]
Counting objects: 9, done.
...




Установка

На Ubuntu / Mint установите The Fuck с помощью следующих команд:
sudo apt update
sudo apt install python3-dev python3-pip python3-setuptools
pip3 install thefuck --user


На FreeBSD установите The Fuck с помощью следующих команд:
pkg install thefuck

На macOS или Linux установить The Fuck можно через Homebrew:
brew install thefuck

https://github.com/nvbn/thefuck

@sysadmin1
😁7🤣4👀3🔥2😍1
В России можно посещать IT-мероприятия хоть каждый день: как оффлайн, так и онлайн

Но где их находить? Как узнавать о них раньше, чем когда все начнут выкладывать фотографии оттуда?

Переходите на канал IT-Мероприятия России. В нём каждый день анонсируются мероприятия со всех городов России

📆 в канале размещаются как онлайн, так и оффлайн мероприятия;
👩‍💻 можно найти ивенты по любому стеку: программирование, frontend-backend разработка, кибербезопасность, дата-аналитика, osint, devops и другие;
🎙 разнообразные форматы мероприятий: митапы с коллегами по цеху, конференции и вебинары с известными опытными специалистами, форумы и олимпиады от важных представителей индустрии и многое другое

А чтобы не искать по разным форумам и чатам новости о предстоящих ивентах:

🚀 IT-мероприятия Россииподписывайся и будь в курсе всех предстоящих мероприятий!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍2🎉1🙏1
💡 Типы DNS-записей, которые стоит знать 🖥️🌐

Разбираемся с основными DNS-записями, которые помогают доменам работать корректно! 🔎👇

🔹 A (Address) – привязывает домен к IPv4-адресу. Самый распространенный тип записи.
🔹 CNAME (Canonical Name) – позволяет создать псевдоним для домена, перенаправляя его на другой домен.
🔹 TXT (Text) – добавляет текстовые данные в DNS. Используется для SPF (защита e-mail) и других проверок.
🔹 AAAA – аналог A-записи, но для IPv6-адресов.
🔹 SRV (Service Record) – задаёт хост и порт для сервисов (например, VoIP), используется с A-записями.
🔹 PTR (Pointer Record) – выполняет обратное разрешение: сопоставляет IP-адрес с доменным именем.
🔹 NS (Name Server) – указывает авторитетные DNS-серверы для домена, помогая направлять запросы.
🔹 MX (Mail Exchange) – направляет почтовый трафик на нужный сервер, работает с A-записями.

📌 Эти записи критически важны для работы сайтов, почты и сервисов. Если управляете доменами – сохраните себе! 🚀

@sysadmin1
2👍2🔥1🎉1
🔐 Работа с SSH (OpenSSH, ключи, туннели, Port Forwarding)

1️⃣ Подключение по SSH
ssh user@host
ssh -p 2222 user@host # Подключение к нестандартному порту
ssh -i ~/.ssh/id_rsa user@host # Подключение с указанием ключа


2️⃣ Генерация SSH-ключей
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"  # Генерация RSA-ключа
ssh-keygen -t ed25519 -C "your_email@example.com" # Генерация Ed25519-ключа (рекомендуется)

- Открытый ключ id_rsa.pub добавляется на сервер (~/.ssh/authorized_keys).
- Закрытый ключ id_rsa хранится локально.

3️⃣ Добавление ключа в агент SSH
eval "$(ssh-agent -s)"  # Запуск агента
ssh-add ~/.ssh/id_rsa # Добавление ключа в агент


4️⃣ Копирование ключа на сервер
ssh-copy-id user@host
cat ~/.ssh/id_rsa.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"


5️⃣ Конфигурация SSH-клиента (~/.ssh/config)
Файл ~/.ssh/config позволяет задать настройки подключения:
Host myserver
HostName example.com
User myuser
Port 2222
IdentityFile ~/.ssh/id_rsa
ForwardAgent yes

Подключение теперь выполняется просто командой:
ssh myserver




📡 Проброс портов (Port Forwarding)

🔄 Локальный порт-форвардинг (L)
Перенаправляет локальный порт (-L local_port:remote_host:remote_port):
ssh -L 8080:127.0.0.1:80 user@host

- Теперь локальный localhost:8080 перенаправляется на host:80.

🔄 Удаленный порт-форвардинг (R)
Перенаправляет порт сервера на локальный компьютер (-R remote_port:local_host:local_port):
ssh -R 9000:localhost:22 user@host

- Теперь подключение к host:9000 попадёт на localhost:22.

🔄 Динамический порт-форвардинг (SOCKS-прокси)
ssh -D 1080 user@host

- Теперь можно использовать localhost:1080 как SOCKS-прокси.



🔀 Обход брандмауэров (Reverse SSH-туннель)
Если сервер за NAT или firewall, создаем обратное подключение:
ssh -R 2222:localhost:22 user@public-server
ssh -p 2222 localhost # Теперь можно подключаться с public-server обратно




📑 Полезные команды

🔍 Просмотр информации о сервере:
ssh user@host 'uname -a && uptime'


📡 Подключение без выполнения команд (для туннелей):
ssh -N -D 1080 user@host


Подключение с поддержкой восстановления соединения:
autossh -M 0 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -N -D 1080 user@host


🔒 Ограничение команд пользователя в authorized_keys:
command="/path/to/script.sh",no-agent-forwarding,no-X11-forwarding ssh-rsa AAAAB3...




🔥 Дополнительные параметры SSH
🔹 Выключение строгой проверки хоста:
ssh -o StrictHostKeyChecking=no user@host

🔹 Использование прокси:
ssh -o ProxyCommand="nc -X 5 -x proxyhost:1080 %h %p" user@host

🔹 Перезапуск службы SSH:
sudo systemctl restart sshd  # Для systemd
sudo service ssh restart # Для SysVinit

🔹 Проверка лога SSH:
sudo journalctl -u sshd --no-pager | tail -n 20  # Для systemd
sudo tail -f /var/log/auth.log # Для Debian/Ubuntu
sudo tail -f /var/log/secure # Для CentOS


@sysadmin1
👍43🔥3🎉2👨‍💻1
🛠Настройка и диагностика сети (ip, ifconfig, netstat, ss, traceroute, ping)

🏷 IP-адресация и настройка сети
📌 Просмотр текущих сетевых настроек
ip a          # Показать IP-адреса всех интерфейсов
ip addr show # То же самое, но полный вывод
ip r # Просмотр маршрутов (марштизация)
ip link show # Показать сетевые интерфейсы и их состояние


📌 Настройка IP-адреса (временная, до перезагрузки)
ip addr add 192.168.1.100/24 dev eth0  # Добавить IP к интерфейсу eth0
ip addr del 192.168.1.100/24 dev eth0 # Удалить IP


📌 Назначение шлюза (маршрут по умолчанию)
ip route add default via 192.168.1.1


📌 Изменение MAC-адреса (требует отключения интерфейса)
ip link set dev eth0 down
ip link set dev eth0 address 00:11:22:33:44:55
ip link set dev eth0 up




🔍 Диагностика сети
📌 Проверка соединения (ping)
ping 8.8.8.8         # Проверка доступности IP
ping -c 5 8.8.8.8 # Отправить 5 пакетов
ping -i 0.5 8.8.8.8 # Интервал 0.5 сек
ping -s 1024 8.8.8.8 # Размер пакета 1024 байта


📌 Трассировка маршрута (traceroute)
traceroute 8.8.8.8      # Маршрут до IP-адреса
traceroute -I 8.8.8.8 # Использовать ICMP вместо UDP

(если нет traceroute, установите: apt install traceroute)

📌 Просмотр открытых соединений и портов
netstat -tulnp         # Список слушающих портов (старый инструмент)
ss -tulnp # Современная альтернатива netstat
ss -s # Краткая статистика TCP
ss -ant | grep LISTEN # Фильтр активных TCP-портов


📌 Проверка DNS (nslookup, dig)
nslookup google.com       # Запрос DNS через nslookup
dig google.com # Запрос DNS через dig
dig google.com +short # Вывести только IP-адрес


📌 Просмотр ARP-таблицы
ip neigh show        # Аналог "arp -a"


📌 Просмотр таблицы маршрутизации
ip route show        # Аналог "route -n"


📌 Поиск сетевого интерфейса по IP
ip -o addr show | grep "192.168.1.100"




🛠 Дополнительные утилиты
📌 Проверка доступности порта (nc/nmap)
nc -zv 192.168.1.1 22    # Проверить, открыт ли порт 22
nmap -p 22 192.168.1.1 # Аналогично, но через nmap


📌 Тестирование скорости соединения (iperf3)
iperf3 -s            # Запустить сервер (на принимающей стороне)
iperf3 -c 192.168.1.1 # Клиент, тест скорости к указанному IP


📌 Просмотр DHCP-записей (если работает dhclient)
cat /var/lib/dhcp/dhclient.leases




🔥 Полезные команды для быстрого анализа
ip a | grep inet          # Быстрый просмотр IP-адресов
ss -ant | grep ESTAB # Список активных соединений
ip route get 8.8.8.8 # Проверить маршрут до IP
arp -a # Таблица ARP


@sysadmin1
👍72🎉21🔥1
📌 Шпаргалка по основным командам терминала

🔹 Работа с файлами и каталогами
📂 ls – показать список файлов
📂 cd – перейти в каталог (cd /home/user/docs)
📂 pwd – текущий путь
📂 mkdir – создать папку (mkdir new_folder)
📂 rm – удалить файл (rm file.txt)
📂 rm -r – удалить папку (rm -r folder/)
📂 cp – копировать (cp file.txt backup/)
📂 mv – переместить/переименовать (mv old.txt new.txt)

🔍 Поиск и фильтрация
🔎 find – поиск файлов (find / -name "file.txt")
🔎 grep – поиск текста в файлах (grep "error" log.txt)
🔎 awk – работа с текстом (awk '{print $1}' file.txt)
🔎 sed – замена в файле (sed 's/old/new/g' file.txt')

💡 Полезные флаги:
-r → рекурсивно
-f → без запроса
-i → с подтверждением
-v → подробный вывод

@sysadmin1
👍42🔥2🎉1🏆1
Шпаргалка по процессам и управлению ими в Linux

1. Просмотр процессов
- ps aux — вывести список всех процессов с подробной информацией
- ps -ef — альтернативный формат списка процессов
- ps -u username — показать процессы конкретного пользователя
- ps -p PID — получить информацию о конкретном процессе

2. Мониторинг процессов в реальном времени
- top — отображает список запущенных процессов в реальном времени
- Shift + M — сортировка по памяти
- Shift + P — сортировка по CPU
- k — завершить процесс по PID
- q — выход
- htop — улучшенный вариант top (устанавливается отдельно: sudo apt install htop)
- F5 — древовидное отображение процессов
- F9 — завершить процесс
- q — выход

3. Завершение процессов
- kill PID — завершить процесс по его идентификатору
- kill -9 PID — принудительное завершение процесса (сигнал SIGKILL)
- killall process_name — завершить все процессы с указанным именем
- pkill process_name — завершить процесс по имени (аналог killall)
- xkill — позволяет кликнуть по окну для его завершения (устанавливается: sudo apt install x11-utils)

4. Приоритеты процессов (nice, renice)
- nice -n 10 command — запустить команду с приоритетом +10
- renice -n 5 -p PID — изменить приоритет процесса на +5
- renice -n -10 -u username — изменить приоритет всех процессов пользователя

5. Управление службами (systemctl)
- systemctl list-units --type=service — список активных служб
- systemctl start service — запустить службу
- systemctl stop service — остановить службу
- systemctl restart service — перезапустить службу
- systemctl status service — статус службы
- systemctl enable service — включить автозапуск службы
- systemctl disable service — отключить автозапуск службы
- systemctl mask service — полностью отключить службу
- systemctl unmask service — вернуть службу в рабочее состояние

6. Управление процессами в фоне
- command & — запустить процесс в фоне
- jobs — список фоновых процессов
- fg %N — перевести процесс №N в передний план
- bg %N — перевести процесс №N в фоновый режим
- nohup command & — запустить процесс, игнорируя выход из системы
- disown -h %N — отключить процесс от терминала

7. Дополнительные команды
- uptime — как долго работает система
- pidof process_name — получить PID процесса по имени
- watch -n 1 command — выполнять команду каждые 1 сек
- strace -p PID — трассировка системных вызовов процесса

@sysadmin1
👍3🔥2🏆211
📌Примеры типовых операций в bash-скриптах

1. Работа с переменными
#!/bin/bash
name="Админ"
echo "Привет, $name!"


2. Чтение ввода от пользователя
#!/bin/bash
read -p "Введите ваше имя: " user_name
echo "Привет, $user_name!"



3. Условные операторы (if-else)
#!/bin/bash
read -p "Введите число: " num

if [ $num -gt 10 ]; then
echo "Число больше 10"
elif [ $num -eq 10 ]; then
echo "Число равно 10"
else
echo "Число меньше 10"
fi



4. Циклы
4.1 Цикл for
#!/bin/bash
for i in {1..5}; do
echo "Цикл $i"
done


4.2 Цикл while
#!/bin/bash
count=1
while [ $count -le 5 ]; do
echo "Счетчик: $count"
((count++))
done



5. Работа с аргументами
#!/bin/bash
echo "Первый аргумент: $1"
echo "Второй аргумент: $2"
echo "Все аргументы: $@"
echo "Количество аргументов: $#"

Запуск: ./script.sh arg1 arg2


6. Работа с файлами
6.1 Проверка существования файла
#!/bin/bash
file="test.txt"
if [ -f "$file" ]; then
echo "Файл существует"
else
echo "Файл не найден"
fi


6.2 Чтение файла построчно
#!/bin/bash
while IFS= read -r line; do
echo "Строка: $line"
done < "file.txt"



7. Функции
#!/bin/bash
function приветствие() {
echo "Привет, $1!"
}

приветствие "Админ"



8. Редиректы и работа с потоками
8.1 Запись вывода в файл
echo "Привет, мир!" > output.txt

8.2 Добавление в файл
echo "Новая строка" >> output.txt

8.3 Перенаправление stderr в файл
ls /не_существующая_папка 2> error.log

8.4 Перенаправление stdout и stderr
ls /не_существующая_папка > output.log 2>&1



9. Запуск команд и проверка их выполнения
#!/bin/bash
mkdir test_dir

if [ $? -eq 0 ]; then
echo "Папка успешно создана"
else
echo "Ошибка при создании папки"
fi



10. Работа с массивами
#!/bin/bash
arr=("яблоко" "банан" "апельсин")

echo "Первый элемент: ${arr[0]}"
echo "Все элементы: ${arr[@]}"

for fruit in "${arr[@]}"; do
echo "Фрукт: $fruit"
done



11. Таймер / ожидание
#!/bin/bash
echo "Ожидание 5 секунд..."
sleep 5
echo "Продолжаем работу!"



12. Использование команд grep, awk, sed
12.1 Поиск строки в файле
grep "поиск" файл.txt

12.2 Замена текста в файле (sed)
sed -i 's/старый/новый/g' файл.txt

12.3 Извлечение данных (awk)
awk '{print $2}' файл.txt



13. Фоновые процессы
./долгий_скрипт.sh &



14. Cron (Автоматический запуск скрипта)
Открыть cron:
crontab -e

Добавить задачу (например, запуск скрипта каждую минуту):
* * * * * /home/user/script.sh



15. Остановка и завершение процессов
ps aux | grep my_script.sh   # Найти процесс
kill 12345 # Убить процесс по PID
killall my_script.sh # Убить все процессы с таким именем


@sysadmin1
👍52🎉2🔥1🤩1
🚀 Ускоряем загрузку Linux: Оптимизация системы


🔹 1. Анализ задержек при загрузке
Сначала нужно понять, что замедляет загрузку. Для этого используем команду:
systemd-analyze blame

Она покажет список сервисов и время их старта.

🔹 2. Отключение ненужных сервисов
Если есть службы, которые не нужны при загрузке, отключаем их:
sudo systemctl disable <service_name>
sudo systemctl mask <service_name>

Например, если не используете Bluetooth:
sudo systemctl disable bluetooth


🔹 3. Оптимизация GRUB
Проверьте, сколько времени GRUB ждёт перед загрузкой:
grep GRUB_TIMEOUT /etc/default/grub

Если там больше 5 секунд, можно уменьшить до 1-2 секунд:
sudo sed -i 's/GRUB_TIMEOUT=[0-9]\+/GRUB_TIMEOUT=2/' /etc/default/grub
sudo update-grub


🔹 4. Включение параллельной загрузки
Добавьте в grub параметр quiet splash для ускорения загрузки:
sudo sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& quiet splash/' /etc/default/grub
sudo update-grub


🔹 5. Очистка автозапуска
Просмотр списка автозапускаемых сервисов:
systemctl list-unit-files --state=enabled

Отключаем всё ненужное!

После этих настроек ваш Linux будет загружаться быстрее, а сервер – работать эффективнее. 🚀

@sysadmin1
👍3🔥2🎉21💯1
🔐 Права в Linux. Часть 1

📌 1. Базовые права доступа
Каждый файл и директория в Linux имеют владельца, группу и права доступа, которые задаются тремя наборами битов:

r (4) Чтение (read)

w (2) Запись (write)

x (1) Исполнение (execute)

Формат прав:

-rwxr-xr-- 1 user group 1234 Feb 27 10:00 file.txt

Расшифровка:
- - — тип файла (d — директория, - — обычный файл, l — ссылка и т. д.)
- rwx — права владельца
- r-x — права группы
- r-- — права остальных пользователей



⚙️ 2. Изменение прав: chmod
Изменяет права доступа к файлу или директории.

📍 Символьный способ (+, -, =)

chmod u+x file.txt # Добавить владельцу право на выполнение
chmod g-w file.txt # Убрать у группы право на запись
chmod o=r file.txt # Установить права "только чтение" для остальных
chmod a+x script.sh # Сделать исполняемым для всех


📍 Цифровой способ (восьмеричная нотация)
Каждое право обозначается числом:
- r = 4
- w = 2
- x = 1

Пример:
chmod 755 script.sh  # Владелец (7) - rwx, группа (5) - r-x, остальные (5) - r-x
chmod 644 file.txt # Владелец (6) - rw-, группа (4) - r--, остальные (4) - r--




🏷 3. Изменение владельца: chown
Изменяет владельца и группу файла.

📍 Основные команды
chown user file.txt         # Изменить владельца
chown user:group file.txt # Изменить владельца и группу
chown :group file.txt # Изменить только группу
chown -R user:group dir/ # Рекурсивно изменить владельца/группу в каталоге




🎭 4. Специальные биты (SUID, GUID, Sticky Bit)

🏆 SUID (Set User ID)
Если установлен на исполняемом файле, процесс выполняется от имени владельца файла, а не от имени пользователя, который его запустил.

Пример:
chmod u+s /usr/bin/passwd  # Установка SUID
ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 53232 Feb 27 10:00 /usr/bin/passwd

(s вместо x) у владельца обозначает, что активен SUID.

🏅 GUID (Set Group ID)
Если установлен на исполняемом файле, программа выполняется с правами группы файла.
Если установлен на директории, все созданные файлы наследуют группу директории.

Пример:
chmod g+s directory/       # Установка SGID на директорию
chmod 2755 script.sh # Установка SGID через числовой код
ls -ld directory/
drwxr-sr-x 2 user group 4096 Feb 27 10:00 directory/

(s вместо x) у группы обозначает, что активен SGID.

📌 Sticky Bit
Применяется к директориям, запрещая пользователям удалять чужие файлы в общем каталоге (например, /tmp).

Пример:
chmod +t /tmp             # Установка Sticky Bit
chmod 1777 /tmp # Эквивалентная команда в числовом виде
ls -ld /tmp
drwxrwxrwt 10 root root 4096 Feb 27 10:00 /tmp

(t вместо x) у остальных означает, что активен Sticky Bit.

@sysadmin1
🔥4👍21🎉1💯1
🔐 Права в Linux. Часть 2

🔏 5. Расширенные ACL (Access Control List)

Позволяют задавать более гибкие права, чем стандартная система rwx.

📍 Проверка ACL

getfacl file.txt


📍 Добавление прав пользователю

setfacl -m u:username:rw file.txt

(Пользователь username получит права rw на файл.)

📍 Удаление прав у пользователя
setfacl -x u:username file.txt


📍 Наследование ACL в директориях

setfacl -m d:u:username:rw directory/




⚙️ 6. Маска umask (маска прав)

Определяет, какие права не будут установлены при создании новых файлов и директорий.

📍 Проверка текущегоерка ACL

umask


📍 Задание нового Control

umask 022 # Новые файлы 644 (rw-r--r--), директории 755 (rwxr-xr-x)
umask 077 # Новые файлы 600 (rw-------), директории 700 (rwx------)

📌 Формула:

Права по умолчанию – umask = Итоговые права
Файлы: 666 – umask
Директории: 777 – umask


Пример:
- umask 022 → 666 - 022 = 644 (rw-r--r--)
- umask 077 → 666 - 077 = 600 (rw-------)

🛠 Быстрые команды для проверки и настройки прав
ls -l          # Просмотр прав файлов
stat file.txt # Детальная информация о файле
chmod 750 file # Изменение прав файла
chown user:group file # Изменение владельца
setfacl -m u:username:rw file # Установка ACL


💡 Полезные ссылки:
- man chmod
- man chown
- man setfacl
- man umask

@sysadmin1
👍3🔥21🎉1