CentOS. Насколько можно доверять сторонним репозиториям.
На примере. Если спросить яндекс «munin centos 5 install», на втором месте статья «Мониторинг для ленивых с помощью munin на примере Centos 5», где сказано, что добыть munin’a можно из RPMforge, который предлагается поставить следующим образом:

в мире linux встречаются репозитории со ЗЛОМ внутри?
RPM-пакет даже голову откусить может. А если серьезно, держи свой репозиторий с необходимыми пакетами и будешь крепко спать по ночам.

насколько крепче того кто сам пишет весь софт для себя? =)

мне как то пакет гитолайта из опензюзю фэктори вынес ссх ключи всех своих юзеров, хорошо что хоть репозитарии оставил

Это как секс с дамами из клубов, которых видишь в первый раз. Можно, но стоит предохраняться и на любителя.
Чем опасны сторонние репозитории
Во-первых, вам следует уяснить, что не существует на 100% безопасных систем. Ни в реальном, ни в цифровом мире. Это утверждение справедливо даже в том случае, если ваш компьютер работает под управлением одного из дистрибутивов Linux. В любом случае вы должны руководствоваться здравым смыслом. И даже в этом случае вы не застрахованы от ошибок. Незначительный риск компрометации системы будет иметь место при любых обстоятельствах. Как говорят французы: се ля ви.
1. Общие советы по повышению безопасности системы
Если говорить о наиболее действенных мерах по повышению безопасности системы Linux, можно выделить следующие пункты:
- Следует устанавливать обновления сразу же после их выпуска;
- Следует устанавливать программное обеспечение исключительно из официальных репозиториев дистрибутивов Linux Mint, Ubuntu и Fedora Workstation;
- Не стоит устанавливать какой-либо антивирус (да, это не ошибка!);
- Не стоит устанавливать эмуляторы ОС Windows, такие, как Wine;
- Следует активировать межсетевой экран;
- Кроме того, в любых ситуациях следует руководствоваться здравым смыслом.
Если вы соблюдаете все эти пункты, можете расслабиться, ведь вы используете Linux…
Краткие пояснения относительно вирусов, межсетевого экрана и эксплоитов будут даны в следующих разделах.
1.1. Антивирусное программное обеспечение и утилиты для удаления руткитов
В дистрибутивах Ubuntu, Linux Mint и Fedora Workstation вам не понадобится ни антивирусное программное обеспечение, ни утилиты для удаления руткитов. Ведь при регулярном обновлении системы вирус или руткит не сможет проникнуть в нее. Кроме того, в Linux загруженное пользователем вредоносное программное обеспечение может функционировать исключительно в его домашней директории. Исходя из вышесказанного, для установки вируса или руткита в систему ему потребуется ваш пароль, либо уязвимость одного из компонентов системы. Но в подавляющем большинстве случаев он не сможет воспользоваться ни тем, ни другим.
Более того, вы можете значительно повысить безопасность своей системы, устанавливая программное обеспечение из официальных «источников приложений» (репозиториев) вашего дистрибутива Linux. Это крайне эффективный барьер на пути вредоносного программного обеспечения.
Ввиду описанных особенностей, в данное время не существует вирусов или руткитов, массово поражающих настольные системы Linux (конечно же, это утверждение не справедливо для веб-серверов, но и механизмы защиты веб-серверов значительно отличаются от описанных выше).
Также следует отметить тот факт, что антивирусное программное обеспечение создает ложное чувство защищенности, подавляющее подозрения насчет безопасности установки программного обеспечения из сторонних репозиториев.
Наконец, антивирусное программное обеспечение в некоторых случаях даже активно снижает безопасность вашей системы: само антивирусное программное обеспечение все чаще становится целью различных атак. Это объясняется тем, что подобное программное обеспечение зачастую имеет высокие привилегии в системе и плохо защищено от атак… Именно поэтому любой антивирусный программный продукт является идеальной целью для злоумышленников.
Лучшей защитой от вирусов является комплекс из следующих мер:
- Установка дистрибутива Linux с хорошей поддержкой, такого, как Linux Mint, Ubuntu или Fedora Workstation;
- Ежедневная проверка на наличие обновлений и их установка;
- Установка программного обеспечения исключительно из официальных источников;
- Использование системы в соответствии со здравым смыслом.
Дополнительные пояснения будут даны ниже.
1.2. Межсетевой экран
Межсетевой экран присутствует в в любом дистрибутиве Linux. Он носит имя IPTables и интегрирован непосредственно в ядро ОС. Состояние межсетевого экрана IPTables может изменяться с помощью различных вспомогательных приложений; в дистрибутиве Linux Mint таким приложением является предустановленное по умолчанию приложение «Uncomplicated Firewall (ufw)» («Несложный межсетевой экран»).
По умолчанию межсетевой экран не активирован, так как чаще всего никакие из открытых портов не предназначены для приема соединений из сети Интернет. Как минимум, таких служб точно нет в комплекте стандартной поставки дистрибутива. Поэтому злоумышленник не сможет сделать что-либо в условиях отсутствия служб, использующих открытые порты для приема соединений.
Однако, в некоторых случаях вам все же понадобится межсетевой экран. Например, вы можете работать в незащищенной беспроводной сети или активировать на своем компьютере какие-либо службы, принимающие соединения извне. Поэтому для повышения безопасности системы рекомендуется активировать межсетевой экран во всех случаях.
Вы можете активировать межсетевой экран с помощью терминала. Для активации службы в окно терминала следует ввести (с помощью функций копирования/вставки) следующую команду команду:
sudo ufw enable
После ввода команды нажмите клавишу Enter. При запросе введите ваш пароль. Символы вашего пароля не будут отображаться никоим образом, даже с помощью точек, и это нормально. После ввода пароля снова нажмите клавишу Enter.
Служба «Uncomplicated Firewall (ufw)» использует разумный набор стандартных параметров конфигурации (объединенных в рамках профиля), которые являются приемлемыми для подавляющего числа домашних пользователей дистрибутива. Таким образом, в том случае, если у вас нет каких-либо специфических требований к межсетевому экрану, его настройку можно считать оконченной!
Вы можете проверить состояние межсетевого экрана с помощью следующей команды:
sudo ufw status verbose
После ввода команды нужно нажать клавишу Enter. В том случае, если межсетевой экран активен, вы должны увидеть аналогичный вывод:
$ sudo ufw status verbose
[sudo] password for alex:
Состояние: активен
Журналирование: on (low)
Default: <strong>deny (incoming)</strong>, allow (outgoing), disabled (routed)
Новые профили: skip
[email protected]:
Я специально выделил наиболее важное сообщение: оно означает, что на уровне межсетевого экрана запрещены все входящие соединения и разрешены все исходящие соединения.
Несмотря на то, что данные настройки используемого по умолчанию профиля межсетевого экрана совместимы с большинством приложений, существуют некоторые исключения: например, при использовании Samba вы не столкнетесь ни с какими проблемами. При этом вы сможете осуществлять загрузку файлов с торрентов; но в случае размещения ваших файлов на торрентах вам все же придется временно деактивировать службу ufw.
Отключение межсетевого экрана не связано с какими-либо сложностями и осуществляется с помощью команды:
sudo ufw disable
После ввода команды необходимо нажать клавишу Enter. Если вас интересует информация обо всем наборе правил межсетевого экрана, вы можете ознакомиться с выводом команды:
sudo ufw show raw
Также вы можете изучить файлы правил межсетевого экрана из директории /etc/ufw (а именно, те файлы, имена которых оканчиваются на .rules).
В дистрибутиве Fedora Workstation для управления межсетевым экраном используется предустановленное по умолчанию приложение «FirewallD», которое активировано и настроено оптимальным образом, поэтому никакого вмешательства пользователя в его работу не требуется.
1.3. Уязвимости
Эксплуатируемые уязвимости могут быть обнаружены в любой операционной системе и в любом приложении. Linux не является исключением. Наиболее действенным средством защиты от них является своевременная установка обновлений. В дистрибутиве Ubuntu осуществляется ежедневная проверка наличия обновлений безопасности. Рекомендуется устанавливать все предлагаемые обновления безопасности сразу же после их выпуска, если вы желаете сделать свою систему настолько защищенной, насколько это возможно.
Если уязвимость обнаружена и своевременно исправлена, она не будет большой проблемой.
2. Подробнее об антивирусах
Давайте поразмышляем об антивирусном программном обеспечении.
Ввиду роста популярности системы Linux, большинство антивирусных компаний пожелало занять свою долю на новом рынке. Многие неопытные пользователи Linux считают, что им нужны какие-либо антивирусные пакеты в Linux, так как данные компании внушили им это с помощью успешных маркетинговых кампаний.
Однако, все с точностью наоборот. В отличие от других операционных систем, для Linux практически невозможно разработать эффективный вирус. Да, это утверждение может вызвать, по крайней мере, удивление. Что же, придется дать некоторые пояснения и по этому вопросу.
Компьютеры, работающие под управлением какого-либо дистрибутива Linux, являются такими же целями для атак, как и компьютеры, работающие под управлением любой другой операционной системы. Серверы многих популярных (и, следовательно, посещаемых) веб-сайтов также работают под управлением Linux, поэтому у злоумышленников, безусловно, имеется мотивация для инфицирования Linux-систем.
Некоторые люди считают, что сообщество разработчиков Linux отстает от разработчиков других систем в плане антивирусного программного обеспечения и других механизмов для повышения безопасности системы. Это мнение также не соответствует действительности.
Разработчики Linux не игнорируют связанные с вирусами вопросы, они просто проектируют систему таким образом, чтобы она была максимально недоступной для вирусов. А ввиду того, что весь исходный код системных компонентов открыт, его аудит осуществляется буквально тысячами людей, которые проверяют его на наличие ошибок и предлагают исправления.
Сканеры антивирусных пакетов в большинстве своем работают в «реактивном» режиме, то есть защищают лишь от тех вирусов, которые уже известны создателям сканера. Таким образом, антивирусные приложения могут защищать от нового вируса только после того, как он начал распространяться, а не до того.
Важно отметить, что лучшей защитой от любого вируса является исправление ошибки в программном компоненте, посредством которого может быть осуществлена атака. Подобные исправления распространяются в форме обновлений безопасности (которые выпускаются для Linux оперативнее и чаще, чем для Windows и Mac OS).
Несколько антивирусных компаний выпускают обновления для баз данных своих продуктов оперативнее, чем команда безопасности дистрибутива Ubuntu. Промежуток времени между опубликованием информации об уязвимости и добавлением информации о ней в базу антивирусного продукта или выпуском исправления является наиболее опасным.
Как упоминалось ранее, уязвимость не является большой проблемой в том случае, если она быстро обнаруживается и исполняется.
Разумеется, несмотря на все сложности установки вируса в систему Linux, она может быть успешно осуществлена. Особая опасность связана со сторонними ненадежными репозиториями программного обеспечения и небезопасным кодом, который исполняется безответственным системным администратором.
Разумно помнить о том, что при установке программного обеспечения следует отдавать предпочтение одному из официальных репозиториев вашего дистрибутива Linux. Будьте особенно осторожны с программным обеспечением из сторонних источников, таким, как программное обеспечение, распространяемое в форме отдельных файлов пакетов (с расширением .deb). Устанавливайте из сторонних источников лишь то программное обеспечение, которое вызывает доверие, такое, как Google Chrome и Oracle (Sun) Java JRE.
В любом случае, на данный момент не существует активно распространяющихся вирусов для Linux.
3. Мой совет: не устанавливайте никакое антивирусное программное обеспечение
Исходя из всего вышесказанного, я могу лишь посоветовать не устанавливать никакой сканер вирусов, если ваш компьютер работает под управлением Linux. Я советую это по следующим причинам:
A. В Linux на возможность исполнения файла указывает не его расширение (такое, как .exe в ОС Windows), а права доступа к нему. Каждый создаваемый в Linux файл по умолчанию не является исполняемым, поэтому пользователю придется выполнить дополнительное действие для того, чтобы иметь возможность выполнить его.
B. В Linux обычный пользователь имеет очень ограниченные права в системе. Например, обычный пользователь не может выполнять административные задачи. Именно поэтому область работы обычного пользователя ограничена его домашней директорией. Для установки программного обеспечения в систему вам в любом случае придется работать от лица пользователя root (или временно получить права пользователя root, как это делается в дистрибутивах Ubuntu и Linux Mint). В дистрибутивах Ubuntu и Linux Mint по умолчанию даже администратор входит в систему с ограниченными правами. Если он будет выполнять административную задачу, ему придется дополнительно ввести свой пароль для получения временных привилегий пользователя root. После ввода пароля привилегии пользователя root будут сохраняться за пользователем в течение последующих 15 минут.
C. Многие пользователи Linux настраивают свои системы в соответствии со своими предпочтениями. Из-за наличия большого количества различных дистрибутивов Linux, приложений и версий ядра Linux, достаточно сложно разработать эксплоит для эксплуатации уязвимостей подавляющего большинства систем.
D. Сканеры вирусов обнаруживают в основном вирусы для ОС Windows. Эти вирусы не будут работать в Linux.
E. Сканеры вирусов нередко выводят ложные предупреждения. Возможно, в некоторых случаях это делается умышленно для того, чтобы убедить пользователя в работоспособности сканера. Подобное поведение принуждает пользователей вносить необоснованные изменения в состав компонентов системы, тем самым ухудшая ее работоспособность.
F. Установка антивируса может создать ложное убеждение в том, что система надежно защищена и можно устанавливать программное обеспечение из любых сторонних источников помимо официальных репозиториев используемого дистрибутива Linux.
G. Антивирусное программное обеспечение само все чаще и чаще становится целью атак злоумышленников так как оно по определению имеет высокие привилегии в системе и обычно недостаточно защищено от различных атак. Это обстоятельство делает антивирусное программное обеспечение идеальной целью для злоумышленников. Можете ознакомиться с данной статьей, посвященной исследованию антивирусного программного обеспечения, проведенному в 2014 году. Слайды презентации исследования размещены на данном ресурсе.
H. На данный момент не существует активно распространяющихся вирусов для Linux.
Если говорить кратко, антивирус в Linux является не только излишним, но и опасным, так как он создает ложное ощущение защиты и нередко сам по себе уязвим.
4. Заблуждение о необходимости защиты пользователей ОС Windows
Рано или поздно вы столкнетесь со следующим утверждением: «Я использую антивирус в Linux для того, чтобы случайно не передать вирус для Windows пользователю этой системы. Я могу случайно передать его, например, прикрепив непроверенный файл к сообщению электронной почты.»
Это утверждение является заблуждением по описанным ниже причинам.
Использование антивируса в Linux является пустой тратой системных ресурсов. Эти ресурсы могут использоваться более разумно, например, для повышения отзывчивости системы.
Одно из преимуществ Linux заключается в возможности полного отказа от использования антивирусов. Вообще, подход, заключающийся в переходе на операционную систему, для которой не существует активных вирусов, с последующим запуском в ней антивирусного программного обеспечения является достаточно контрпродуктивным.
Кроме того, неразумно использовать его ради безопасности пользователей, не защищающих свою операционную систему.
В том случае, если пользователи ОС Windows не уделяют должного внимания вопросам защиты своей операционной системы от угроз, обусловленных ее не проработанной архитектурой, все усилия сравнительно небольшого количества пользователей дистрибутивов Linux не приведут к каким-либо заметным положительным изменениям. Такие пользователи ОС Windows в любом случае столкнутся с вредоносным программным обеспечением, полученным из какого-либо другого источника.
Фактически, я считаю, что пользователи ОС Windows должны сами заботиться о работоспособности своей системы. Я не пытаюсь быть резким: это достаточно простой принцип, в соответствии с которым каждый человек должен отвечать за последствия своего действия или выбора, иначе у него не будет никаких стимулов для перемен.
Исходя из этого, в том случае, если пользователь Linux не поддерживает работу публичного веб-сервера, почтового сервера или файлового сервера (чем явно не будет заниматься среднестатистический пользователь), я настоятельно рекомендую ему не устанавливать антивирус, так как в случае его установки он молчаливо одобрит один из худших аспектов проектирования операционных систем.
На самом деле, несложно заметить, что утверждение о «защите пользователей Windows» иногда используется в качестве удобного предлога пользователями, по каким-либо причинам не верящими в возможность использования Linux без антивируса…
Если вы все же желаете снизить вероятность передачи пользователю Windows вируса вместе с сообщением электронной почты, просто пользуйтесь почтовым сервисом GMail для отправки сообщений с вложениями.
Почтовый сервис компании Google автоматически сканирует вложения на наличие вирусов, троянов и другого вредоносного программного обеспечения. Сканирование осуществляется средствами профессионального сканера вирусов с постоянно обновляемой базой данных, работающего на серверах сервиса GMail. Вы можете бесплатно зарегистрировать учетную запись на сервере GMail, поэтому не стоит волноваться по поводу оплаты сервиса…
Если же вы активируете поддержку протоколов POP3 или IMAP и SMTP с помощью веб-интерфейса GMail, вы сможете отказаться от использования веб-интерфейса и работать с электронной почтой, используя такие приложения, как Thunderbird или Evolution.
Примечание: на сегодняшний день каждый популярный почтовый сервис (не только GMail) осуществляет автоматическое сканирование вложений электронных писем на наличие вирусов для Windows на уровне сервера.
Другой вариант проверки файлов на наличие вирусов связан с использованием бесплатного веб-сервиса VirusTotal.com от компании Google. Он осуществляет сканирование каждого загруженного вами файла на наличие вирусов и другого вредоносного программного обеспечения.
5. Не устанавливайте Wine в вашем дистрибутиве Linux
Приведенные выше советы относительно безопасной эксплуатации системы Linux подразумевают использование «чистой» системы без эмуляторов Windows, таких, как Wine, PlayOnLinux и CrossOver.
Эти эмуляторы используются для запуска приложений для Windows в Linux. Лучше не устанавливать подобные эмуляторы Windows, так как они делают вашу систему Linux частично уязвимой для вредоносного программного обеспечения для Windows.
Если вам необходимо использовать приложения для Windows, вы можете установить эмулятор на развлекательной машине, установить легальную копию Windows в виртуальной машине или (если на вашем компьютере организована двойная загрузка) запускать их непосредственно в Windows.
6. Избегайте сомнительных или сторонних дополнений для веб-браузера
Попытайтесь не устанавливать сомнительные или сторонние дополнения и расширения для вашего веб-браузера. Они могут ухудшить безопасность вашей системы.
Вы уже установили подобные дополнения для веб-браузера Firefox, Chrome или Chromium, после чего директория данных веб-браузера заполнилась подозрительными файлами (что обычно происходит из-за использования сомнительных дополнений), и желаете запустить веб-браузер в очищенном окружении? Воспользуйтесь советами из раздела 8.
7. Опасные действия
Существуют действия, которые в прямом смысле опасны для системы Linux и которых вы наверняка хотите избежать. Обязательно найдите время для ознакомления с описанием 10 фатальных ошибок.
8. Безопасность беспроводных сетей
Вопрос безопасности беспроводных сетей не относится напрямую к вопросам безопасного использования операционных систем, но при этом является достаточно важным. Рекомендуем ознакомиться с советами относительно корректной защиты беспроводных сетей.
9. Отключите поддержку механизма Universal Plug and Play (UPnP) в вашем маршрутизаторе
Вы должны отключить поддержку механизма Universal Plug and Play (UPnP) в вашем маршрутизаторе; это не связано с операционной системой, но очень важно. Механизм UPnP позволяет подключенным к сети устройствам взаимодействовать друг с другом как в рамках локальной сети, так и посредством сети Интернет.
Описанный механизм достаточно прост, но очень опасен: он является большой прорехой в системе безопасности, которую невозможно закрыть. Лучшим решением является полное отключение механизма UPnP, так как он сам по себе не безопасен.
В первую очередь вы должны найти руководство по эксплуатации вашего маршрутизатора; если вы не сможете найти его, вы наверняка сможете загрузить его электронную копию с веб-сайта производителя маршрутизатора.
Получите доступ к веб-интерфейсу вашего маршрутизатора и отключите механизм UPnP, а также сопутствующую функцию «Разрешить пользователю осуществлять настройку».
Примечание: в некоторых случаях могут потребоваться некоторые дополнительные действия, такие, как активация поддержки VPN, механизма обмена файлами P2P и аналогичных механизмов (а также открытие некоторых портов в ручном режиме). Эти действия могут и не потребоваться в зависимости от стандартных параметров прошивки вашего маршрутизатора, установленных производителем.
10. Относитесь с особой осторожностью к Java и OpenJDK
Виртуальная машина Java (как Oracle Java, так и OpenJDK) постоянно становится целью атак. Именно поэтому разумным решением является деактивация плагина Java в вашем веб-браузере (конечно же, в том случае, если вы его установили). Впоследствии вы сможете активировать плагин Java при необходимости на короткий период времени.
Данный совет относится как к пользователям Windows, так и к пользователям Linux. В этом плане системы Linux также уязвимы! Это объясняется тем, что виртуальная машина Java является платформонезависимой,то есть работает вне зависимости от используемой операционной системы.
В Firefox вы можете деактивировать плагин таким образом, как описано здесь, а в Google Chrome и Chromium — таким образом, как описано здесь.
Примечание: данный совет относится только к плагину Java. Кроме него каждый веб-браузер поддерживает язык сценариев JavaScript, который не связан с какими либо угрозами безопасности, в отличие от плагина Java. Поэтому в подавляющем большинстве случаев дополнительная деактивация поддержки языка сценариев JavaScript не требуется.
11. Научитесь создавать безопасные пароли, которые легко запомнить
Создать и запомнить безопасный пароль не так сложно, как кажется большинству людей.
Хотите ознакомиться с дополнительными советами?
Хотите узнать о других настройках и приемах работы с дистрибутивами Linux? На данном веб-сайте размещено большое количество подобных материалов. Например, вы можете узнать о том, как просто заменить Windows XP на Linux Mint.
Безопасно ли добавлять репозитории?
Интересует безопасно ли добавлять сторонние репозитории на девелоп/продакшн сервер под управлением ubuntu server?
Например, я нашел репозиторий с PHP7, все ли там в порядке? Имеется ли способ установить это?
- Вопрос задан более трёх лет назад
- 542 просмотра
- Вконтакте
Зависит от репозитория =)
Вообще, в общем случае — нет, если только проверенные и общественно признанные (как, например, debian backports в своё время были).
Dotdeb тоже вроде бы публично признанный, и туда вряд ли попадет откровенная вирусня, но вот собирать пакеты там не всегда стараются, собирают «как могут».
- Вконтакте
Влад Животнев: Просто у меня какие-то проблемы с установкой php 7. Читал вашу статью по поводу checkinstall, нашел мануал по установке из исходников: help.ubuntu.ru/wiki/programs_installation . Но почему-то до сборки конфигуратора у меня уже есть файл configure, в общем, после его выполнения я получаю:
Поэтому задумался о сторонних репозиториях (ondrej), на тестовом сервере вроде как все прошло успешно, но что-то он меня смущает 🙂
8 ножей в спину Linux: от любви до ненависти один баг
Читатели могли заметить, что в последнее время у нас стали чаще появляться материалы о Linux. Увы, иногда защитники и — будем называть вещи своими именами — пропагандисты Linux ведут себя так, что порой складывается ощущение, будто их наняла неведомая могущественная корпорация, которая желает показать пользователей Linux в самом неприглядном свете.
Давайте рассмотрим наиболее часто встречающиеся аргументы и ошибки с их стороны. Но только про Linux, причём полноценный десктопный! И немного про Open Source в целом. Можно очень долго рассказывать, как всё плохо с той или иной не Linux-based ОС или программой, но Linux от этого лучше (или хуже) не станет. Можно столь же долго убеждать, что «у меня всё работает», или обвинять в некомпетентности оппонента, но от этого тоже ничего не изменится. А можно наконец признать, что проблемы есть и что средний пользователь справиться с ними не в состоянии.
⇡#Аргумент 1: Linux везде
Или, проще говоря, Linux уже победил, так что можно сидеть спокойно, не переживать и наслаждаться победой. Тут обычно вспоминают встраиваемые решения или — в общем случае — какие-то готовые продукты (чаще говорят про сетевые), а также Android и суперкомпьютеры с серверами.
Убедиться в правдивости этих утверждений несложно — в отчёте о разработке ядра Linux за 2017 год приводятся следующие цифры: 90% рабочих приложений в публичных облаках работают с ОС на базе Linux, на рынке встраиваемых решений доля этого типа ОС составляет 62%, а на рынке суперкомпьютеров — все 99% (сейчас, конечно, и того больше). Наконец, 82% смартфонов в мире используют ядро Linux, как и 9 из топ-10 публичных облаков.
Как всё это относится к десктопным дистрибутивам, в обсуждении которых и всплывают подобные аргументы, не очень понятно.

