Ubuntu 24.04 LTS (Noble Numbat) Beta
Два дня назад была выпущена бета-версия готовящегося выпуска Ubuntu 24.04 LTS, на этом этапе пакетная база дистрибутива полностью заморожена и идет работа над выявлением и устранением ошибок.
Поэтому уже сейчас можно посмотреть, что нас ждет. Во-первых – улучшенный инсталлятор, теперь уже на этапе установки можно настроить множество параметров, например, масштабирование. Также поддерживается установка на ZFS.
Используемое ядро – 6.8, также серьезно обновлены все системные библиотеки, рабочая среда - GNOME 46 с собственными доработками.
Возможно, это понравится не всем, но основной источник пользовательских приложений в дистрибутиве – Snap. На наш взгляд – это правильное решение, так как позволяет доставлять пользователю актуальные версии софта на всем протяжении срока поддержки. А это 5 лет основной и 5 лет расширенной.
При этом работает бета-версия достаточно стабильно и вполне может быть использована для ознакомления на неосновных устройствах.
Два дня назад была выпущена бета-версия готовящегося выпуска Ubuntu 24.04 LTS, на этом этапе пакетная база дистрибутива полностью заморожена и идет работа над выявлением и устранением ошибок.
Поэтому уже сейчас можно посмотреть, что нас ждет. Во-первых – улучшенный инсталлятор, теперь уже на этапе установки можно настроить множество параметров, например, масштабирование. Также поддерживается установка на ZFS.
Используемое ядро – 6.8, также серьезно обновлены все системные библиотеки, рабочая среда - GNOME 46 с собственными доработками.
Возможно, это понравится не всем, но основной источник пользовательских приложений в дистрибутиве – Snap. На наш взгляд – это правильное решение, так как позволяет доставлять пользователю актуальные версии софта на всем протяжении срока поддержки. А это 5 лет основной и 5 лет расширенной.
При этом работает бета-версия достаточно стабильно и вполне может быть использована для ознакомления на неосновных устройствах.
👍20👎2😁1
Проверяем DNS-записи
Служба DNS является одной из важнейших сетевых служб, и каждый администратор должен уметь выполнять ее диагностику.
И в данном ключе нас больше всего интересует как именно разрешается доменное имя доступными DNS-серверами и какие дополнительные записи мы можем получить.
Я думаю, что все знают утилиту nslookup и часто ее используют, но не все умеют пользоваться ей на все 100%. Данная утилита есть и в Windows, и в Linux, при этом синтаксис ее полностью идентичен для обоих систем.
Чаще всего она используется для получения A-записи:
А если нам нужно проверить другие записи? Нет ничего сложного, используем дополнительный ключ -type:
В этом случае мы получим список серверов имен (NS-серверов), обслуживающих данный домен. А если, скажем, надо узнать список MX-серверов, принимающих почту, то выполним:
Для проверки обратной PTR-записи укажите интересующий IP-адрес, при этом используйте обычный формат:
Утилита сама преобразует его в:
Еще одна важная задача – получить результат от конкретного сервера, особенно если есть подозрения что текущий сервер возвращает неверные или устаревшие записи. В этом случае просто укажите адрес нужного DNS-сервера в самом конце команды:
В этом случае утилита проигнорирует системные настройки DNS и выполнит запрос на указанном сервере.
Служба DNS является одной из важнейших сетевых служб, и каждый администратор должен уметь выполнять ее диагностику.
И в данном ключе нас больше всего интересует как именно разрешается доменное имя доступными DNS-серверами и какие дополнительные записи мы можем получить.
Я думаю, что все знают утилиту nslookup и часто ее используют, но не все умеют пользоваться ей на все 100%. Данная утилита есть и в Windows, и в Linux, при этом синтаксис ее полностью идентичен для обоих систем.
Чаще всего она используется для получения A-записи:
nslookup ya.ru
А если нам нужно проверить другие записи? Нет ничего сложного, используем дополнительный ключ -type:
nslookup -type=ns ya.ru
В этом случае мы получим список серверов имен (NS-серверов), обслуживающих данный домен. А если, скажем, надо узнать список MX-серверов, принимающих почту, то выполним:
nslookup -type=mx ya.ru
Для проверки обратной PTR-записи укажите интересующий IP-адрес, при этом используйте обычный формат:
nslookup -type=ptr 203.0.113.1
Утилита сама преобразует его в:
1.113.0.203.in-addr.arpa.
Еще одна важная задача – получить результат от конкретного сервера, особенно если есть подозрения что текущий сервер возвращает неверные или устаревшие записи. В этом случае просто укажите адрес нужного DNS-сервера в самом конце команды:
nslookup -type=mx ya.ru 8.8.8.8
В этом случае утилита проигнорирует системные настройки DNS и выполнит запрос на указанном сервере.
👍54
Правильный ответ на вопрос: в чем особенность диапазонов IP 192.0.2.0/24, 198.51.100.0/24 и 203.0.113.0/24
Вчера мы решили возобновить рубрику вопрос-ответ и задали довольно простой на наш взгляд вопрос. Но, к сожалению, правильно ответили примерно четверть участников.
Данные диапазоны отличаются тем, что предназначены для использования в документации и примерах, когда нужно показать белый IP-адрес. Выделение данных диапазонов регламентируется RFC 5735, и они носят наименования TEST-NET-1, TEST-NET-2 и TEST-NET-3.
Как и диапазоны серых сетей данные адреса не маршрутизируются в сети интернет, также их не следует использовать во внутренних сетях.
Раз уж мы коснулись примеров и документации, то будет уместно вспомнить еще и RFC 2606 который регламентирует выделение доменных зон и имен для тех же самых целей.
Так в качестве примеров и использования в документации зарезервированы следующие домены верхнего уровня:
.test
.example
.invalid
.localhost
При этом следует помнить, что домен .localhost традиционно разрешается в IP-адрес петлевого интерфейса 127.0.0.1 и любое иное его использование будет конфликтовать с реально используемым сценарием.
Для документации рекомендуется использовать домен .example, а домен .test для тестирования и лабораторных сред. Основное назначение домена .invalid – это создание имен, которые очевидно являются недействительными, в тех случаях, когда есть такая явная необходимость.
Также для использования в примерах, когда нужно явно указать некоторое доменное имя зарезервированы домены:
example.com
example.net
example.org
Только эти три и никакие иные. Особенно это касается русскоязычной части сети, где для примеров любят использовать иные имена, которые не являются зарезервированными.
Но если сильно хочется русскоязычный домен, то можно использовать для примеров и документации домен верхнего уровня .испытание (xn--80akhbyknj4f).
Никакие иные адреса и доменные имена в примерах и документации использоваться не должны, особенно если они являются действительными и принадлежат иным владельцам, либо же могут быть выданы или зарегистрированы.
Вчера мы решили возобновить рубрику вопрос-ответ и задали довольно простой на наш взгляд вопрос. Но, к сожалению, правильно ответили примерно четверть участников.
Данные диапазоны отличаются тем, что предназначены для использования в документации и примерах, когда нужно показать белый IP-адрес. Выделение данных диапазонов регламентируется RFC 5735, и они носят наименования TEST-NET-1, TEST-NET-2 и TEST-NET-3.
Как и диапазоны серых сетей данные адреса не маршрутизируются в сети интернет, также их не следует использовать во внутренних сетях.
Раз уж мы коснулись примеров и документации, то будет уместно вспомнить еще и RFC 2606 который регламентирует выделение доменных зон и имен для тех же самых целей.
Так в качестве примеров и использования в документации зарезервированы следующие домены верхнего уровня:
.test
.example
.invalid
.localhost
При этом следует помнить, что домен .localhost традиционно разрешается в IP-адрес петлевого интерфейса 127.0.0.1 и любое иное его использование будет конфликтовать с реально используемым сценарием.
Для документации рекомендуется использовать домен .example, а домен .test для тестирования и лабораторных сред. Основное назначение домена .invalid – это создание имен, которые очевидно являются недействительными, в тех случаях, когда есть такая явная необходимость.
Также для использования в примерах, когда нужно явно указать некоторое доменное имя зарезервированы домены:
example.com
example.net
example.org
Только эти три и никакие иные. Особенно это касается русскоязычной части сети, где для примеров любят использовать иные имена, которые не являются зарезервированными.
Но если сильно хочется русскоязычный домен, то можно использовать для примеров и документации домен верхнего уровня .испытание (xn--80akhbyknj4f).
Никакие иные адреса и доменные имена в примерах и документации использоваться не должны, особенно если они являются действительными и принадлежат иным владельцам, либо же могут быть выданы или зарегистрированы.
👍44🔥4👌2
Привет!
Это команда Концепт-Разработка. Мы занимаемся развитием и внедрением продуктов в сфере больших данных, корпоративных хранилищ данных, BI и систем управления данными. У себя в канале развиваем сообщество бизнес и системных аналитиков, разработчиков и data-инженеров.
+ Актуальные вакансии;
+ Интересные разработки;
+ Проекты федеральных заказчиков;
+ Новости индустрии и многое другое.
Подписывайся на канал, мы будем рады и экспертам, и начинающим специалистам!
Реклама. ООО "КОНЦЕПТ РАЗРАБОТКА". ИНН 7703471165. erid: LjN8KLtLE
Это команда Концепт-Разработка. Мы занимаемся развитием и внедрением продуктов в сфере больших данных, корпоративных хранилищ данных, BI и систем управления данными. У себя в канале развиваем сообщество бизнес и системных аналитиков, разработчиков и data-инженеров.
+ Актуальные вакансии;
+ Интересные разработки;
+ Проекты федеральных заказчиков;
+ Новости индустрии и многое другое.
Подписывайся на канал, мы будем рады и экспертам, и начинающим специалистам!
Реклама. ООО "КОНЦЕПТ РАЗРАБОТКА". ИНН 7703471165. erid: LjN8KLtLE
Пакеты с каким адресом получателя никогда не пересылаются на уровне IP?
Любой вопрос уже содержит часть ответа – мы уже устали об этом говорить, особенно если этот вопрос касается учебных задач.
Поэтому и данный вопрос сформулирован как никогда не пересылаются, а не просто не пересылаются.
Потому что просто не пересылаются 127.0.0.0/4, 169.254.0.0/16 и даже приватные диапазоны также не будут пересылаться если вы работаете в одном сегменте сети. Но не пересылаются они именно потому, что в существующей конфигурации сети в этом нет потребности.
Если же такая необходимость появится, то любой пакет, с любым адресом назначения, кроме одного, спокойно будет отправлен на сетевом уровне (IP).
Данный адрес – 255.255.255.255 и называется он ограниченным широковещанием (limited broadcast), его использование указано в стандартах: RFC 6890 (RFC 5735), RFC0919 и RFC0922.
Он предназначен для широковещательной рассылки узлами, которые не знают номер своей сети и никогда, ни при каких обстоятельствах не должен пересылаться на сетевом уровне.
Также для данного адреса не должны осуществляться ARP-запросы. Все что следует делать с пакетом, имеющим такой адрес назначения – это распространить его содержимое широковещательно на канальном уровне в пределах домена широковещания (т.е. сегмента сети).
Такие пакеты широко используются на практике, например, при DHCP-запросах, когда узел не имеет адреса и не знает в какой сети он находится. В этом случае он отправляет запрос именно на 255.255.255.255.
Поэтому правильный ответ может быть только один: никогда не пересылается на уровне IP только 255.255.255.255 и это поведение заложено в стандартах. В отношении иных адресов такого ограничения нет.
Любой вопрос уже содержит часть ответа – мы уже устали об этом говорить, особенно если этот вопрос касается учебных задач.
Поэтому и данный вопрос сформулирован как никогда не пересылаются, а не просто не пересылаются.
Потому что просто не пересылаются 127.0.0.0/4, 169.254.0.0/16 и даже приватные диапазоны также не будут пересылаться если вы работаете в одном сегменте сети. Но не пересылаются они именно потому, что в существующей конфигурации сети в этом нет потребности.
Если же такая необходимость появится, то любой пакет, с любым адресом назначения, кроме одного, спокойно будет отправлен на сетевом уровне (IP).
Данный адрес – 255.255.255.255 и называется он ограниченным широковещанием (limited broadcast), его использование указано в стандартах: RFC 6890 (RFC 5735), RFC0919 и RFC0922.
Он предназначен для широковещательной рассылки узлами, которые не знают номер своей сети и никогда, ни при каких обстоятельствах не должен пересылаться на сетевом уровне.
Также для данного адреса не должны осуществляться ARP-запросы. Все что следует делать с пакетом, имеющим такой адрес назначения – это распространить его содержимое широковещательно на канальном уровне в пределах домена широковещания (т.е. сегмента сети).
Такие пакеты широко используются на практике, например, при DHCP-запросах, когда узел не имеет адреса и не знает в какой сети он находится. В этом случае он отправляет запрос именно на 255.255.255.255.
Поэтому правильный ответ может быть только один: никогда не пересылается на уровне IP только 255.255.255.255 и это поведение заложено в стандартах. В отношении иных адресов такого ограничения нет.
👍45🔥2❤1🤝1
SSD killer – незаконное применение законного устройства
Устройства оперативного уничтожения информации давно будоражат умы коллег. Так и сегодня товарищ прислал мне ссылку на Хабр где описывалось одно такое устройство:
Привет, меня зовут Ваня, и вот коротенькая история о том, как я придумал и собрал одну штуку, и почему вам срочно нужно отдать мне все свои деньги. А если серьезно, это устройство для оперативного аппаратного уничтожения данных вместе с носителем. В этой статье я хочу показать результаты, получить обратную связь в комментариях и возможно, собрать предзаказы. По своей сути это аналог чеховского ружья, у которого цель выстрелить в нужный момент.
И в конце автор делает приписку:
Это законно?
Устройство не имеет потенциально никаких незаконных функций, оно должно быть полностью легально во всех странах.
А вот тут начинается самое интересное. Это законно? Абсолютно. Точно также как вы можете абсолютно спокойно приобрести в хозмаге топор. Другой вопрос что вы потом со своим приобретением сделаете.
Топором можно наколоть дров, а можно с ним пойти на большую дорогу, последнего УК РФ явно не одобряет. Но проблема здесь будет не в топоре.
Точно также SSD killer можно легально использовать для уничтожения информации перед утилизацией дисков или в иных, предусмотренных регламентом случаях.
Что касается любимой и популярной забавы уничтожить данные в случае маски-шоу или иного визита незапланированных гостей, то тут все не так просто и безоблачно.
В большинстве случаев уголовную ответственность за экономические преступления несут директор и главный бухгалтер. Системный администратор в данный перечень не входит, его зона ответственности лежит несколько в иной плоскости – 146 УК РФ. Но сейчас речь не про нее.
За экономические преступления с системного администратора спросить нечего, однако его могут попросить выдать пароли, места размещения информации, саму информацию, бекапы и т.д. При этом, проходя по делу в статусе свидетеля он обязан это сделать (УК РФ Статья 308. Отказ свидетеля или потерпевшего от дачи показаний).
Но это не означает, что нужно заливаться соловьем, колоться как гнилой орех и сдавать всех как пустую посуду. Чем больше вы расскажете, тем больше вероятность «поднять статью с пола». Поэтому правильная модель поведения – это говорить в присутствии адвоката. До этого – не помню, забыл. Главное – не давать заведомо ложных показаний, за них есть ответственность, а за «забыл» - нет.
Если же вы установили и даже не успели использовать подобное средство уничтожения информации, то это меняет все.
Статья 32. Понятие соучастия в преступлении
Соучастием в преступлении признается умышленное совместное участие двух или более лиц в совершении умышленного преступления.
Статья 33. Виды соучастников преступления
1. Соучастниками преступления наряду с исполнителем признаются организатор, подстрекатель и пособник.
5. Пособником признается лицо, содействовавшее совершению преступления советами, указаниями, предоставлением информации, средств или орудий совершения преступления либо устранением препятствий, а также лицо, заранее обещавшее скрыть преступника, средства или орудия совершения преступления, следы преступления либо предметы, добытые преступным путем, а равно лицо, заранее обещавшее приобрести или сбыть такие предметы.
Т.е. установив подобное устройство вы заранее пообещали скрыть преступника, средства или орудия совершения преступления, следы преступления либо предметы, добытые преступным путем.
А это уже группой лиц по предварительному сговору, что влечет более строгое наказание согласно УК РФ.
И если риски директора и главного бухгалтера еще можно считать приемлемыми с учетом полученной ими материальной выгоды, то резона системному администратору вписываться в данную схему нет и не просматривается.
По факту это и есть именно «поднять статью с пола».
Поэтому перед тем как применять или просто устанавливать подобные средства подумайте а оно вам надо?
Устройства оперативного уничтожения информации давно будоражат умы коллег. Так и сегодня товарищ прислал мне ссылку на Хабр где описывалось одно такое устройство:
Привет, меня зовут Ваня, и вот коротенькая история о том, как я придумал и собрал одну штуку, и почему вам срочно нужно отдать мне все свои деньги. А если серьезно, это устройство для оперативного аппаратного уничтожения данных вместе с носителем. В этой статье я хочу показать результаты, получить обратную связь в комментариях и возможно, собрать предзаказы. По своей сути это аналог чеховского ружья, у которого цель выстрелить в нужный момент.
И в конце автор делает приписку:
Это законно?
Устройство не имеет потенциально никаких незаконных функций, оно должно быть полностью легально во всех странах.
А вот тут начинается самое интересное. Это законно? Абсолютно. Точно также как вы можете абсолютно спокойно приобрести в хозмаге топор. Другой вопрос что вы потом со своим приобретением сделаете.
Топором можно наколоть дров, а можно с ним пойти на большую дорогу, последнего УК РФ явно не одобряет. Но проблема здесь будет не в топоре.
Точно также SSD killer можно легально использовать для уничтожения информации перед утилизацией дисков или в иных, предусмотренных регламентом случаях.
Что касается любимой и популярной забавы уничтожить данные в случае маски-шоу или иного визита незапланированных гостей, то тут все не так просто и безоблачно.
В большинстве случаев уголовную ответственность за экономические преступления несут директор и главный бухгалтер. Системный администратор в данный перечень не входит, его зона ответственности лежит несколько в иной плоскости – 146 УК РФ. Но сейчас речь не про нее.
За экономические преступления с системного администратора спросить нечего, однако его могут попросить выдать пароли, места размещения информации, саму информацию, бекапы и т.д. При этом, проходя по делу в статусе свидетеля он обязан это сделать (УК РФ Статья 308. Отказ свидетеля или потерпевшего от дачи показаний).
Но это не означает, что нужно заливаться соловьем, колоться как гнилой орех и сдавать всех как пустую посуду. Чем больше вы расскажете, тем больше вероятность «поднять статью с пола». Поэтому правильная модель поведения – это говорить в присутствии адвоката. До этого – не помню, забыл. Главное – не давать заведомо ложных показаний, за них есть ответственность, а за «забыл» - нет.
Если же вы установили и даже не успели использовать подобное средство уничтожения информации, то это меняет все.
Статья 32. Понятие соучастия в преступлении
Соучастием в преступлении признается умышленное совместное участие двух или более лиц в совершении умышленного преступления.
Статья 33. Виды соучастников преступления
1. Соучастниками преступления наряду с исполнителем признаются организатор, подстрекатель и пособник.
5. Пособником признается лицо, содействовавшее совершению преступления советами, указаниями, предоставлением информации, средств или орудий совершения преступления либо устранением препятствий, а также лицо, заранее обещавшее скрыть преступника, средства или орудия совершения преступления, следы преступления либо предметы, добытые преступным путем, а равно лицо, заранее обещавшее приобрести или сбыть такие предметы.
Т.е. установив подобное устройство вы заранее пообещали скрыть преступника, средства или орудия совершения преступления, следы преступления либо предметы, добытые преступным путем.
А это уже группой лиц по предварительному сговору, что влечет более строгое наказание согласно УК РФ.
И если риски директора и главного бухгалтера еще можно считать приемлемыми с учетом полученной ими материальной выгоды, то резона системному администратору вписываться в данную схему нет и не просматривается.
По факту это и есть именно «поднять статью с пола».
Поэтому перед тем как применять или просто устанавливать подобные средства подумайте а оно вам надо?
👍34👎7🤡6
Использовали ли вы устройства для оперативного уничтожения информации
Anonymous Poll
67%
Нет
5%
Думали, но не стали
3%
Установили, но повода не было
1%
Случайно все стерли, больше не используем
1%
Использовали, пронесло
1%
Использовали, откинусь - расскажу подробности
1%
Думаем использовать
0%
Пробовали использовать - не помогло
3%
Я чтю уголовный кодекс и сдал работодателя как пустую посуду
18%
Ничего не понятно, но очень интересно
❤2👍1
Запускаем Wireguard как службу Windows
У клиента Wireguard для Windows есть один недостаток – он запускается интерактивно, т.е. после входа пользователя в систему, что неудобно если вы с его помощью хотите организовать удаленный доступ, например, к серверу.
В этом случае нас выручит запуск клиента как службы, что обеспечит постоянный доступ, лишь бы сервер был загружен.
Подобный вопрос всплывает с завидной регулярностью и крайне скупо освещен в документации, которую никто не читает. Поэтому мы решили осветить его у себя.
Также сразу внесем ясность: у Wireguard одна служба – это один туннель, если вам нужно автоматически поднимать несколько туннелей – то необходимо создать несколько служб.
При настройке следует использовать имя конфигурационного файла для соответствующего туннеля в нашем случае это будет wg0.conf
Все приведенные ниже команды следует исполнять в консоли PowerShell запущенной с правами Администратора.
Первая команда создает службу для указанного туннеля WireGuard, вторая создает и связывает с ней службу Windows с отложенным автоматическим запуском, а третья запускает ее. В принципе для установки хватает первых двух, после чего вы должны будете перезагрузиться или запустить службу руками в оснастке Службы.
У клиента Wireguard для Windows есть один недостаток – он запускается интерактивно, т.е. после входа пользователя в систему, что неудобно если вы с его помощью хотите организовать удаленный доступ, например, к серверу.
В этом случае нас выручит запуск клиента как службы, что обеспечит постоянный доступ, лишь бы сервер был загружен.
Подобный вопрос всплывает с завидной регулярностью и крайне скупо освещен в документации, которую никто не читает. Поэтому мы решили осветить его у себя.
Также сразу внесем ясность: у Wireguard одна служба – это один туннель, если вам нужно автоматически поднимать несколько туннелей – то необходимо создать несколько служб.
При настройке следует использовать имя конфигурационного файла для соответствующего туннеля в нашем случае это будет wg0.conf
Все приведенные ниже команды следует исполнять в консоли PowerShell запущенной с правами Администратора.
Start-Process "C:\Program Files\WireGuard\wireguard.exe" -ArgumentList "/installtunnelservice", "wg0.conf" -Wait -NoNewWindow -PassThru | Out-Null
Start-Process sc.exe -ArgumentList "config", "WireGuardTunnel$wg0", "start= delayed-auto" -Wait -NoNewWindow -PassThru | Out-Null
Start-Service -Name WireGuardTunnel$wg0 -ErrorAction SilentlyContinue
Первая команда создает службу для указанного туннеля WireGuard, вторая создает и связывает с ней службу Windows с отложенным автоматическим запуском, а третья запускает ее. В принципе для установки хватает первых двух, после чего вы должны будете перезагрузиться или запустить службу руками в оснастке Службы.
👍56🤔2🔥1
⏰ Курс «Быстрый старт в DevOps» бесплатно. Как забрать?
Меня зовут Марсель Ибраев, и на своем канале я делюсь фишками, которые помогут вам начать путь в DevOps.
2 апреля стартует курс, созданный на основе ваших пожеланий. Мы с командой учебного центра Слёрм ответим на самые актуальные вопросы начинающих девопсеров:
⚡️ что такое DevOps, и как выстроить работу команды в рамках этой методологии;
⚡️ Kubernetes, Docker и т.д.: как базовые инструменты выстраивают работу в DevOps;
⚡️ DevOps и компания: как состыковать критерии успеха.
1 неделя = 1 открытый модуль. В первом модуле разберем как быстро и эффективно освоить профессию с высокой зарплатой, с каких инструментов начинать, и какую роль в девопсе играют софт-скиллы.
🔗 ЗАБРАТЬ КУРС
erid: LjN8Jstoi
Меня зовут Марсель Ибраев, и на своем канале я делюсь фишками, которые помогут вам начать путь в DevOps.
2 апреля стартует курс, созданный на основе ваших пожеланий. Мы с командой учебного центра Слёрм ответим на самые актуальные вопросы начинающих девопсеров:
⚡️ что такое DevOps, и как выстроить работу команды в рамках этой методологии;
⚡️ Kubernetes, Docker и т.д.: как базовые инструменты выстраивают работу в DevOps;
⚡️ DevOps и компания: как состыковать критерии успеха.
1 неделя = 1 открытый модуль. В первом модуле разберем как быстро и эффективно освоить профессию с высокой зарплатой, с каких инструментов начинать, и какую роль в девопсе играют софт-скиллы.
🔗 ЗАБРАТЬ КУРС
erid: LjN8Jstoi
👍4