Системный Администратор (Сисадмин) – Telegram
Системный Администратор (Сисадмин)
14K subscribers
1.81K photos
1.68K videos
87 files
1.88K links
Настройка серверов Windows, Linux, сетевое оборудование Cisco Systems, D-Link, HP, Huawei, Juniper, MikroTik. Книги и мануалы для сисадминов.
По всем вопросам @evgenycarter

РКН clck.ru/3KoGJ3
Download Telegram
Виртуальные файловые системы в Linux: Зачем они нужны и как они работают

Виртуальные файловые системы - это волшебная абстракция, которая делает возможной философию Linux "все есть файл".

https://opensource.com/article/19/3/virtual-filesystems-linux

👉 @sysadminof
🔥3
chattr — команда для изменения атрибутов файла

Помимо прав доступа каждый из файлов стандартной файловой системы Linux имеет набор атрибутов, регламентирующих особенности работы с ним. Атрибуты поддерживаются такими файловыми системами Linux, как ext4, btrfs и xfs. Команда chattr позволяет вызывать соответствующую утилиту для их модификации.

Базовый синтаксис команды выглядит следующим образом:

# chattr [параметры] [атрибуты] файлы

Наиболее важными параметрами являются параметр -R, позволяющий рекурсивно изменять атрибуты файлов в дереве директорий, параметр -V, позволяющий выводить подробную информацию о производимых изменениях и параметр -f, позволяющий не выводить большую часть сообщений об ошибках.

Утилита chattr принимает описания атрибутов в буквенной нотации, которая наверняка знакома пользователям, имеющим опыт работы с утилитой chmod. Так, для установки атрибутов используется префикс +, для удаления атрибутов — префикс -, а для сохранения атрибутов — префикс =. Наиболее важные атрибуты приведены в таблице ниже.

Атрибут Значение
A Не обновлять метку времени доступа к файлу
S Открывать файл в синхронном режиме (немедленно записывать изменения на диск)
a Открывать файл в режиме дополнения (дописывать данные в конец файла)
i Запретить изменение содержимого файла (а также его переименование, создание ссылок, исполнение)
j Обновлять информацию в журнале файловой системы перед обновлением содержимого файла
d Не создавать резервную копию файла с помощью утилиты dump
u Не удалять данные файла при его удалении (что позволяет впоследствии восстановить его)
C Не использовать механизм копирования при записи
s Безопасно удалять файл (что не позволит впоследствии его восстановить)
D Открывать файлы из директории в синхронном режиме (немедленно записывать изменения на диск)
e Индикатор использования экстентов для указания на блоки данных (не может быть изменен)
E Индикатор использования шифрования (не может быть изменен)
N Индикатор использования структуры inode для хранения данных файла (не может быть изменен)

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

Примеры использования
Установка атрибутов

Команда chattr может использоваться для установки любых поддерживаемых атрибутов файлов. Например, для того, чтобы сделать файл неудаляемым, следует использовать атрибут i:

# chattr +i 1.odt
# rm 1.odt
rm: невозможно удалить '1.odt': Операция не позволена


Очевидно, что даже суперпользователь теперь не может удалить файл. Но он все так же может убрать атрибут и удалить его:

# chattr -i 1.odt
# rm 1.odt


Данный атрибут — довольно удобный механизм для защиты от ошибок, который, тем не менее, не является механизмом защиты файлов.

Рекурсивная установка прав доступа
Команда chattr может использоваться для рекурсивной установки атрибутов файлов и директорий из любого фрагмента дерева файловой системы, то есть, установки одних и тех же атрибутов всех файлов из директории и ее поддиректорий благодаря поддержке параметра -R. Например, для установки атрибута безопасного удаления всех файлов директории параметр -R может использоваться следующим образом:

# lsattr TL-WR1043ND_V4_160607/
--------------e---- TL-WR1043ND_V4_160607/How to upgrade TP-LINK Wireless N Router.pdf
--------------e---- TL-WR1043ND_V4_160607/GPL License Terms.pdf
--------------e---- TL-WR1043ND_V4_160607/wr1043ndv4_eu-up-ver3-16-9-P1[20160607-rel58297].bin
# chattr -R +s TL-WR1043ND_V4_160607/
# lsattr TL-WR1043ND_V4_160607/
s-------------e---- TL-WR1043ND_V4_160607/How to upgrade TP-LINK Wireless N Router.pdf
s-------------e---- TL-WR1043ND_V4_160607/GPL License Terms.pdf
s-------------e---- TL-WR1043ND_V4_160607/wr1043ndv4_eu-up-ver3-16-9-P1[20160607-rel58297].bin


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

