Рут умер, да здравствует рут!
АрхивКолонка ЗолотоваРазделение пользователей современных ОС на рядовых юзеров и администраторов, порождает все больше споров. Многие считают, что старая идея утратила смысл с популяризацией персоналок. Но безопасно ли работать от имени рута? И можно ли придумать что-нибудь более удобное?
Эволюция вычислительной техники стремительна: архитектуры и платформы, принципы и теории, несомые течением времени, редко когда остаются в центре потока надолго. Пять, семь, от силы десять лет - вот предельное время жизни удачной идеи, воплощённой в кремнии и машинном коде. Отсчёт декад напоминает здесь смену квантовых состояний, десять лет - и электронный мир меняется до неузнаваемости. Первые ЭВМ, первые мейнфреймы, первые десктопы, первые персоналки, Веб - каждый шаг это целая веха в истории. Впрочем, технические решения живущие подолгу всё же есть. Парадигма суперпользователя - один из примеров такого аномального долголетия. Вызванная к жизни многопользовательскими операционными системами, идея эта прошла почти неизменной через четыре десятилетия, и сегодня достигла переломной точки в своей карьере.
Суперпользователь, администратор, рут (root), барон, аватар - в разных системах этот обособленный отдельной категорией пользователь называется по-разному, но суть остаётся неизменной. Рут, применительно к операционной системе, наделён полномочиями божественного существа, абсолютной властью. На своей машине он хозяин и вправе делать всё, что ему заблагорассудится, начиная от манипуляций файлами и управления периферийными устройствами до наделения дополнительными правами прочих (рядовых) пользователей. Последние, по умолчанию, сильно в правах ущемлены, чаще всего в их власти только их же собственные каталоги. Изначально выделение суперпользователя преследовало цель эффективного управления системой (предоставления полной власти только специалисту, обладающему необходимыми знаниями), но за последние двадцать лет бума персоналок и глобальных коммуникаций, обрело новый смысловой оттенок. Неравномерное распределение привилегий якобы позволяет лучше защитить систему от атак злоумышленников всех сортов, внешних и внутренних. "Якобы" здесь совсем не случайное: чем дальше, тем больше появляется сомневающихся в справедливости и практичности этого утверждения. Давайте разберём аргументы обеих сторон.
Сравнительно более высокая защищённость от всевозможных неприятностей - вот первый и, пожалуй, главный аргумент тех, кто поддерживает идею разграничения полномочий. Пользователь, наделённый абсолютной властью над системой, способен - случайно, ошибившись - легко привести её в нерабочее состояние, возможно даже не оставив шанса на восстановление данных. Выполняя большинство операций от имени рядового юзера, такой опасности можно избежать; в данном случае всё, чем мы рискуем, это наш собственный каталог. Аналогично, подцепив какую-либо цифровую заразу (на просторах Сети или с компакт-диска), мы ставим под удар только безопасность наших собственных данных если работаем с правами рядового пользователя, и безопасность всех пользователей, а также работоспособность системы в целом, если работаем от имени администратора.
Противники разграничения полномочий отталкиваются от простого и не требующего доказательства постулата: деление пользователей на "генералов и рядовых" может быть и обосновано в случае больших компьютеров, на которых работают множество человек, но теряет смысл в самом массовом случае - случае персонального компьютера. В самом деле, владелец домашней персоналки - это и пользователь, и администратор в одном лице. Так стоит ли городить огород, усложняя жизнь самому себе? Самое дорогое, что только может быть для пользователя персоналки - его личные данные, и в случае собственной ошибки или проникновения извне он потеряет их даже работая без полномочий админа. В свою очередь вирусная инфекция может столь же успешно контролировать деятельность пользователя и эксплуатировать доступные ему ресурсы от его собственного имени, также без прав администратора. Так что и здесь повседневная работа в роли суперпользователя не таит каких-то недостатков. Пожалуй, единственное, чем грозит отсутствие разделения власти на персоналке, это уничтожением всей системы в гипотетическом случае проникновения на неё вируса, автоматически получающего все права.
Ряды сторонников разграничения исторически составляют пользователи UNIX-подобных систем, где упоминание имени рута всуе буквально считается неприличным. Ряды противников - пользователи Microsoft Windows, где рядовой юзер наделён почти абсолютной властью. Впрочем, и те, и другие по большей части восприняли идею под принуждением - в каждом случае им навязали свои взгляды в качестве единственно правильных идеологи или разработчики ОС. Но последние несколько лет принесли и качественно новое веяние: всё больше появляется таких пользователей, которые отказываются от соблюдения "иерархии" из собственных убеждений. Это касается прежде всего новых вариантов Linux, где всё чаще практикуется предоставление рядовому пользователю администраторских полномочий. Дистрибутив Linspire (бывший Lindows), ориентированный на домашнюю аудиторию, считается самым известным примером такого подхода: здесь создание многопользовательской среды возможно, но человека не принуждают к этому, позволяя в простейшем случае работать с правами рута. Той же дорогой идут и несколько других проектов, из числа которых стоит выделить Opie: графическую среду для портативных компьютеров, также не обременяющую пользователя заботой о разделении прав.
Параллельно с попытками полного "низвержения" суперпользователя, ведётся и работа по адаптации старой идеи к новым условиям. В некоторых современных UNIX-системах, таких как Ubuntu Linux и Mac OS X, реализована хитрая схема разграничения прав всего через один пароль. Здесь рядовой пользователь, войдя в систему, в правах привычно ограничен, но для выполнения действий, возможных только для администратора, ему достаточно (в ответ на особый запрос) ещё один раз ввести свой же пароль. Такой механизм облегчает жизнь домашним пользователям юниксов, избавляя их от необходимости помнить два разных пароля, и вместе с тем обеспечивает достаточный уровень защиты операционной системы от вирусных инфекций и взломщиков. По всей видимости, именно этот вариант и будет реализован в ближайшем будущем в большинстве многопользовательских ОС.