|
||||||||||||
Пользователи системыМежду включением питания компьютера и моментом, когда система готова к работе
с пользователем, происходит процедура загрузки системы. В
процессе загрузки будет запущена основная управляющая программа
(ядро), определено и инициализировано имеющееся оборудование,
активизированы сетевые соединения, запущены системные службы. В Linux во время
загрузки на экран выводятся диагностические сообщения о происходящих событиях, и
если всё в порядке и не возникло никаких ошибок, загрузка завершится выводом на
экран приглашения « Многопользовательская модель разграничения доступаПроцедура регистрации в системе обязательна для Linux, работать в системе, не зарегистрировавшись под тем или иным именем пользователя, просто невозможно1. Для каждого пользователя определена сфера его полномочий в системе: программы, которые он может запускать, файлы, которые он имеет право просматривать, изменять, удалять. При попытке сделать что-то, выходящее за рамки полномочий, пользователь получит сообщение об ошибке. Такая строгость может показаться необязательной, если пользователи компьютера доверяют друг другу, и особенно если у компьютера только один пользователь. Такая ситуация очень распространена на сегодняшний день, когда слово «компьютер» означает в первую очередь «персональный компьютер». Однако персональный компьютер — довольно-таки позднее явление в мире вычислительной техники, получившее широкое распространение только в последние два десятилетия. Несколько раньше «компьютер» ассоциировался с огромным и дорогостоящим (занимавшем целые залы) вычислительным центром, предназначенным в первую очередь для решения разного рода научных задач. Машинное время такого центра стоит очень недёшево, и при этом его возможности необходимы одновременно многим сотрудникам, которые могут ничего не знать о работе друг друга. Требуется следить за тем, чтобы не произошло случайного вмешательства пользователей в чужую работу и повреждения чужих данных (файлов), выделять каждому машинное время (по возможности избежав простаивания), пространство на диске и при этом не допустить узурпирования всех ресурсов одним пользователем и его задачей, а равномерно делить ресурсы между всеми. Для такой системы принципиально важно знать, кому принадлежат задачи и файлы, поэтому и возникла необходимость выдавать доступ к ресурсам системы только после того, как пользователь зарегистрируется в системе под тем или иным именем. Такая модель была реализована в многопользовательской операционной системе UNIX. Именно от неё Linux — также многопользовательская система — унаследовал принципы работы с пользователями. Но это не просто дань традиции или стремление к универсальности: многопользовательская модель позволяет решить ряд задач, весьма актуальных и для современных персональных компьютеров, и для серверов, работающих в локальных и глобальных сетях, и вообще в любых системах, одновременно выполняющих разные задачи, отвечают за которые разные люди. Компьютер — это всего лишь инструмент для решения разного рода прикладных задач: от набора и распечатывания текста до вычислений. Сложность состоит в том, что для изменения этого инструмента и для работы с его помощью используются одни и те же операции: изменение файлов, выполнение программ. Получается, что, если не соблюдать осторожности, побочным результатом работы может стать выход из строя самой системы. Поэтому первоочередная задача для систем любого масштаба — разделять повседневную работу и изменение самой системы. В многопользовательской модели эта задача решается очень просто: разделяются обычные пользователи и администратор (ы). В полномочия обычного пользователя входит все необходимое для выполнения прикладных задач, попросту говоря, для работы, однако ему запрещено выполнение действий, изменяющих саму систему. Таким образом можно избежать повреждения системы в результате ошибки пользователя (нажал не ту кнопку) или ошибки в программе, или даже по злому умыслу (например, вредительской программой-вирусом). Полномочия администратора обычно не ограничены. Для персонального компьютера, с которым работают несколько человек, довольно важно обеспечить каждому независимую рабочую среду. Это снижает вероятность случайного повреждения чужих данных, а также позволяет каждому пользователю настроить внешний вид рабочей среды по своему вкусу и, например, сохранить расположение открытых окон между сеансами работы. Эта задача очевидным образом решается в многопользовательской модели: организуется домашний каталог, где хранятся данные пользователя, настройки внешнего вида и поведения его системы и т. п., доступ остальных пользователей к этому каталогу ограничивается. Если компьютер подключён к глобальной или локальной сети, то вполне вероятно, что какую-то часть хранящихся на нем ресурсов имеет смысл сделать публичной и доступной по сети. Напротив, часть данных, скорее всего, делать публичными не следует (например, личную переписку). Ограничив публичный доступ пользователей к персональным данным друг друга, мы решим и эту задачу. Именно благодаря гибкости многопользовательской модели разграничения доступа она используется сегодня не только на серверах, но и на домашних персональных компьютерах. В самом простом варианте — для персонального компьютера, на котором работает только один человек — эта модель сводится к двум пользователям: обычному пользователю для повседневной работы и администратору — для настройки, обновления, дополнения системы и исправления неполадок. Но даже в таком сокращённом варианте это даёт целый ряд названных выше преимуществ. Учётные записиКонечно, система может быть «знакома» с человеком только в переносном смысле: в ней должна храниться запись о пользователе с таким именем и о связанной с ним системной информации — учётная запись. Английский эквивалент термина учётная запись — account, «счёт». Именно с учётными записями, а не с самими пользователями, и работает система. В действительности, соотношение учётных записей и пользователей-людей в Linux обычно не является однозначным: несколько человек могут использовать одну учётную запись — система не может их различить. И в то же время в Linux имеются учётные записи для системных пользователей, от имени которых работают некоторые программы и которые не предназначены для работы людей.
Главное для человека в учётной записи — её название, входное имя
пользователя. Именно о нём спрашивает система, выводя приглашение
«
Идентификатор пользователяLinux связывает входное имя c идентификатором
пользователя в системе — UID (User ID).
UID — это положительное целое число, по которому система и
отслеживает пользователей2. Обычно это число выбирается автоматически
при регистрации учётной записи, однако оно не может быть совершенно
произвольным. В Linux есть некоторые соглашения относительно того, каким типам
пользователей могут быть выданы идентификаторы из того или иного диапазона. В
частности, UID от «
Идентификатор группыКроме идентификационного номера пользователя с учётной записью связан идентификатор группы. Группы пользователей применяются для организации доступа нескольких пользователей к некоторым ресурсам. У группы, так же, как и у пользователя, есть имя и идентификационный номер — GID (Group ID). В Linux пользователь должен принадлежать как минимум к одной группе — группе по умолчанию. При создании учётной записи пользователя обычно создаётся и группа, имя которой совпадает с входным именем4, именно эта группа будет использоваться как группа по умолчанию для этого пользователя. Пользователь может входить более чем в одну группу, но в учётной записи указывается только номер группы по умолчанию. Полное имяПомимо входного имени в учётной записи содержится и полное имя (имя и фамилия) использующего данную учётную запись человека. Конечно, пользователь может указать что угодно в качестве своего имени и фамилии. Полное имя необходимо не столько системе, сколько людям — чтобы иметь возможность определить, кому принадлежит учётная запись. Домашний каталогФайлы всех пользователей в Linux хранятся раздельно, у каждого пользователя есть собственный домашний каталог, в котором он может хранить свои данные. Доступ других пользователей к домашнему каталогу пользователя может быть ограничен. Информация о домашнем каталоге обязательно должна присутствовать в учётной записи, потому что именно с него начинает работу пользователь, зарегистрировавшийся в системе. Командная оболочкаКаждому пользователю нужно предоставить способ взаимодействовать с системой:
передавать ей команды и получать её ответы. Для этой цели служит специальная
программа — командная оболочка (или интерпретатор
командной строки), она должна быть запущена для каждого пользователя,
зарегистрировавшегося в системе. Поскольку в Linux доступно несколько разных
командных оболочек, в учётной записи указано, какую из командных оболочек нужно
запустить для данного пользователя. Если специально не указывать командную
оболочку при создании учётной записи, она будет назначена по умолчанию,
вероятнее всего это будет
Понятие «администратор»В Linux есть ровно один пользователь, полномочия которого в системе
принципиально отличаются от полномочий остальных пользователей — это
пользователь с идентификатором « Именно Регистрация в системеВернёмся теперь к нашей загруженной операционной системе Linux, которая
по-прежнему ожидает ответа на своё приглашение «
Мы переключились в так называемый текстовый режим, в котором нам недоступны возможности графических интерфейсов: рисование окон произвольной формы и размера, поддержка миллионов цветов, отрисовка изображений. Все возможности текстового режима ограничены набором текстовых и псевдографических символов и несколькими десятками базовых цветов. Однако в Linux в текстовом режиме можно выполнять практически любые действия в системе (кроме тех, которые требуют непосредственного просмотра изображений). Текстовый режим в Linux — это полнофункциональный способ управления системой. В различных реализациях Linux работа в графическом режиме может выглядеть очень по-разному5, более того, графический режим может быть даже недоступен после установки системы без специальной настройки. Текстовый режим, напротив, доступен в любой реализации Linux и всегда выглядит практически одинаково. Именно поэтому все дальнейшие примеры и упражнения мы будем проделывать в текстовом режиме, возможностей которого будет достаточно для освоения всего излагаемого в курсе материала. Первая строка в примере — это просто приглашение, она носит информационный характер. Существует очень много различных реализаций Linux (существующие реализации будут обсуждаться в лекции Политика свободного лицензирования. История Linux: от ядра к дистрибутивам), и в каждом из них принят свой формат первой пригласительной строки, хотя почти наверняка там будет указано, с какой именно версией Linux Вы имеете дело, и, возможно, будут присутствовать ещё некоторые параметры. В наших примерах мы будем использовать условную реализацию Linux — «Some Linux». Вторая строка начинается с имени хоста — собственного
имени системы, установленной на данном компьютере. Это имя существенно в том
случае, если компьютер подключён к локальной или глобальной сети, если же он ни
с кем более не связан, это имя может быть любым. Обычно имя хоста определяется
уже при установке системы, однако в нашем случае этого сделано не было, и
используется вариант по умолчанию — « Теперь понятно, что в ответ на это приглашение мы должны ввести
входное имя, для которого есть соответствующая учётная
запись в системе. В правильно установленной операционной системе Linux
должна существовать как минимум одна учётная запись для обычного
пользователя. Во всех дальнейших примерах у нас будет участвовать
Мефодий Кашин, владелец учётной записи « Итак, Мефодий вводит своё входное имя в ответ на приглашение системы:
В ответ на это система запрашивает пароль. Пароль Мефодия
нам неизвестен, поскольку он его никому не говорит. Когда Мефодий вводил свой
пароль, на экране монитора он не отображался (это сделано, чтобы пароль нельзя
было подсмотреть), однако Мефодий точно знает, что не сделал опечатки. Тем не
менее система отказала ему в регистрации, выдав сообщение об ошибке
(«
В этот раз регистрация прошла успешно, о чём свидетельствует последняя строка
примера — приглашение командной строки. Приглашение —
это подсказка, выводимая командной оболочкой и
свидетельствующая о том, что система готова принимать команды пользователя.
Приглашение может быть оформлено по-разному, более того, пользователь может сам
управлять видом приглашения (подробнее это будет рассмотрено в лекции Возможности
командной оболочки), но почти наверняка в приглашении содержатся
входное имя и имя хоста — в нашем примере
это « Идентификация (authentication)Когда система выводит на экран приглашение командной строки после того, как правильно введены имя пользователя и пароль, это означает, что произошла идентификация пользователя (authentication, «проверка подлинности»). Пароль может показаться излишней сложностью, но у системы нет другого способа удостовериться, что за монитором находится именно тот человек, который имеет право на использование данной учётной записи. Конечно, процедура идентификации имеет очевидное значение для систем, к которым имеют непосредственный или сетевой доступ многие не связанные друг с другом пользователи. Процедура идентификации даёт уверенность, что к такой системе не получит доступ случайный человек, не имеющий права использовать её ресурсы и хранящуюся там информацию. Одновременно она даёт определённую гарантию безопасности от злонамеренного вмешательства: даже если навредить попытается пользователь, имеющий учётную запись, его действия будут зарегистрированы в системе (поскольку системе всегда известно, от имени какой учётной записи выполняются те или иные действия), и злоумышленника можно будет найти и остановить. Для тех пользователей, кому процедура идентификации кажется утомительной и
необязательной (например, единственным пользователям персональных компьютеров),
существует возможность получить доступ к системе, минуя процедуру идентификации.
Для этой цели служит программа
Учитывая все перечисленные минусы, можно заключить, что использовать
Смена пароляЕсли учётная запись была создана не самим пользователем, а администратором
многопользовательской системы (скажем, администратором компьютерного класса),
скорее всего был выбран тривиальный пароль с тем расчётом, что пользователь его
изменит при первом же входе в систему. Распространены тривиальные пароли
« Пользователь может в любой момент поменять свой пароль. Единственное, что
требуется для смены пароля — знать текущий пароль. Допустим, Мефодий
придумал более удачный пароль и решил его поменять. Он уже зарегистрирован в
системе, поэтому ему нужно только набрать в командной строке команду
Набрав в командной строке «
В данном случае операция не удалась, поскольку с точки зрения
Придирчивость, с которой Пароль пользователя Одновременный доступ к системеТо, что Linux — многопользовательская и многозадачная система, проявляется не только в разграничении прав доступа, но и в организации рабочего места. Каждый компьютер, на котором работает Linux, предоставляет возможность зарегистрироваться и получить доступ к системе одновременно нескольким пользователям. Даже если в распоряжении всех пользователей есть только один монитор и одна системная клавиатура, эта возможность небесполезна: одновременная регистрация в системе нескольких пользователей позволяет работать по очереди без необходимости каждый раз завершать все начатые задачи (закрывать все окна, прерывать исполнение всех программ) и затем возобновлять их. Более того, ничто не препятствует зарегистрироваться в системе несколько раз под одним и тем же входным именем. Таким образом, можно получить доступ к одним и тем же ресурсам (своим файлам) и организовать параллельную работу над несколькими задачами. Виртуальные консолиХарактерный для Linux способ организации параллельной работы пользователей — виртуальные консоли. Допустим, что Мефодий хочет зарегистрироваться в системе ещё раз, чтобы иметь возможность следить за выполнением двух программ одновременно. Он может сделать это, не покидая текстового режима: достаточно нажать комбинацию клавиш Alt+F2, и на экране появится новое приглашение к регистрации в системе.
Мефодий ввёл свой новый пароль и получил приглашение командной строки,
аналогичное тому, которое мы уже видели в предыдущих примерах. Нажав комбинацию
клавиш Alt+F1, Мефодий вернётся к только что покинутой им
командной строке, в которой он выполнял команду Наблюдательный Мефодий обратил внимание, что в последнем примере (tty2)
первая строка приглашения оканчивается словом «
methody ». На эту консоль выводятся
сообщения обо всех важных событиях в системе: регистрации пользователей,
выполнении действий от имени администратора (root ), подключении
устройств и подгрузке драйверов к ним и многое другое.
Пример двенадцатой виртуальной консоли показывает, что виртуальные
консоли — довольно гибкий механизм, поддерживаемый Linux, при помощи
которого можно решать разные задачи, а не только организацию одновременного
доступа к системе. Для того, чтобы на виртуальной консоли появилось приглашение
Графические консолиВпрочем, как ни широки возможности текстового режима, Linux ими не ограничен.
Подробно работа в графическом режиме будет разбираться в последующих лекциях
(см. лекцию Графический
интерфейс (X11)). Сейчас важно заметить, что если при загрузке системы
приглашение « Кроме того, что несколько пользователей (или несколько «копий» одного и того же пользователя) могут работать параллельно на разных виртуальных консолях, они могут параллельно зарегистрироваться и работать параллельно в разных графических средах. Обычно в стандартно настроенной Linux-системе можно организовать не менее трёх графических консолей, работающих одновременно. Переключаться между ними можно при помощи сочетаний клавиш Ctrl+Alt+F7–Ctrl+Alt+F9. Чтобы переключиться из графического режима в одну из текстовых виртуальных
консолей, достаточно нажать комбинацию клавиш Ctrl+Alt+FN,
где « Простейшие командыРабота в Linux при помощи командной строки напоминает диалог с системой: пользователь вводит команды (реплики), получая от системы ответные реплики, содержащие сведения о произведённых операциях, дополнительные вопросы к пользователю, сообщения об ошибках или просто молчаливое согласие выполнить следующую команду7. Простейшая команда в Linux состоит из одного «слова» — названия
программы, которую необходимо выполнить. Одну такую команду
(
Название этой команды происходит от английского выражения «Who am I?» («Кто
я?»). В ответ на эту команду система вывела только одно слово: «methody» и
завершила свою работу, о чём свидетельствует вновь появившееся
приглашение командной строки. Программа
Ещё одна программа, выдающая информацию о пользователях, работавших в системе
в последнее время —
В этом примере Мефодий неожиданно обнаружил кроме себя самого неизвестных ему
пользователей Выход из системыВ строках, выведенных программой Вход пользователя в систему означает, что нужно принимать и выполнять его команды и возвращать ему отчёты о выполненных действиях, например, предоставив ему интерфейс командной строки. Выход означает, что работа от имени данного пользователя завершена и более не следует принимать от него команды. Весь процесс взаимодействия пользователя с системой с момента регистрации до выхода называется сеансом работы. Причём если пользователь входит в систему несколько раз под одним и тем же именем, ему будут доступны несколько разных сеансов работы, не связанных между собой. В наших примерах Мефодий зарегистрирован в системе дважды: на первой и второй
виртуальных консолях. Чтобы завершить работу на любой из них, ему достаточно в
соответствующей командной строке набрать команду
В ответ на эту команду вместо очередного приглашения командной строки возобновляется приглашение к регистрации в системе. На данной виртуальной консоли работа с Мефодием завершена, и теперь здесь снова может зарегистрироваться любой пользователь. Есть и другой, ещё более «немногословный» способ сообщить системе, что
пользователь хочет завершить текущий сеанс работы. Нажав
Alt+F2 Мефодий попадёт на вторую виртуальную консоль, где
всё ещё открыт сеанс для пользователя « 1Вместо формального «зарегистрироваться в системе» обычно используют выражение «войти в систему». Операционная система представляется чем-то вроде замкнутого помещения, внутри которого можно оказаться, только успешно проникнув через «дверь» — пройдя процедуру регистрации. 2Это может оказаться важным, например, в такой ситуации: учётную запись пользователя с именем test удалили из системы, а потом добавили снова. Однако с точки зрения системы это уже другой пользователь, потому что у него другой UID. 3Обычно Linux выдаёт нормальным пользователям UID, начиная с
« 4Как правило, численное значение GID в этом случае совпадает со значением UID. 5Разнообразие графических интерфейсов Linux гораздо выше, чем, например, в Windows, поэтому составить учебный курс, не ориентируясь специально на ту или иную версию, просто невозможно. 6В разных дистрибутивах Linux используется разные версии
программы 7Реплики в таком диалоге строго чередуются, а собеседники не могут говорить одновременно — в естественном диалоге так никогда не происходит. Скорее это напоминает диалог в учебнике иностранного языка. Однако и в диалоге с Linux у собеседников есть возможность «перебить» друг друга — об этом речь пойдёт в последующих лекциях. 8В некоторых Linux-системах эта программа может называться
|
||||||||||||
Новости сайта Антивирус |
Дизайн: Alex