@i_odmin_book
🔥2
Регулярные выражение для поиска IP адресов
Ниже представлены регулярные выражения, которые помогут найти все IP адреса в строке.
Данные регулярные выражения соответствуют шаблонам IPv4 и IPv6 адресов.

Регулярное Выражение для Поиска IP Адресов
Паттерн для поиска IPv4 адресов, соответствует всем значениям от 0.0.0.0to 999.999.999.999и в большинстве случаев этого бывает достаточно.

"([0-9]{1,3}[\.]){3}[0-9]{1,3}"

Найти Все IP Адреса с Помощью Grep
Пропарсим файл и найдем в нем все IP адреса из диапазона от 0.0.0.0до 999.999.999.999с помощью grep:

$ grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" file.txt


Поиск Правильных IPv4 Адресов
Регулярное выражение для поиска и проверки правильных IPv4 адресов:

"(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"


Поиск IPv6 Адресов
Регулярное выражение для проверки IPv6 адреса:

"((^|:)([0-9a-fA-F]{0,4})){1,8}"

👉 @sysadminof
👍5
Подборка Telegram каналов для программистов

https://news.1rj.ru/str/itmozg Программисты, дизайнеры, новости из мира IT.
https://news.1rj.ru/str/phis_mat Обучающие видео, книги по Физике и Математике
https://news.1rj.ru/str/xakep_1 Статьи из "Хакера"

https://news.1rj.ru/str/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://news.1rj.ru/str/nodejs_lib Подборки по Node js и все что с ним связано
https://news.1rj.ru/str/ruby_lib Библиотека Ruby программиста

1C разработка 📌
https://news.1rj.ru/str/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://news.1rj.ru/str/cpp_lib Библиотека C/C++ разработчика
https://news.1rj.ru/str/cpp_knigi Книги для программистов C/C++
https://news.1rj.ru/str/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
https://news.1rj.ru/str/pythonofff Python академия. Учи Python быстро и легко🐍
https://news.1rj.ru/str/BookPython Библиотека Python разработчика
https://news.1rj.ru/str/python_real Python подборки на русском и английском
https://news.1rj.ru/str/python_360 Книги по Python Rus

Java разработка 📌
https://news.1rj.ru/str/BookJava Библиотека Java разработчика
https://news.1rj.ru/str/java_360 Книги по Java Rus
https://news.1rj.ru/str/java_geek Учим Java на примерах

GitHub Сообщество 📌
https://news.1rj.ru/str/Githublib Интересное из GitHub

CodePen 📌
https://news.1rj.ru/str/codepen_1 Сообщество пользователей CodePen

Базы данных (Data Base) 📌
https://news.1rj.ru/str/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://news.1rj.ru/str/developer_mobila Мобильная разработка
https://news.1rj.ru/str/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
https://news.1rj.ru/str/frontend_1 Подборки для frontend разработчиков
https://news.1rj.ru/str/frontend_sovet Frontend советы, примеры и практика!
https://news.1rj.ru/str/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
https://news.1rj.ru/str/game_devv Все о разработке игр

Вакансии 📌
https://news.1rj.ru/str/sysadmin_rabota Системный Администратор
https://news.1rj.ru/str/progjob Вакансии в IT

Чат программистов📌
https://news.1rj.ru/str/developers_ru

Библиотеки 📌
https://news.1rj.ru/str/book_for_dev Книги для программистов Rus
https://news.1rj.ru/str/programmist_of Книги по программированию
https://news.1rj.ru/str/proglb Библиотека программиста
https://news.1rj.ru/str/bfbook Книги для программистов

БигДата, машинное обучение 📌
https://news.1rj.ru/str/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://news.1rj.ru/str/bookflow Лекции, видеоуроки, доклады с IT конференций
https://news.1rj.ru/str/coddy_academy Полезные советы по программированию

QA, тестирование 📌
https://news.1rj.ru/str/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://news.1rj.ru/str/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://news.1rj.ru/str/thehaking Канал о кибербезопасности

Книги, статьи для дизайнеров 📌
https://news.1rj.ru/str/ux_web Статьи, книги для дизайнеров
https://news.1rj.ru/str/arhitekturamira World Architecture

Системное администрирование 📌
https://news.1rj.ru/str/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://news.1rj.ru/str/sysadminof Книги для админов, полезные материалы
https://news.1rj.ru/str/i_odmin Все для системного администратора
https://news.1rj.ru/str/i_odmin_book Библиотека Системного Администратора
https://news.1rj.ru/str/i_odmin_chat Чат системных администраторов
https://news.1rj.ru/str/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://news.1rj.ru/str/sysadminoff Новости Линукс Linux