Давайте разбираться по очереди. Для встраиваемых решений действительно используется ядро Linux, но только ядро. Даже привычного минимального окружения может не быть, в лучшем случае приложат busybox. Да и сами ядра в этом случае тоже достаточно глубоко кастомизированы. Но это всё детали, важно то, что пользователю в конечном счёте всё равно, что там под капотом. Ему нужен определённый набор функций и интерфейс для работы с ними.
С Android история точно такая же. В основе, конечно, тоже ядро Linux, но подавляющее большинство приложений взаимодействует в первую очередь с Android Runtime (ART), а не с ядром. Собственно, это самое ядро тоже во многом отличается от основной ветки, а тот же ART уже портирован на Google Fuchsia. Так что, если в какой-то момент разработчики решат переехать с ядра Linux на любую другую платформу, конечному пользователю наверняка будет всё равно.
С суперкомпьютерами вроде всё понятно — самые мощные системы в мире работают под управлением Linux, и вот тут уже речь про ОС, а не просто ядро. Серверы рассматриваются в контексте инфраструктуры, которая так или иначе обеспечивает нашу жизнь, прямо или косвенно. Всё, конечно, так, но вопрос прежний: как это всё относится к десктопным дистрибутивам? В особенности если вспомнить, что за всеми вышеперечисленными решениями стоит целый штат системных администраторов и разработчиков.
⇡#Аргумент 2: Linux бесплатен
Корректнее было бы сказать, что Linux выгоднее или, допустим, дешевле других решений. Но никакого возвышенного альтруизма и высокой духовности тут нет. Если вы не платите прямо сейчас за загрузку iso-образа и использование какого-нибудь дистрибутива, то это не значит, что вы не платите вообще. На уровне пользователя или даже компании переход на Linux всё равно выливается во временные затраты на освоение и поддержку системы, а время — деньги, как бы банально это ни звучало. И это, на мой взгляд, один их ключевых сдерживающих факторов.
Если же смотреть более широко и философски, то пора признать, что Linux во всех его проявлениях достаточно коммерциализирован. Где-то на рубеже веков произошёл важный перелом. Если раньше основными пользователями Linux были разработчики, зачастую из академической среды, которые сами могли что-то до- или переписать в системе, то впоследствии эти две группы стали всё меньше совпадать.
Многие мажорные и самостоятельные, то есть в достаточной степени отличающиеся от других, современные дистрибутивы либо имеют бесплатные и коммерческие (сюда же входит поддержка) версии, либо прямо или косвенно спонсируются другими компаниями, институтами, государством, а также частными лицами. Для примера: в 2018 году только в рамках SPI на Debian пришлось $335 тыс., а на Arch Linux $294 тыс. И это норма для бесплатных на первый взгляд проектов. В частности, Document Foundation (LibreOffice) обходится в €700-800 тыс. в год, OSI тратит несколько сотен тысяч долларов, а Linux Foundation, ключевая организация в мире Linux, стремительно наращивает обороты — в 2017 году она получила более $80 млн.
Это, конечно, копейки, но есть и другие способы поддержки, включая предоставление оборудования, хостинга, трафика, помещений для проведения мероприятий и так далее. Нормой является и наём отдельных разработчиков для развития и поддержки конкретной функциональности, и разработчики-бизнесмены, и наличие в штате разработчиков, которые только и занимаются развитием Linux либо других свободных проектов.
Последний вариант особенно интересен в отношении ядра Linux, которое ведь основа всего. Обратимся всё к тому же отчёту за 2017 год. Вклад действительно независимых разработчиков, без финансовой поддержки с чьей-либо стороны, составил 8,2 %. С некоторой натяжкой к ним можно добавить ещё 4,1 % от тех, для кого не удалось достоверно узнать о наличии спонсорства. Всё остальное — вклад коммерческих компаний, вполне себе платными продуктами которых вы прямо или косвенно пользуетесь, частично оплачивая таким образом и разработку Linux.
Да, тут есть нюанс — немалая часть кода ядра относится к платформозависимым кускам, а оценить значимость каждого отдельного вклада очень трудно. И хорошо, если решаемые корпорациями задачи совпадают с таковыми у конечного пользователя. А если нет? Ну тогда достаточно сделать форк и самостоятельно развивать его. Это ведь не проблема, правда?
⇡#Аргумент 3: Linux свободен
Под свободой в данном случае обычно понимают открытость кода, доступность его для модификации и формальное отсутствие единой точки контроля, что приводит, в частности, к возможности наличия нескольких имплементаций или модификаций одной и той же функциональности. Очень частно это действительно помогает.
Например, в 2004 году у XFree86, которым почти 13 лет пользовались практически все, внезапно сменилась лицензия, что всем не понравилось. Незадолго до официальной смены был сделан форк. И это нормально. Нормально и наличие нескольких независимых и взаимозаменяемых реализаций корневых компонентов — посмотрите на musl или LibreSSL, например. Это разумно для поддержания безопасности и стабильности. И это не самое плохое проявление NIH-синдрома.
Ненормальны истории вроде той, что произошла с Libav, когда часть команды из-за отчасти личных разногласий покинула FFmpeg и сделал его форк — собственно Libav, заодно предъявив права на логотип. Хуже того, в команде оказался мейнтейнер FFmpeg в Debian и Ubuntu, так что в этих дистрибутивах и их деривативах оказался именно Libav. В итоге через несколько лет они всё равно вернулись к FFmpeg. Нельзя сказать, что Libav оказался чем-то принципиально лучше. Да и вся история не слишком красивая.
На практике такая свобода легко приводит к фрагментации, распылению усилий разработчиков. Для относительно небольших, но востребованных проектов это может быть не так страшно. В случае крупных это оборачивается перманентными проблемами не столько для разработчиков, сколько для конечных пользователей.

