Повседневное использование.
Почтовый спам
Итак, мы получили базовые сведения об устройстве почтового клиента. Заметим, что существует также особый вид таких клиентов --- Web-клиенты. По сути дела, Web-клиент --- это почтовый клиент, перенесенный на сервер, доступ к которому осуществляется через Web (обычно --- по протоколу HTTPS). Использовать Web-клиент бывает удобно в случае, когда за трафик надо платить, а корреспонденции довольно много, причем возможности использовать протокол IMAP4 нет. Доступ с помощью POP3 в таких случаях доставляет значительное количество проблем, особенно в случае получения различного рода нежелательной корреспонденции, часто содержащей "тяжеловесные" вложения (attachments). Нежелательную корреспонденцию часто называют спамом (spam). Заметим, забегая вперед, что универсального способа отличить спам от обычного письма, тем не менее, не существует в принципе.
Существует "поверье", что использование Web-почты удобнее в отношении фильтрации спама. Действительно, как вообще опознается спамовое письмо? Обычно для этого достаточно посмотреть на автора и тему письма, то есть --- в заголовок почтового сообщения. Само письмо при этом скачивать в подавляющем большинстве случаев совершенно необязательно. Именно такую "ручную" фильтрацию удобно осуществлять с помощью Web-клиентов (в случае, отметим еще раз, невозможности использовать IMAP4).
Тем не менее, Web-ориентированные почтовые службы обычно предоставляют возможность "автоматической" фильтрации спама. Идеальных фильтров, разумеется, не существует, поэтому превентивная фильтрация (абонент получает не все письма, которые ему направляются) доставляет некоторые неудобства. Может возникнуть весьма неприятная ситуация, когда письмо, которое абонент хотел получить, по ошибке оседает на фильтре. Дело в том, что разные люди могут расценивать одни и те же письма как нужные или нежелательные. К примеру, приглашение на конференцию по сетевой безопасности может оказаться полезным для специалиста в соответствующей области, тогда как для фармацевта это будет совершенно ненужная корреспонденция. Напротив, интересная фармацевту информация о различных медикаментах окажется абсолютно бесполезной для специалиста-компьютерщика.
Итак, понятие спама в общем случае определить нельзя. Понятие спамера, однако, определяется весьма однозначно. По уровню активности и стилю поведения компьютера можно с высокой степенью точности определить, является ли он рассыльщиком спама или "честным" почтовым сервером. Выделим из списка критериев три. Компьютер разумно считать принадлежащим спамеру, если:
- на его деятельность поступали жалобы;
- он рассылает очень большое количество писем, в полях From и To у которых значатся абоненты различных доменов;
- активность данного компьютера нарушает общепринятые стандарты на почтовые рассылки.
Эти критерии весьма неплохо формализуются, и уже довольно давно существует практика составления "черных списков" --- перечней адресов "нехороших" компьютеров (при приеме почты разумно с этими списками сверяться). Отметим, что составлением черных списков часто занимаются специальные организации, некоторые из которых предоставляют доступ к этим спискам за деньги.
Как показывают наблюдения администраторов, подавляющее большинство спамовых писем (зачастую более 90 процентов) отсеивается при проверке адреса отправителя по черным спискам. В черный список, однако, может попасть человек, не являющийся спамером. Укажем наиболее вероятные причины подобных недоразумений:
- Занесение в черный список стало следствием активности зараженного вирусом компьютера. Это может произойти в случае использования ОС Windows, для которой существует огромное количество вредоносных программ, рассылающих спам без ведома владельца машины. Обнаружить присутствие подобного вируса можно по неоправданно высокой сетевой активности компьютера: рассылка спама часто приводит к мгновенному исчерпанию лимита сетевого трафика (в случае, если он оплачивается). Заметим, что большая часть машин, рассылающих спам, выглядит именно так, причем большинство вирусов для ОС Windows и являются рассыльщиками спама --- спам-агентами (spam-agent). Более того, многие вирусы объединяют зараженные компьютеры в крупномасштабные сети --- ботнеты (botnets), с целью быстрого проведения рассылки с различных адресов. Каждая из зараженных машин зачастую используется для отправки всего одного или двух писем.
- Вторая причина попадения в черный список --- наговор недруга по бизнесу. Этот вариант, впрочем, быстро определяется, а недруг-организатор легко опознается (такой инцидент обычно крайне негативно сказывается на его репутации, и не только на ней).
- Также причиной попадания в черный список может являться безалаберность системного администратора почтового сервера. Неправильно настроенный сервер может работать нестандартным образом или, что куда хуже, являться открытым узлом пересылки почты без авторизации. Серьезной проблемой здесь может оказаться отсутствие Reverse DNS пересыльщика. Не исключена и эксплуатация ошибок и дыр в веб-движках, обладающих возможностью отсылать почту. Одна из первых версий Web-сервера Apache 2 в режиме прокси умудрялась проксировать и 25-й порт, становясь при этом отличным пересыльщиком.
Отметим, однако, что при грамотном использовании черных списков и специализированных программ (к примеру, SpamAssasin) вероятность ложного срабатывания спам-фильтра можно довести до весьма низкой. Тем не менее, среди проходящих фильтр сообщений доля спама иногда достигает 70 процентов: большинство из них приходит от "свежих", еще не успевших попасть в черные списки спам-ботов. Задачу фильтрации этих сообщений можно возложить как на пользователя, так и на почтовый сервер. Провайдер может предоставлять услугу вычисления для писем так называемого "признака спамовости": чтобы определить, является ли почтовое сообщение нежелательным (спамом), используется целый набор разнообразных критериев, включающих анализ заголовка и, возможно, даже тела сообщения. Нежелательные с точки зрения анализатора сообщения помечаются специальным образом и/или кладутся в отдельный каталог на сервере.
Важно понимать, что функционирование Web-сервисов и обычных почтовых служб в этом отношении существенно различается. В известном сервисе Web-почты gmail.com (Google Mail) используется довольно мощный спам-фильтр, с совершенно неизвестным, впрочем, алгоритмом работы. При использовании Google Mail этот фильтр надо внимательно "обучать", отмечая при помощи специальных кнопок, какое письмо является спамом, а какое --- нет. В случае неаккуратной работы с фильтром он может с чистой совестью класть все почтовые рассылки в каталог Spam, что значительно затрудняет активное их использование. Что же касается обычной почты, то обычно для фильтрации спама используют два механизма. Первый из них функционирует следующим образом: сервер, если он считает, что письмо "подозрительно похоже" на спам, выставляет в заголовке специальный тег X-Spam-Flag, а клиентская программа на стороне пользователя сама решает, как с таким письмом применять. Второй механизм заключается в использовании встроенных в некоторые почтовые клиенты обучаемых спам-фильтров.
Дополнительные сведения для работы с почтой
Нельзя забывать, что отсылка почты происходит не непосредственно с локальной машины --- это потребовало бы слишком много ненужных настроек и прямого адреса в интернете --- а через некоторый почтовый сервер, зачастую находящийся у провайдера. В этой схеме всё просто, кроме того случая, когда компьютер часто транспортируют, подключая к сети то одного, то другого провайдера. Это может привести к неприятной ситуации, когда после каждого переезда придётся перенастраивать почтовый клиент на отправку писем. Эту проблему можно решить как минимум двумя способами, не меняя почтового клиента: использовать SMTP-авторизацию или оправлять почту, соединяясь с сервером по тем или иным образом защищённому каналу (SSL, SSH).
Но есть и принципиально другое решение, которое заключается в том, чтобы не использовать почтовый клиент вообще, а пользоваться Web-интерфейсом для отправки и приёма почты. На первый взгляд, Web-интерфейс похож на почтовый клиент с несколько ограниченной функциональностью. Существуют и более сложные Web-интерфейсы, но они зачастую написаны с использованием различных интерактивных Web-технологий и от этого достаточно странно работают.
Здесь мы видим SquirrelMail, один из наиболее популярных свободных Web-интерфейсов для почты.
Популярные почтовые Web-службы:
gmail.com --- бесплатная, лимит в 7 гигабайт, более того, одновременно с почтой Вы получаете аккаунт в различных других сервисах, предоставляемых Google, в том числе и учетную запись Jabber. В целом, Web-интерфейс устроен не совсем традиционно: он основывается на поиске. Очень мало рекламы, она текстовая и легко блокируется при помощи AdBlock. При этом можно использовать также обычный почтовый клиент для отправки и получения почты. Среди недостатков можно выделить большое число активных элементов, написанных на JavaScript, чем обусловлен довольно большой размер клиента, и потому на "медленных" компьютерах он работает не очень быстро.
- Яндекс.почта. Практически никакой рекламы, неплохой спам-фильтр, доступ к аккаунту на Яндексе, в который, в числе всего прочего, входит система обмена файлами Народ.Диск.
Скорее всего, если вы подключены через некоего провайдера, он предоставляет некоторые услуги, связанные с почтой. Немногие провайдеры предоставляют хорошие сервисы почты, часто существуют очень серьёзные ограничения на объёмы трафика и размер ящика, да и фильтрация спама оставляет желать лучшего. Более того, неизвестно, не коллапсирует ли этот провайдер вместе с почтовым ящиком в следующем году.
Коротко об общепринятых нормах вежливости в почтовой переписке (нетикет):
- Почтовая переписка, в первую очередь, --- это обмен текстовыми сообщениями с возможностью ответа на них. Да, можно пересылать файлы, можно использовать почтовый протокол для обмена информацией, не являющейся текстом, но необходимо иметь в виду, что это переписка: вы пишете текст, вам пишут текст в ответ. Соответственно, есть возможность ответить на текст, процитировать его, сделать ответы разной степени вложенности. Поэтому отправлять письмо с помощью текстового процессора или ещё чего-то, прямо для этого не предназначенного, довольно грубо и неуважительно, т.к. в таких случаях пересылается не текст, а файл, его содержащий. Текст рекомендуется набирается в почтовом клиенте.
- Если, отвечая на письмо, Вы хотите написать сразу нескольким людям, нужно нажать кнопку "Ответить всем". Это не каприз: письма могут сортироваться по дискуссиям, которые визуализируются в виде дерева ответов, и если Вы ничем не обозначили то, что Вы отвечаете на конкретное письмо, то Вы рубите это дерево. Если же Вы пишете письмо по другой теме, но тем же людям, наоборот, не надо нажимать "Ответить", необходимо писать новое письмо, скопировав адресатов. В этом случае будет начато новое дерево, в противном случае оно может затеряться в старом.
- Предпочтительнее использовать чистый текст. В очень многих случаях любой текст со сложным форматированием либо будет проигнорирован, либо будет неправильно воспринят, либо будет неправильно отображён. Да и совершенно непонятно, как его в таком случае цитировать.
- Не забывайте о том, что клиент должен быть правильно настроен и указывал правильную кодировку. Какая кодировка используется по умолчанию, не специфицировано. Раньше рекомендовалось использовать koi8, поскольку при конвертации в семибитную кодировку текст сохранял некоторую читабельность, но сейчас это не столь важно.
- Правильно оформляйте тему сообщения. Адресат может получать много писем в день и ему важно знать, о чем то или иное письмо, какова его важность. Если написано, что письмо от Пети, и ничего больше, то это явный кандидат в спам.
- Подписываться тоже хорошо.
- Соблюдайте нетикет.
Передача файлов. Мессенджеры. Удалённый доступ.
Передача файлов
Ограничение на размер пересылаемого по почте файла раньше составляло 2 мегабайта (если не меньше). В последнее время лимит вырос (в среднем до десяти мегабайт), но всё равно, с помощью электронной почты большие файлы передавать неудобно. Всё-таки почта изначально рассчитана на передачу небольших текстовых файлов, поэтому при передаче не-текстовых данных (а таких очень много --- почти все форматы изображения и видео имеют нетекстовый вид) происходит их преобразование в текст в некоторой кодировке (uuencode, base64), что довольно значительно увеличивает размер передаваемого сообщения и значительно увеличивает время передачи.
Есть некоторые более удобные и эффективные решения задачи передачи большого количества данных по сети:
- Организация собственного файлового сервера. Ввиду сложности этот вариант подходит не всем, хотя вполне возможен в рамках локальной сети, где нету проблемы получения уникального IP-адреса.
- Использование сетевых сервисов хранения файлов. Сравнительно недавно появился, но уже хорошо зарекомендовал себя Народ.диск (narod.yandex.ru). Другие варианты: ifolder.ru, depositfiles.com, rapidshare.com. Последний лучше не использовать, если общение с сервисом будет происходить из-за NAT (у сервиса ограничение на одно соединение с одного IP-адреса). Все службы по обмену файлов предлагают ввести так называемую капчу (английское CAPTCHA, Completely Automated Public Turing test to tell Computers and Humans Apart). Капча --- это способ для таких сайтов отличить машину от человека. Предлагается ввести некий изображённый на картинке текст. Некоторые сервисы предлагают этот текст прослушать в аудио.
- Пиринговые сети. Распространение файлов в оных отличается от привычного ftp или http: централизованной передачи данных в общем случае не происходит, они берутся по кускам у всех машин, которые сообщили о том, что у них эти данные есть. Соответственно, чем больше машин в сети обладают нужными данными, тем быстрее будет происходить скачивание. Из основного принципа функционирования пиринговых сетей вытекает некоторое правило вежливости --- после скачивания данных какое-то время оставить включённым клиент для сети, чтобы эти данные могли скачивать другие клиенты.
Мгновенные сообщения
Раньше, когда компьютеры были большими, а интернет только начинал быть похожим на интернет, по сути, единственным способом общения через сеть была электронная почта. Она не требует постоянного соединения, использует мало трафика, и хорошо выполняет свои функции. Но скорость и стабильность соединений по всему миру с тех пор увеличилась, и появилась идея так называемого мгновенного (английское instant) обмена сообщениями.
В общих чертах принцип действия такого рода программ таков: каждый из собеседников подключается к некоторому серверу при помощи некоторой клиентской программы. При обмене сообщениями сервер стремится сразу же их доставить. Переписка (задержка в получении электронной почты --- минуты) превращается в диалог в режиме реального времени (при стабильном соединении задержка меньше секунды).
За достаточно короткое время в 1990-е возникло множество проприетарных протоколов такого рода (например, ICQ, MSN). Работают они все совершенно одинаково, и до определённого момента все существовавшие протоколы были проприетарными и требовали использования некоего проприетарного клиента от провайдера услуг.
Но ситуация изменилась с появлением протокола Jabber.
Jabber
Jabber (формально, протокол называется XMPP) изначально разрабатывался как полностью открытый протокол. То есть нету никакой корпорации или единоличного владельца, контролирующего все изменения и содержащего сервер, и все спецификации находятся в открытом доступе.
Достоинствами данного протокола можно считать:
- Распределенность, т. е. независимость от одного конкретного сервера
- Лёгкость организации собственного сервера (может быть очень удобно в пределах локальной сети)
- XMPP поддерживает шифрование (SSL и TLS)
- Лёгкость расширения
- Возможность использования одной учётной записи одновременно несколькими клиентами и выбора какому клиенту отправляются сообщения при помощи ресурсов и приоритетов
- Выбираемый пользователем текстовый идентификатор, по формату напоминающий почтовый адрес (а не число, как это принято в некоторых других протоколах)
Также некоторые сервисы (почтовый Gmail, блоговый LiveJournal) при регистрации автоматически создают учётную запись Jabber на своём сервере, связанную с соответствующей основной учётной записью. В случае gmail интеграция почты и Jabber довольно велика — так, на почту могут приходить сообщения о неотвеченных сообщениях в Jabber. Подобная интеграция есть и у LiveJournal.
Попробуем зарегистрировать новую учётную запись в Jabber-е и настроить клиент мгновенных сообщений Kopete.
Kopete поддерживает множество протоколов, поэтому при первом запуске нам потребуется выбрать нужный:
Выберем Jabber:
Дальше требуется ввести данные об учётной записи:
Поскольку у нас еще нет учётной записи, нам потребуется зарегистрировать новую:
Регистрация достаточно проста: нам потребуется выбрать сервер (в данном случае мы используем jabber.ru), имя пользователя и пароль. Отдельно нужно отметить шифрование:
Предупреждение о самоподписанном сертификате в данном случае можно игнорировать:
Регистрация новой учётной записи успешно завершена:
Настройка учётной записи на этом также заканчивается:
Внешний вид программы достаточно типичен для мессенджеров:
Чтобы начать общаться, требуется добавить учётную запись предполагаемого собеседника в список контактов:
Впрочем, для начала требуется подключиться к серверу:
Теперь нужно ввести логин нужного нам человека. В данном случае мы добавим в список контактов свою учётную запись:
Все, можно начинать общение:
При получении нового сообщение появляется всплывающее окно с информацией:
А так выглядит собственно диалог:
В Легком Линуксе есть аналогичная программа, она называется pidgin и устроена схожим образом. Запустим ее из меню xfce:
Он также поддерживает несколько протоколов:
Используем уже созданную нами ранее учётную запись Jabber:
Настройка учётной записи закончена, однако в нашем контакт-листе нет ни одного собеседника:
Поэтому добавим нового:
Если всё сделано верно, то контакт появится в списке собеседников:
Можно начинать общение:
Удалённое управление
SSH
Наиболее правильный способ удалённого управления ОС Linux (да и вообще любой Unix-образной системой) --- это получение терминального доступа к машине с помощью протокола ssh, о котором говорилось в соответствующих лекциях. Если кратко, клиент называетс ssh, сервер --- sshd. В ПСПО по умолчанию сервер sshd выключен.
Обратите внимание: на этой картинке через ssh был получен терминал, и в нём видно, что он на удалённой машине. К сожалению, неопытные пользователи это не всегда правильно понимают, из-за чего подобный способ управления вряд ли стоит использоваться поначалу (без соответствующей подготовки). Если вызывать клиент с ключем -Y, то появится возможность запускать графические приложения, например, можно запустить xterm:
Для ОС Windows существует ряд свободных SSH-клиентов, позволяющее подключаться по SSH к другим компьютерам, например, PuTTY.
Общий рабочий стол
Можно организовывать не только новые терминальные сессии, но и подключаться к имеющейся поверхности Х-сервера. Для этого на удалённой машине должен быть запущен соответствующий сервис. Из соображений разумности и безопасности использовать удалённые системы логично только по обоюдной договорённости пользователей этих компьютеров, поскольку у подключившегося есть возможность получить управление мышью и клавиатурой. Это используется для того, чтобы человек мог проделать некоторую работу, например, объясняя, что делать на рабочем столе. Одному пользователю нужно уметь давать доступ к рабочему столу, а другому --- умение пользоваться клиентом.
В среде KDE (стандартная для Линукс Мастер) такой доступ организуется программами krfb и krdc.
Настройки krfb выглядят так:
Можно выдать разовое приглашение человеку на управление рабочим столом:
В принципе, каждый раз, когда кто-то хочет подсоединиться, он Вам посылает уведомление, которое вы можете принять или не принять. Поэтому в данном случае мы разрешим соединение без приглашений:
Таким образом, мы настроили принимающую сторону, теперь можно попробовать подключиться к этому компьютеру. Делается это с помощью другой программы --- krdc:
Здесь от нас требуется всего лишь ввести адрес (или имя) компьютера, к которому мы хотим подключиться:
Дополнительно можно изменить настройки соединения --- это влияет на качество картинки:
При подключении на компьютере, с которым мы соединяемся, появится уведомление о входящем соединении:
Обратите внимание, что можно запретить удалённому пользователю управлять мышью и клавиатурой --- в таком случае он сможет только наблюдать за вашими действиями. После разрешения соединения появится уведомление об успешном подключении:
На компьютере, с которого выполнено подключение, оно выглядит так:
При желании можно также развернуть его в полный экран:
Организация доступа к рабочему столу отнюдь не ограничена двумя встроенными в KDE утилитами. Есть куда более мощные и универсальные vncserver и vncviewer. На одной запускается x11vnc, который будет передавать все данные с рабочего стола по сети, на другой --- vncviewer с адресом машины с запущенным x11vnc в качестве параметра. У сервера есть широковещательный режим, когда несколько человек могут подключиться к одному серверу и наблюдать происходящее. Различные интересные настройки описаны в документации. Чтобы разрешить наблюдение (но не управление) нескольким пользователям, сервер должен быть запущен с параметрами -shared -viewonly -forever.
Демифологизация
Демофилогизация --- не совсем точный термин. Так как в данном курсе не рассматриваются все детали, начиная с физических основ, то наличие в любом случае мифов неизбежно. Эта часть материала ориентирована на людей, освоивших Windows, возможно, прошедших курс повышения квалификации с использованием Windows, но не слушавших курсов по информационным технологиям. Основная цель заключается в том, чтобы убедить пользователя не применять бездумно при использовании ПСПО опыт, полученный при работе с Windows, отделить те представления, которые с точки зрения ПСПО являются верными, от ошибочных.
Вот некоторые распространенные заблуждения:
- Компьютер = ОС
- ПО = ОС
- GUI = ОС
- Иконки = файлы, программы; окна = программы
- Документы = их обработчики
- Мифологизация вирусной угрозы
- Необходимость постоянной "оптимизации" системы (дефрагментация, оптимизация реестра)
- Задача должна решаться специальной программой под задачу. Новая задача --- новая программа (взаимооднозначное соответствие множеств задач и программ)
- Документацию читать не надо, всё равно там ничего нет.
- Большая часть ПО --- контрафактное ПО
- ПО плохо работает потому, что оно краденое
В этом списке можно выделить две группы мифов различной природы:
- Мутные сущности, легенды о которых возникают в связи с тем, что в Windows эти вещи непрозрачны --- напрмер, типы файлов, "оптимизаторы", firewall;
- Чёткие вещи, определения которых различаются в Windows и ПСПО. Легенды в таком случае возникают от того, что пользователю знаком лишь "путь Windows".
Рассмотрим подробнее эти и некоторые другие мифы.
В качестве вступления разоблачим утверждение "пользователи Windows тупые, пользователи Linux крутые". Это неправда. Неверно и утверждение "пользователи Linux грамотные, а пользователи Windows - нет". Некоторая корреляция имеется, и у неё есть свои предпосылки. Например, до последнего времени, UNIX-подобные системы были вотчиной сильно увлеченных компьютером людей. Нет ничего удивительного в том, что люди, пользующиеся Linux, в большинстве своем занимаются изучением компьютера. Миф же порождён основным отличием между Linux и Windows: в Linux живы традиции UNIX, структура самой операционной системы, как и структура информационного пространства ориентирована на изучение; Windows, в силу его несвободной природы, явно препятствует изучению и познаванию на системном уровне, ставя труднопреодолимый барьер между пользователем и разработчиком.
Компьютер = ОС
Если человек не отделяет аппаратной части компьютера от программной, это означает, что он вообще незнаком с отраслью. Такой человек научился работать с программами, но не приобрел системных знаний. Это не столько миф, сколько недостаток знаний. В таком случае рекомендуется пройти курсы компьютерной грамотности на основе Linux.
Миф о Документации
Большинство документации к прикладным программам, устроенным по принципу "одна задача --- одна программа", предназначено не для того, чтобы пользователь получил информацию о том, как пользоваться программой, а для того чтобы сподвигнуть его сделать хоть что-нибудь. Например, там поясняются тривиальные значения пунктов меню, часто в повелительном наклонении: "Для того, чтобы переименовать файл, выберите пункт меню Файл -> Переименовать", и т. п. Эта документация ориентирована на преодоление компьютерной боязни. Поскольку авторы таких программ делают упор на интуитивную понятность, то их главной задачей становится уверение пользователя в том, что он поступает правильно. Очень показательны т. н. "помощники" -- привлекающие внимание пользователя виртуальные персонажи, основная задача которых -- подсказывать ему дальнейшие действия. Подобный подход плохо применим и к Linux как ОС, и к подавляющему большинству программного обеспечения под Linux.
В Linux даже в аналогичную документацию вкладывается информация, достаточная для изучения. Основная документация ОС также направлена на получение знаний. Это серьезное отличие. Оно ярко выражается, например, таким образом: в сообществе Linux не принято задавать вопросы, ответы на которые можно найти в документации; пользователи Windows же предпочитают подход наподобие "я не буду читать документацию, просто скажите, как решить эту конкретную задачу".
ПО = ОС
Убеждение в том, что всё, что работает на компьютере, является Windows возникает, если пользователь ни разу не устанавливал программное обеспечение. Если человек полностью переставляет систему, то он впадает в другую крайность --- начинает считать, что в ОС вообще ничего нет, для решения любой задачи надо искать специальные прикладные программы.
В Linux, с одной стороны, существует возможность продемонстрировать разделение ОС и приложений и показать, что ОС сама по себе очень небольшая. Но, с другой стороны, так как устанавливается дистрибутив, с его помощью можно сразу решать достаточно много задач, да и установка дополнительных приложений не представляет сложности для пользователя.
GUI = OS
С точки зрения Windows это отчасти правда. В Windows интерфейсом управления системой является либо ABI (Application Binary Interface), либо приложения основанные на ABI, но имеющие графический интерфейс. В Linux много различных средств управления системой, как, впрочем, возможностей общения с системой, и этот факт помогает пользователю понять, что ОС --- гибкое понятие.
Задача = программа
Миф состоит в убеждении, что если для задачи нет специальной программы с красивым графическим интерфейсом, то решить задачу невозможно. У этой проблемы есть две стороны.
Во-первых, привязанность к конкретному графическому интерфейсу. Например, человек использует Photoshop, и настолько привыкает, что малейшее изменение интерфейса, даже не в ущерб функциональности, переносит болезненно. При этом привыкание зачастую вызывают первые купленные, выбранные из соображений популярности, а не качества, продукты. В Linux для решения задач существует много методов, и еще больше их реализаций, с разнообразными интерфейсами. Например, пользователь Photoshop спрашивает "а есть у вас в GIMP групповые операции?". Правильным ответом будет: "для подобной задачи есть ImageMagick".
Во-вторых, убежденность в том, что если для задачи нет специального приложения, то задача неразрешима. Пользователь Linux привыкает использовать суперпозиции инструментов. Windows-пользователи, обычно, ею не пользуются, в Linux же это весьма распространенный подход. Суперпозиция --- это мощный инструмент, которым не стоит пренебрегать.
Иконки = файлы, программы. Окна = программы
Суть этого заблуждения в том, что неопытный человек не отделяет графическую среду от операционной системы. При использовании Linux, в котором существуют различные графические среды, это заблуждение быстро развеивается. Организация рабочего стола в Windows провоцирует распространенную ошибку отождествление объекта, которым можно манипулировать на рабочем столе и программы/файла, к которым можно получить доступ через этот объект. Для развенчания мифа можно, например, создать файл в каталоге ~/Desktop, продемонстрировав, что он появился на рабочем столе. Полезно изучить содержимое .desktop-файла.
Отождествление окон и программ выявляет недостаток знаний о теории вычислительных систем --- процессах, межпроцессном взаимодействии. Для прояснения ситуации можно поэкспериментировать с процессами, сигналами, и т. п.
Слияние файлов и их обработчиков
Обычно означает недостаток опыта у пользователя. Даже в Windows пользователь достаточно быстро осознает, что файл --- это одно, его обработчик --- это другое, обработчики можно менять, и всё это сильно зависит от такой не очень понятной вещи, как тип файла. Причина возникновения мифа в том, что Windows определяет тип файла по расширению файла (символы после последней точки в имени), и по умолчанию не показывает расширение у известных системе типов файлов. В Linux расширения обычно показываются (да и вообще не имеют смысла, ибо определение типа файла происходит по-другому --- а именно, по начальным байтам файла, см. man file), отсутствует строгая типизация, естественно, в графической среде настраиваются ассоциации типов файлов и обрабатывающих их приложений. Для развенчания мифа можно показать редактор ассоциаций KDE, продемонстрировать работу утилиты file. Фактически, следует доходчиво объяснить, что такое ассоциирование.
Демифологизация: продолжение
Контрафактное ПО
Для прояснения этого мифа рекомендуется рассмотреть свободное и несвободное ПО (см. первую лекцию школы), при этом, возможно, имеет смысл обратить внимание на свободное программное обеспечение в качестве основного примера. Основные легенды:
- Ни одну программу копировать нельзя. Это неправда, всё зависит от условий распространения. Даже некоторые несвободные программы можно копировать.
- Программное обеспечение работает плохо потому, что оно контрафактное. В подавляющем большинстве случаев контрафактное ПО отличается от лицензионного лишь формально, сообразно тому, каким образом получен "регистрационный код" (или что-то аналогичное) -- путём оплаты или незаконным (не предусмотренным авторами) путём.
- Так как свободное программное обеспечение бесплатно, то оно производится неквалифицированными энтузиастами, и как следствие, ничего не готово к использованию прямо сейчас. В этом случае надо показать процесс разработки, надо сказать, что действительно есть много незаконченных проектов, но, если судить по качеству, готовности и так далее, ситуация схожа с ситуацией с несвободным программным обеспечением, просто модель распространения и использования --- другая.
Обновление системы
Существуют два мнения:
- Операционную систему Windows не надо обновлять, поскольку это может нарушить её работоспособность. В это есть смысл, так как установлено много сторонних программ, и они могут пострадать в результате обновления всей системы.
- Система без обновления обязательно имеет проблемы с безопасностью. Это не легенда, а правда. В случае с GNU/Linux критических дыр очень мало, одна в несколько лет, и хороший дистрибутив обновляется через несколько часов после появления такой ошибки.
Установка и обновление программ
Если Вы устанавливаете программу в дистрибутив или хотите обновить уже установленную программу, всё зависит от того, что это за более новая программа. Если это критические обновления, то они наверняка будут в updates. Причем эта программа будет совместима с предыдущей версией. Если же ставится версия, не проверенная на совместимость с предыдущей, то это вина того, кто ее установил. В случае, если Вы берёте новый непроверенный пакет из хранилища, лучше брать src.rpm и собирать его в своём окружении. Если это удалось, значит, всё хорошо, если не собрался, то правильно сделали, что не ставили.
- Эшелонирование источников ПО ОС Linux:
- Дистрибутив, в нём достаточно много программ, чтобы не приходилось идти дальше.
- Репозиторий, там есть ещё больше программ.
- Интернет (стороннее ПО). Это уже более рискованно, даже более рискованно, чем установка проверенного ПО в ОС Windows, кроме случая, когда программа собиралась для той ОС той версии, которую вы используете.
Вирусы
О вирусах существует насколько мифов:
- В 2000х годах в рамках рекламы ОС Windows и, соответственно, антирекламы ОС Linux Microsoft, стараясь завоевать серверный рынок, утверждали, что ОС Linux разные, а ОС Windows всегда одинаковый. Это действительно так, и одним из следствий этого является то, что программа, эксплуатирующая одну уязвимость некоего программного продукта в одном дистрибутиве, скорее всего, не будет работать в другом дистрибутиве или даже в том же дистрибутиве через несколько недель или даже дней.
- Обычный пользователь в ОС Linux выполняет всего две операции над всей системой с правами администратора: установка ПО и некоторые редактирования конфигурационных файлов. Таким образом, помимо Вашей воли нарушить работу системы нельзя никак. Если каким-то образом случится так, что проэксплуатируется ещё не закрытая уязвимость в какой-то программе и будет запущен вредоносный код, то он скорее всего не сможет сделать ничего плохого с системой, потому что каждый демон, отвечающий за некоторый сервис, запускается от лица специального пользователя, сильно поражённого в правах. А если он запускается с правами суперпользователя, то в изолированном окружении.
- Вы скачали и установили ПО, содержащее зловредный код. В каком случае это может быть? В дистрибутиве Linux обычно включено огромное число заведомо "чистых" программных продуктов; в хранилище их ещё больше. Скорее всего, у вас задача, решения которой нет в хранилище, но есть некий неизвестный производитель программ, который выпускает нужный продукт. Для начала, стоит проанализировать задачу --- зачастую её можно будет решить при помощи находящегося в репозитории программного обеспечения. Если же программа стороннего производителя настолько уникальна, что без неё обойтись никак нельзя, можно, тем не менее, предпринять некоторые шаги по сохранению безопастности системы. Как-то, запускать программу в изолированном окружении, запускать программу от лица специального поражённого в правах пользователя, если это Windows-программа --- настроить окружение wine таким образом, что эта программа не сможет навредить нигде, кроме заданного каталога.
- Не последнюю роль играет также и то, что ОС Linux - нераспространенная и трудновзламываемая ОС. То, что называют "взломами" для ОС Linux, в большинстве случаев есть уязвимости в некотором программном обеспечении. И если эти уязвимости представляют серьёзную угрозу безопасности, то они будут устранены весьма быстро --- иногда, в течение нескольких часов.
Тем не менее антивирус для ОС Linux есть --- это ClamAV и графические оболочки к нему (например, KlamAV для KDE). Под ОС Linux есть и Антивирус Касперского, и Dr. Web, однако они не всегда корректно работают: это несвободные программные продукты, а у авторов нет возможности адаптировать свои программы для всех дистрибутивов Linux каждый раз, как они обновляются. Назначение антивируса а Linux -- проверять почту и файлы при передаче их пользователям Windows.
На сегодня главное достоинство антивируса -- это не количество знакомых ему вирусов, а оперативность обновления базы данных, по которым определяются новые вирусы. Чем раньше новый вирус станет известен, тем больше шансов не "пропустить" вирусную атаку. ClamAV здесь показывает неплохие результаты, находясь, по некоторым сведениям, в тройке лучших по оперативности добавления информации о новых вирусах. Следует заметить, что ClamAV -- это сканер, он определяет факт заражённости файла, но не "лечит" его. Впрочем, подавляющее большинство современных вредоносных программ -- "червей", "ботов" и т. п. -- не заражают файлы, так что для того, чтобы от них избавиться, их надо удалить.
Firewall
Существует убеждение, что в системе должна быть сущность под названием Firewall, которая постоянно задает вопросы вроде "А хотите ли Вы, чтобы к вам присоединились?" или "А хотите ли Вы, чтобы какая-то программа куда-то присоединилась?". Откуда такое представление? Во-первых, человеку абсолютно бесполезно объяснять, что такое стэк протоколов TCP/IP, во-вторых, в ОС Windows много входящих портов и служб, в которых есть проблемы с безопасностью, оставлены открытыми, и в этой ОС необходимость наличия такой сущности очевидна. С другой стороны, это связано с предыдущим пунктом --- существует масса ПО вирусного типа, которое устанавливается без санкции пользователя, и делает нечто незаметное. И Firewall играет роль некого сторожа, который это отслеживает, и, если что-то кажется ему подозрительным, он требует разрешения пользователя на это действие.
Программы подобного класса в ОС Linux есть, например, Suse personal firewall. Но необходимость подобного ПО очень и очень сомнительна, так как нет необходимости контролировать входящие и исходящие подключения --- по умолчанию нет ни одной службы, которой можно подключиться снаружи. И если администратор что-то открыл, то он что-то открыл, сознавая это, и это его дело. Используется же firewall, который с точки зрения системы выглядит иначе: это таблица правил, указывающая, каким образом поступать с какими пакетами в различных сетевых соединениях на различных уровнях сетевого взаимодействия. В ОС Linux таким firewall-ом является iptables.
Оптимизация
Наличие оптимизаторов --- явный признак того, что систему можно привести в состояние, требующее оптимизации.
- Оптимизация системы.
- В ОС Linux существует только одна возможность заполнить ненужными пакетами систему: если устанавливаемая программа зависит от других программ, то они не будут автоматически удалены при удалении самой программы. Таким образом, единственный способ внести некоторый беспорядок в систему --- постоянно что-то ставить и удалять, после чего останется некоторое число пакетов, которые не используются. Но их вполне можно найти и удалить штатными средствами.
- Что же касается ОС Windows, то в ней практически невозможно составить гармоничный список того ПО, которое ставится на компьютер. Это усугубляется реестром, который является базой данных, содержащей информацию обо всех настройках системы. Реестр практически не документирован и слишком велик, чтобы держать все настройки в голове. Он очень часто приходит в замусоренное состояние и крайне неудобен в использовании человеком. В ОС Linux есть каталог /etc, в котором хранятся конфигурационные файлы. Конфигурационные файлы принадлежат пакету, при удалении установленного пакета они либо удаляются, либо откладываются с другим именем. Таким образом, невозможно перепутать действующий конфигурационный файл с отложенным.
- Оптимизация диска.
- Файловые системы в ПСПО (ext3) устроены так, что оптимизация им не требуется. Платится за это порогом оптимизации --- 10% - т.е. они всегда неоптимальны, но не более, чем на 10%. Она устроена следующим образом: файл расположен в пределах одной группы цилиндров (цилиндр --- это элемент диска на уровне более низком, чем файловая система), внутри которой дефрагментация не требуется (фрагментация просто-напросто отсутствует). Когда система пишет файл на диск, она пытается записать его так, чтобы он попал в одну группу цилиндров. Если файл не влезает в группу цилиндров, это значит, что просто не хватает места, и она записывает остаток файла в другие группы, по возможности соседние. Если же удалить часть файлов и поработать с остальными, то фрагментация, точнее, её отсутствие, восстановится. Кроме того, небольшая часть диска всегда свободна - её может заполнить только root.
Администратор
Во всех POSIX-системах, в частности, ОС Linux, в частности, ПСПО, есть 2 категории пользователей. В первой --- root (не администратор, как в ОС Windows), во второй -- все остальные. На суперпользователя (root-а) не распространяются никакие ограничения по правам доступа (но при включении неких дополнительных мер безопасности это может быть и не так). В результате, он имеет права на запись к большинству файлов в файловой системе. У пользователя есть доступ только к домашнему каталогу. ОС Linux организована так, что пользователю не нужно никуда, кроме как в это каталог, что-либо записывать. Работа с ПО происходит от лица обычного пользователя всегда, даже если это служба. Обычному пользователю не рекомендуется выполнять действия от лица суперпользователя, не зная, к чему они приводят. От лица root-а запускается две операции: настройка сети, графики, системных служб и установка/удаление программ (Alterator и Synaptic). Но и то, и другое происходит не в результате работы самой программы с правами суперпользователя сразу, а запуском специальных программ, которые эти права получают. При попытке запустить графическое окружение от лица суперпользователя будет показано предупреждение.
Отдельно надо упомянуть об администраторах служб: администратор принтерного сервера, БД и прочее. Для этого зачастую не нужно получать права суперпользователя, всего лишь состоять в особой группе, а даже если нужно, то всё сводится к изменению конфигурационных файлов или запуска специальных приложений, что можно эффективно ограничить (например, при помощи программы sudo).
Не следует путать root-а и администратора Windows. Администратор с точки зрения ОС Linux это не регистрационное имя, а человек. Он работает большую часть времени с правами обычного пользователя и изредка совершает некоторые действия от лица суперпользователя (собственно говоря, он вообще имеет возможность их совершать), и обычно эти действия связаны с настройкой системных служб.