Английский 📌
https://news.1rj.ru/str/UchuEnglish Английский с нуля

Математика 📌
https://news.1rj.ru/str/Pomatematike Канал по математике

Мир технологий 📌
https://news.1rj.ru/str/mir_teh Видео из мира технологий

Excel лайфхак📌
https://news.1rj.ru/str/Excel_lifehack
👍1
5 супер полезных сетевых утилит linux

ip
Утилита управляет интерфейсами, сетевыми устройствами и туннелями. Всем сетевым стеком linux. Например:

ip addr

Покажет список всех сетевых адресов. Тоже самое делает утилита ifconfig без параметров.

ip route

Покажет таблицу роутинга. Тоже самое сделает команда route.

ip link set eth0 up

Поднимает интерфейс eth0. Это можно также сделать с помощью ifconfig.

Так зачем она нужна если все ее команды можно выполнить с помощью других утилит? Дело в том, что во многие компактные дистрибутивы (например Alpine или openwrt) не используют ifconfig, route и другие “большие” утилит. Там оставляют только ip. Вот с помощью нее и придется выполнять все сетевые задачи.

nc
Полное имя netcat - на него она тоже откликается. Это утилита, позволяет слушать и выполнять TCP и UDP соединении.

И так что может netcat?

Открываем одно окно терминала и делаем там nc -l 12345 это будет наш сервер. Отрываем другое окно и пишем в нем nc 127.0.0.1 12345 — это наш клиент. Печатаем там “Hello!” нажимаем enter. В первом окне видим эту фразу. Ура! Мы написали однонаправленный чат.

Эта утилита пригодиться чтобы проверить жив ли сервер и слушает ли от вообще на этом порту? С помощью nc можно переслать файл и даже просканировать порты. Http сервер еще можно написать.

socat
Это труба, которая позволяет соединить два сокета между собой. Mysql слушает только на local socket а мы хотим на его ходить по tcp. Выглядит это так: socat TCP-LISTEN:3307,reuseaddr,fork UNIX-CONNECT:/var/lib/mysql/mysql.sock

Конектор к netcat из предыдущего примера: socat - TCP4:127.0.0.1:80

Если вам нужно перебросить сокет в другое место присмотритесь к socat он вам скорее всего поможет.

netstat
Эта утилита показывает текущее состояние сетевого стека. Она даст вам ответ на вопросы: что у меня там на порту 9081 висит? netstat -nltp Что с моими tcp соединениями и кто прямо сейчас ко мне подключен? netstat -atp

У этой утилиты есть младший (или старший по возможностям) брат ss посмотрите на него тоже может он понравиться больше.

curl
Утилита для передачи файлов. Так написано в ее описании. Чем же она замечательна? Она умеет кучу протоколов: DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP. В каждом протоколе она знает множество версий, например HTTP она может до версии 2. Умеет подставлять хидера, куки, ходить по SSL, использовать proxy разных видов. Можно отлаживать http(s) соединение с помощью -v. Примеры:

curl http://artscene.textfiles.com/asciiart/unicorn

Единорог!

curl -v http://127.0.0.1:12345

Соединяемся с сервером из примера netcat. В консоле сервера увидим http запрос. После этого все остановиться curl будет ждать ответ. И если вы руками его введете покажет его.

👉 @sysadminof
👍13🥰1
Media is too big
VIEW IN TELEGRAM
Секреты и трюки Командной строки Linux

👉 @sysadminof
👏8
Media is too big
VIEW IN TELEGRAM
Wi-Fi по-человечески

1. Краткая история Wi-Fi. Появление nice-to-have, must have, critical.
2. Подходы к проектированию Wi-Fi в разные периоды.
3. Личный опыт построения Wi-Fi сетей.
4. 7 частых ошибок в проектировании и построении Wi-Fi, которых следует избегать.

👉 @sysadminof
Media is too big
VIEW IN TELEGRAM
Полноценный почтовый сервер за 15 минут

Лёгкий вариант установки и настройки полноценного почтового сервера iRedMail на основе Postfix, Dovecot & SOGo.

👉 @sysadminof
👍6🗿1
Анатомия GNU/Linux