В случае десктопного Linux речь не просто о противостоянии Qt и GTK или Gnome и KDE, которые в значительной мере дублируют друг друга в плане функциональности, а о каких-то корневых вещах. Уже лет пять постоянно идут разговоры, что вот-вот, уже прямо сейчас все переберутся с «иксов» на Wayland, а пока в качестве костыля есть XWayland. И про Mutter, KWin и переобувшийся на лету Mir от Canonical тоже не забудем. Глядишь, скоро приложения с разными тулкитами действительно будут вести себя одинаково и выглядеть единообразно. В конце концов, со звуком же как-то справились, и десяти лет не прошло.
С ядром в этом отношении попроще, так как управление разработкой во многом носит авторитарный характер. Регулярно появляются жалобы, что в основную ветку ядра не принимают те или иные патчи, так как постоянная поддержка актуальной версии ядра с собственными доработками со временем становится всё затратней. И именно поэтому Google уже больше десяти лет жаждет, чтобы ее модификации для Android попали в основную ветку. Чтобы было поменьше самодеятельности, как в случае патчей «безопасности» Samsung.
Стандарт LSB, который должен сохранить совместимость, с одной стороны, тоже не учитывает интересы хотя бы всех мажорных дистрибутивов, а с другой — не понятно, насколько реально актуален и исполняется. На практике даже на уровне API/ABI обратная и прямая совместимость не всегда является приоритетом.
Ну и нельзя не упомянуть о самом «спорном» системообразующем проекте десятилетия — systemd. Одни называют его благословлением, другие проклятием. Причем по одной и той же причине: он достаточно глубоко интегрируется в систему и позволяет контролировать очень многое. Как бы то ни было, основной разработкой занимается одна компания, но при этом systemd сейчас используют практически все ключевые дистрибутивы. Основное опасение в том, что пусть косвенно, пусть не сразу, но определять дальнейшее развитие ОС будет вполне конкретная корпорация и узкий круг людей.
⇡#Аргумент 4: Linux безопасен
Следствием открытости и свободы почему-то часто называют ещё безопасность и отсутствие ошибок. В наличии ошибок легко убедиться, открыв баг-трекер любого проекта. Да, наличие доступа к коду и возможность его модификации упрощает исправление багов, но не означает их отсутствие и не особо влияет на скорость выхода патча. Аудит нужен в любом случае. Кроме того, в реальном мире пользователь не занимается проверкой кода, а надеется, что кто-то сделал это за него, и скачивает обычно уже бинарные файлы.
Если говорить про софт, то есть просто-таки классические примеры: баг 25-летней давности, баг 33-летней выдержки и, наконец, ещё одна пара, 37 и 36 лет от роду. Все они появились ещё во времена BSD и перекочевали в их наследников. Все эти годы исходники были доступны великому множеству людей, что не помешало багам успешно дожить до наших дней.
Статистика обнаруженных уязвимостей ядра Linux неумолима: всего 3 критических, которые в среднем присутствуют 5,2 года; 44 высокого уровня со средним сроком 6,2 года; дыр среднего уровня опасности набралось 404 штуки, а «живут» они 5,3 года; низкого уровня всего 216 — и 5,5 лет соответственно. Предыдущее исследование также показало средний срок существования уязвимости на уровне 5 лет.

