Linux
7.56K subscribers
565 photos
33 videos
12 files
1.44K links
Новости и информация из мира Linux

По всем вопросам @evgenycarter
Download Telegram
Релиз ядра Linux 6.16

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.16. Среди наиболее заметных изменений: драйвер для ускорения OpenVPN, механизм Kexec HandOver, включение по умолчанию пятиуровневых таблиц страниц памяти для x86, удаление протокола DCCP, блочный драйвер zloop, возможность отправки core-дампов через UNIX-сокет, поддержка атомарной записи в XFS, offload-обработка звука для USB-устройств, оптимизации в Ext4, виртуальный драйвер TPM (Trusted Platform Module), полноценная реализация Device Memory TCP, поддержка неименованных каналов в io_uring, подготовка к интеграции DRM-драйвера Asahi, механизм "usermode queue" в драйвере AMDGPU, поддержка Intel TDE (Trusted Domain Extensions) и Intel APE (Advanced Performance Extensions).

В новую версию принято 15924 исправления от 2145 разработчиков, размер патча - 50 МБ (изменения затронули 13793 файла, добавлена 655451 строка кода, удалена 316441 строка). В прошлом выпуске было 15945 исправлений от 2154 разработчиков, размер патча - 59 МБ . Около 45% всех представленных в 6.16 изменений связаны с драйверами устройств, примерно 16% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 13% связано с сетевым стеком, 4% - с файловыми системами и 3% c внутренними подсистемами ядра. https://habr.com/ru/news/931490/
11👍5
После шести месяцев разработки опубликован релиз системной библиотеки GNU C Library 2.42 (glibc), которая полностью следует требованиям стандартов ISO C23 и POSIX.1-2024. В создании нового выпуска приняли участие 70 разработчиков.

https://www.phoronix.com/news/GNU-C-Library-glibc-2.42
2
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрый совет по Linux: 🐧

добавьте немного цвета ! Нажмите клавишу z во время выполнения команды top в терминале.
👍15🥰1👏1
Когда вы перезагружаетесь после оптимизации своего сервера Linux и теперь не можете подключиться к нему по SSH
😁35🔥8👍5😢4
Хотя в основном ядре Linux присутствовали различные элементы поддержки SoC Apple M1 и M2, а также поддержка различных компьютеров Mac, в ядре основной ветки разработки отсутствовали некоторые функции, например, графический драйвер ядра Apple GPU . На более фундаментальном уровне, готовящееся к выпуску ядро Linux 6.17 удовлетворит ещё одно низкоуровневое ожидание от компьютеров Mac на базе Apple Silicon в основном ядре: возможность перезагрузки системы.

https://www.phoronix.com/news/Linux-6.17-Apple-SMC
2🥰1
Как стать профессиональным системным администратором Linux
🔥26😁20👍41
👍316😁4👎3🔥3😢1🎉1
Скриптик переустановки пароля пользователя MikroTik

# Скрипт смены пароля пользователя
# только для исполнения в терминале ROS
# by Sertik 09/06/2020

{
:global EnterString do={
:local cont 0; :local string ""
:while ($cont!=13) do={
:local key ([:terminal inkey])
:if ($key!=13) do={
:local char [[:parse "(\"\\$[:pick "0123456789ABCDEF" (($key >> 4) & 0xF)]$[:pick "0123456789ABCDEF" ($key & 0xF)]\")"]]
:set string ("$string"."$char")}
:set cont $key
}
:return $string}
;
:put "Please, enter Username:"
:local RegUser [$EnterString];
:put "";
:if ([:len [/user find disabled=no name=$RegUser]]!=0) do={:put "Ok, a user with this name was found"; :put "";
:put "Please, enter new password for this user:"
:local newPass [$EnterString];
[/user remove $RegUser];
[/user add name=$RegUser password=$newPass group=full];
:put "";
:put "The user has been re-created, the password has been changed";
:put ("New user`s password: "."$newPass");
:put "Don't forget to set up access restrictions based on ip addresses";
} else={:put ("User "."$RegUser "."not found"); :put "";
}
}

Скрипт интересен строкой преобразования кода символа из переменной $key, сграбленного с клавиатуры терминала, в сам символ.

:local char [[:parse "(\"\\$[:pick "0123456789ABCDEF" (($key >> 4) & 0xF)]$[:pick "0123456789ABCDEF" ($key & 0xF)]\")"]]

👉 @sysodminof
👍12😁3
Включаем отображение Samba-сервера в сетевом окружении Windows