У меня сложилось впечатление, что многие пользователи GNU/Linux слабо представляют, из чего сделана эта операционная система, поэтому утверждают, что она сляпана из попавшихся под руку кусков. В то же время, архитектура большинства дистрибутивов является устоявшейся и регламентируется рядом стандартов, включая стандарт графического окружения freedesktop.org и Linux Standard Base, расширяющий стандарты Unix. Мне при знакомстве с GNU/Linux несколько лет назад для погружения не хватало простой анатомической карты типичного дистрибутива, поэтому я попробую рассказать об этом сам.

https://habr.com/ru/post/531872/

👉 @sysadminof
👍3
Привет, админ!👋

Хочешь роста и желаешь сменить свою сферу деятельности на более перспективную и высокооплачиваемую?💰

Попробуй себя в AI!
Нейронки - это более интересные задачи, удаленная работа с высокими зарплатами, а главное - данная профессия будет востребована минимум ближайшие 30 лет!💪

👉Опыт программирования НЕ нужен. С твоими знаниями ты легко вольёшься в тему и напишешь целых 9 нейронок за 3 дня!

Залетай на 🔥бесплатный интенсив по ссылке
😁1🤬1
MU-MIMO Wi-Fi — 13 вещей, которые необходимо знать

Одно из самых существенных и важных нововведений Wi-Fi за прошедшие 20 лет – технология Multi User – Multiple Input Multiple Output (MU-MIMO). MU-MIMO расширяет функциональность появившегося недавно обновления беспроводного стандарта 802.11ac «Wave 2». Безусловно, это огромный прорыв для беспроводной связи. Данная технология помогает увеличить максимальную теоретическую скорость беспроводного соединения от 3,47 Гбит/с в оригинальной спецификации стандарта 802.11ac до 6,93 Гбит/с в обновлении стандарта 802.11ac Wave 2. Это одна из самых сложных функциональностей Wi-Fi на сегодняшний день.

https://bookflow.ru/mu-mimo-wi-fi-13-veshhej-kotorye-neobhodimo-znat/

👉 @sysadminof
👍4
Изучаем процессы в Linux


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

Данная статья в большей мере рассчитана на новичков в системном программировании и тех, кто просто хочет узнать немного больше о том, как работают процессы в Linux.

👉 @sysadminof
👍7
Powershell мониторинг событий 41, 1074, 6008

Мониторинг по событию 41
Get-EventLog -LogName System -After (((Get-Date).addDays(-2)).date) -Before (Get-Date) | where {$_.EventId -eq 41} |
ForEach-Object {

$flam = New-Object PSObject | Select-Object Date
if ($_.ReplacementStrings[4]) {
$flam.Date = $_.TimeGenerated
$flam
}
}

$StrData=[string]$flam.Date
$message = $StrData + " " + "Сервер: $env:computername" + " " + "Система перезагрузилась, завершив работу с ошибками. Возможные причины ошибки: система перестала отвечать на запросы, произошел критический сбой или неожиданно отключилось питание."



Мониторинг по событию 1074
$Events = Get-EventLog -LogName System -After (((Get-Date).addDays(-2)).date) -Before (Get-Date) | where {$_.EventId -eq 1074}

$FlamDat = New-Object System.Management.Automation.PSObject
$FlamDat | Add-Member NoteProperty Time ($null)
$FlamDat | Add-Member NoteProperty User ($null)
$FlamDat | Add-Member NoteProperty Action ($null)

$Events | %{

$FlamDat.Time = $_.TimeGenerated
$FlamDat.User = $_.ReplacementStrings[6]
$FlamDat.Action = $_.ReplacementStrings[4]

}

$StrFlamDat=[string]$FlamDat.Time

$message = $env:computername + " " + $StrFlamDat + " " + $FlamDat.Action + " " + $FlamDat.User



Мониторинг по событию 6008
$Events = Get-EventLog -LogName System -After (((Get-Date).addDays(-2)).date) -Before (Get-Date) | where {$_.EventId -eq 6008}

$FlamDat = New-Object System.Management.Automation.PSObject
$FlamDat | Add-Member NoteProperty Time ($null)
$FlamDat | Add-Member NoteProperty User ($null)
$FlamDat | Add-Member NoteProperty Action ($null)

$Events | %{

$FlamDat.Time = $_.TimeGenerated
$FlamDat.User = $_.ReplacementStrings[6]
$FlamDat.Action = $_.Message

}

$StrFlamDat=[string]$FlamDat.Time

$message = $env:computername + " " + $StrFlamDat + " " + $FlamDat.Action + " " + $FlamDat.User


👉 @sysadminof
👍9
Носители информации

Друзья, кто застал?

Подписывайтесь на канал 👉@tipsysdmin
👍30