Красным обозначены критические уязвимости, оранжевым — уязвимости высокого уровня опасности. По вертикали — версии ядра, где они были.
Что касается десктопных дистрибутивов в целом, то принуждение к работе не под аккаунтом администратора, которое долгое время называли ключевым преимуществом, является настолько базовым правилом при работе в любой ОС, что уже как-то неприлично даже об этом говорить. Разделением прав доступа тоже никого не удивить, их надо лишь настроить.
Кстати, давно вы по доброй воле возились с polkit или apparmor, например? А с файрволом, который по умолчанию много где даже не настроен? Или доверяете параметрам от разработчиков? А бинарные файлы или пакеты из сторонних источников антивирусом проверяете? Или он вам действительно не нужен?
Впрочем, в случае десктопных дистрибутивов заполучить зловред, запустив какой-то «левый» файл, действительно сложно. И не только потому, что малое распространение и фрагментация делают всю затею малоинтересной, но и потому, что процесс дистрибуции ПО отличается.
⇡#Аргумент 5: в Linux лучший способ распространения ПО
Не единственный, но, пожалуй, самый популярный способ доставки ПО — это репозитории пакетов, централизованные хранилища программ, документации и сопутствующих материалов в том или ином виде. Особенность тут не в способе хранения — обновлениями с серверов разработчика никого не удивить, а в разумном ожидании пользователей, что уж установленное из репозиториев вашего дистрибутива Linux ПО будет работать. Ведь предполагается, что разработчики протестировали и учли все зависимости всех пакетов между собой. Это на самом деле крайне непростая задача.
Подключение стороннего репозитория или даже ручная установка стороннего пакета, в особенности если они не предназначены для конкретной версии ОС (а другого варианта может и не быть), может привести к нарушению зависимостей и проблемам с системой. Если не сразу, то, например, при накоплении достаточного числа обновлений или при переходе на новую мажорную версию дистрибутива. Самостоятельная корректная сборка и подгонка пакета с нуля — это вообще отдельное «удовольствие».
При этом у пользователя даже в рамках стандартной пакетной базы выбор небольшой: либо использовать устаревшее, но стабильное ПО, либо обратиться к модели rolling release, получая свежие программы, но ограничиваясь относительно малой официальной пакетной базой и доверяя сторонним источникам. Мало кому удаётся соблюсти хороший баланс. Дополнительные механизмы для поддержания стабильности вроде снапшотов со временем начинают отъедать место.
В качестве неизбежной альтернативы в итоге появились portable-форматы, о едином стандарте которых тоже так и не смогли договориться: существуют Flatpak, Snappy и AppImage. Устроены они в целом по принципу «всё своё ношу с собой», что сказывается на размерах. Когда их всего несколько штук в системе, а это зачастую самый простой способ получения актуальной версии программ, то всё удобно. Проблема доверия к источникам ПО остаётся, так как централизованных больших магазинов, для которых такие форматы идеальны, с проверкой и модерацией просто нет.
⇡#Аргумент 6: в Linux нет проблем с ПО
Тут часто вспоминают, что в репозиториях находится очень много ПО. Например, для Debian Buster официально предлагается чуть больше 89 тысяч пакетов. Однако из них 43 тысячи с хвостиком приходится на dev/src/dbg-пакеты и почти 6 тыс. относится к doc и data, то есть к сопутствующим для программ пакетам. Если грубо прикинуть, около половины всего списка пакетов приходится на библиотеки. Потому что именно так принято разбивать необходимые для установки файлы, что бывает очень удобно.
Казалось бы, число огромное! Но это не имеет никакого значения, если нужной программы нет. Можно сколько угодно рассказывать о том, что под Linux существуют аналоги любого ПО, но это не так. И сколько угодно говорить, что GIMP даже лучше Photoshop, а LibreOffice почти как MS Office, но это тоже не так. Это разные программы, с разной функциональностью, с разным подходом к пользовательскому опыту. И это нормально! Но в силу всё той же малой доли, фрагментации и особенностей дистрибуции, десктопного ПО сравнительно немного, а кросс-платформенных программ ещё меньше.
Это может прозвучать странно, но наличие хороших эмуляторов и их постоянное развитие тоже говорит о слабости платформы. Если нет, как заявляется, проблем с софтом, то ведь и эмуляторы нужны только для запуска тех программ, разработчики которых принципиально не портируют свои детища или попросту уже не могут это делать. Эмуляция и уж тем более виртуализация только для запуска ПО на зрелой платформе в ежедневном применении на десктопе попросту не нужны.
К слову, разновидность первого аргумента про всеохватность тоже не играет роли. Да, корпорации и, допустим, в кинопроизводстве (его почему-то поминать очень любят) используют Linux. Но — смотри выше — за этим обычно стоит целый штат администраторов. С драйверами, кстати, крупные компании тоже далеко не всегда имеют проблемы, потому что при действительно массовых закупках оборудования у вендоров неожиданно могут найтись и программисты, и время, и желание.
Но обычный пользователь практически наверняка рано или поздно столкнётся с проблемными драйверами или их отсутствием. Совсем уж странно звучат аргументы, что, мол, на самом-то деле драйверы для Linux ещё и лучше сделаны, чем для других ОС, потому что используются в профессиональной среде.
⇡#Аргумент 7: Linux эффективнее работает с ресурсами
Это крайне спорное утверждение, особенно в случае десктопа. Очень многое зависит скорее от «кривости» программ, нежели от самого ядра. Но и оно не идеально. Давняя проблема работы при низком объёме свободной RAM периодически всплывает снова и снова. Так что мы, похоже, таки дождёмся момента, когда OOM-менеджеры будут ставить по умолчанию. Да что там, практически для любой подсистемы можно посмотреть патчи за последние пару-тройку лет, чтобы убедиться, что для ускорения почти всегда есть возможности.
И это в определённом смысле хорошо. Но часто ли средний пользователь десктопа, например, собирает под себя ядро? Или он в лучшем случае возьмёт готовое, да посвежее? На примере Clear Linux хорошо видно, насколько заметный прирост производительности и скорости можно получить при системном подходе к оптимизации ядра и ПО. Массовые дистрибутивы только-только начинают эксперименты хотя бы по оптимальной сборке имеющейся пакетной базы.
⇡#Аргумент 8: Linux удобен
Но только если конкретно вам удобен. Если смотреть в целом, то никаких гениальных интерфейсных решений, которые невозможно было бы получить в других ОС, в последние годы на десктопе нет. А вот раздражающих мелочей донельзя много. В 2020 году всё ещё можно нарваться на проблемы с настройкой переключения раскладки клавиатуры, на отсутствие аппаратного ускорения воспроизведения в браузере по умолчанию, на проблемы с гибернацией, на проблемы переключения между интегрированной и дискретной графикой, на ещё какие-нибудь проблемы… Можно долго перечислять.
Но… всем плевать. Почему? Потому что, как и говорилось в самом начале, разработчики и пользователи десктопного Linux всё сильнее отдаляются друг от друга. Первые зачастую свято уверены в том, что они лучше знают, что надо вторым, а вторые ничего толком с этим поделать не могут. В последние годы наблюдаются уже просто две крайности. GNOME последовательно и методично «упрощается», лишаясь не только ряда настроек, но и привычных концепций работы с окнами. KDE не менее последовательно возится с какими-то мелочами, подолгу игнорируя реальные проблемы. Альтернативные же решения попросту не обладают достаточным числом разработчиков для быстрого развития.
⇡#А что ты сделал для десктопа в свои годы?
В 2005 году проект GNOME поставил перед собой цель: достичь 10 % на рынке десктопов. Прошло 15 лет — и ничего не изменилось. Фрагментация, нежелание координировать усилия, NIH-синдром, всё большее удаление разработчиков от пользователей — это, получается, и есть та свобода, за которую стоило бороться? Почему так произошло? Потому что мир успел измениться. Причины всех бед скорее социальные, нежели технические.
Is that the spirit of @OpenSourceOrg ? @gnome banned me after I have criticized their UI. pic.twitter.com/5cinYlv1hB
— Ilya Korneychuk (@iKorneychuk) February 16, 2020
Кто в этом виноват? Мы! Linux — замечательная, универсальная, гибкая и мощная операционная система с, увы, уже не самым лучшим сообществом вокруг. Не надо говорить, как всё плохо в других ОС и как всё замечательно в Linux. Надо говорить, как всё обстоит на самом деле. Не нужно говорить «А у меня всё работает», лучше рассказать, как этого добиться. И не отправляя в сторону RTFM, а объясняя — это образование и самообразование. Не нужно мириться с ошибками, о них нужно сообщать.
Впрочем, вам, конечно, никто ничего не должен. И вы никому ничего не должны. Все свободны!