В последних версиях Windows samba сервера больше не отображаются в сетевом окружении, при этом они нормально работают при прямом подключении к ним. Это связано с полным отказом в Windows протокола SMB1 и невозможностью обнаружить Samba по протоколу NetBIOS.

Современные Windows системы используют для обнаружения устройств WSD (Web Services for Devices) и сегодня мы расскажем, как добавить его поддержку для вашего сервера Samba.

Для включения поддержки WSD нам потребуется пакет wsdd, который штатно присутствует в репозиториях Debian 12 и Ubuntu 22.04, если вы используете другие версии систем, то вам потребуется подключить репозиторий разработчиков, он поддерживает Debian 9 - 11, и Ubuntu 16.04 - 22.04.

Чтобы подключить репозиторий разработчиков сначала скачайте и импортируйте в хранилище ключ:
wget -O- https://pkg.ltec.ch/public/conf/ltec-ag.gpg.key | gpg --dearmour > /usr/share/keyrings/wsdd.gpg

Теперь подключим сам репозиторий:
echo "deb [signed-by=/usr/share/keyrings/wsdd.gpg] https://pkg.ltec.ch/public/ `lsb_release -cs` main" > /etc/apt/sources.list.d/wsdd.list

Обновим список пакетов и установим нужную нам службу:
apt update
apt install wsdd


Пакет будет автоматически добавлен в автозагрузку и нам останется только запустить его и проверить статус:
systemctl start wsdd
systemctl status wsdd


По умолчанию служба работает на всех интерфейсах и протоколах, если мы хотим изменить данное поведение, то следует добавить необходимые опции в файл /etc/default/wsdd, в нем находится единственная допустимая опция:
WSDD_PARAMS=""

В ней мы должны указать все необходимые параметры запуска согласно документации.
Так, например, если мы хотим ограничить работу службы только интерфейсом ens33 и протоколом IPv4, то добавим:
WSDD_PARAMS="--interface ens33 --ipv4only"

Либо:
WSDD_PARAMS="-i ens33 -4"

Короткая запись проще, но не такая информативная, поэтому в конфигурационном файле мы бы советовали придерживаться длинной.
После внесения изменений в настройки службу следует перезапустить:
systemctl restart wsdd

Для нормальной работы службы вам также нужно разрешить в брандмауэре входящие соединения для UDP 3702 и TCP 5357.
Со стороны Windows делать ничего не нужно, Samba-сервера автоматически появятся в вашем сетевом окружении.
👍10🔥31🤯1
Подборка полезных скриптов для Mikrotik

Сгенерировать резервную копию и отправить её по электронной почте

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

Обратите внимание, что сервер SMTP должен быть настроен перед использованием этого скрипта. Смотрите настройки в разделе /tool e-mail.


/system backup save name=email_backup
/tool e-mail send file=email_backup.backup to="[email protected]" body="See attached file" \
subject="$[/system identity get name] $[/system clock get time] $[/system clock get date] Backup")

Файл резервной копии содержит конфиденциальную информацию, такую как пароли. Поэтому, чтобы получить доступ к созданным файлам резервной копии, у скрипта или планировщика должна быть политика "sensitive" (чувствительная).

Использование строки в качестве функции


:global printA [:parse ":local A; :put \$A;" ];
$printA


Проверка пропускной способности и добавление ограничений
Этот скрипт проверяет, не превышает ли загрузка на интерфейсе 512 кбит/с, если это так, то добавляется очередь для ограничения скорости до 256 кбит/с.


:foreach i in=[/interface find] do={
/interface monitor-traffic $i once do={
:if ($"received-bits-per-second" > 0 ) do={
:local tmpIP [/ip address get [/ip address find interface=$i] address] ;
# :log warning $tmpIP ;
:for j from=( [:len $tmpIP] - 1) to=0 do={
:if ( [:pick $tmpIP $j] = "/") do={
/queue simple add name=$i max-limit=256000/256000 dst-address=[:pick $tmpIP 0 $j] ;
}
}
}
}
}


Заблокировать доступ к определённым веб-сайтам
Этот скрипт полезен, если вы хотите заблокировать некоторые сайты, но не хотите использовать веб-прокси.

В этом примере проверяются записи "Rapidshare" и "youtube" в DNS-кэше, и IP-адреса добавляются в список адресов с именем "restricted". Прежде чем начать, необходимо настроить маршрутизатор для перехвата всех DNS-запросов.


/ip firewall nat
add action=redirect chain=dstnat comment=DNS dst-port=53 protocol=tcp to-ports=53
add action=redirect chain=dstnat dst-port=53 protocol=udp to-ports=53


и добавьте брандмауэр


/ip firewall filter
add chain=forward dst-address-list=restricted action=drop


Теперь мы можем написать сценарий и запланировать его выполнение, скажем, каждые 30 секунд.
Код сценария:


:foreach i in=[/ip dns cache find] do={
:local bNew "true";
:local cacheName [/ip dns cache all get $i name] ;
# :put $cacheName;

:if (([:find $cacheName "rapidshare"] >= 0) || ([:find $cacheName "youtube"] >= 0)) do={

:local tmpAddress [/ip dns cache get $i address] ;
# :put $tmpAddress;

# if address list is empty do not check
:if ( [/ip firewall address-list find list="restricted" ] = "") do={
:log info ("added entry: $[/ip dns cache get $i name] IP $tmpAddress");
/ip firewall address-list add address=$tmpAddress list=restricted comment=$cacheName;
} else={
:foreach j in=[/ip firewall address-list find list="restricted"] do={
:if ( [/ip firewall address-list get $j address] = $tmpAddress ) do={
:set bNew "false";
}
}
:if ( $bNew = "true" ) do={
:log info ("added entry: $[/ip dns cache get $i name] IP $tmpAddress");
/ip firewall address-list add address=$tmpAddress list=restricted comment=$cacheName;
}
}
}
}


📲 Мы в MAX

👉 @i_odmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31👎1🔥1
Шпаргалка по DNS-записям 🚀
🔥11
Схема архитектуры Linux
🔥8👍5
Forwarded from Bash Советы
🔐 Как найти файлы с открытыми правами (777) - быстро и просто!

Иногда на сервере появляются файлы и каталоги с правами 777, что представляет угрозу безопасности. Найдём их одной командой:


find / -type f -perm 0777 2>/dev/null


📁 А если нужно проверить директории:


find / -type d -perm 0777 2>/dev/null


🔍 Пояснение:

/ - путь, где искать (можно заменить на /var, /home и т.д.)
-type f / -type d — искать только файлы или директории
-perm 0777 - права доступа
2>/dev/null - убираем лишние ошибки (например, от Permission denied)

💡 Лучше запускать от root для полной картины.

📲 Мы в MAX

👉@bash_srv
👍6😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Совет дня по Linux

Редактирование файлов прямо из less

Во время просмотра файла в пейджере less можно нажать клавишу v. Это откроет текущий файл в редакторе, который указан в переменной окружения EDITOR.

После сохранения изменений и выхода из редактора вы увидите обновлённый файл в less.
👍17🔥1
👋 Привет, админы!

Если не ошибаюсь, осенью 21 года в одном из наших дата-центров после планового обновления клиентских машин начали массово падать сеансы RDP - пользователи жаловались, что после ввода пароля сессия сразу же разрывается. Оказалось, во время апдейта поставился неполностью совместимый патч безопасности, который конфликтовал с включённым на компьютерах аудиторией учетных политик.

🔥 Чтобы быстро отследить все последние установленные обновления на целевой группе машин и при необходимости откатить проблемный патч, я использовал вот такой PowerShell-скрипт:


# Получаем список компьютеров из текстового файла
$computers = Get-Content -Path "C:\Scripts\computers.txt"

# Словарь для хранения списка установленных обновлений
$updateReport = @()

foreach ($computer in $computers) {
try {
# Получаем установленные обновления за последние 7 дней
$recentUpdates = Get-HotFix -ComputerName $computer |
Where-Object { $_.InstalledOn -ge (Get-Date).AddDays(-7) }

foreach ($upd in $recentUpdates) {
$updateReport += [PSCustomObject]@{
Computer = $computer
KBArticle = $upd.HotFixID
InstalledOn = $upd.InstalledOn
}
}
}
catch {
Write-Warning "Не удалось получить обновления с сервера $computer: $_"
}
}

# Сохраняем отчёт в CSV
$csvPath = "C:\Scripts\RecentUpdatesReport.csv"
$updateReport | Export-Csv -Path $csvPath -NoTypeInformation -Encoding UTF8

Write-Host "Отчет сохранен в $csvPath"


С помощью этого отчёта мы быстро определили, что именно на всех проблемных ПК установился KB5005565. Чтобы откатить его удалённо, использовал команду:


Invoke-Command -ComputerName (Get-Content "C:\Scripts\computers.txt") -ScriptBlock {
wusa /uninstall /kb:5005565 /quiet /norestart
}


После перезапуска машин RDP-сессии вернулись в норму. Плюс я добавил правило на WSUS, чтобы этот конкретный патч не раздавался снова до выяснения причины конфликта.

👉 @win_sysadmin
👍8👎3🔥2