CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
29.06.2016

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Дистрибутивы :: BSD :: FreeBSD

Мир на трёх кашалотах мается
3. Пользователи

CITKIT.ru

Страницы: 1 :: 2 :: 3 :: 4 :: следующая

Содержание

...Только люди, к беде привычные,
На ковчеги — и весь потоп.
Песни глупые, неприличные,
Под гитарный поют синкоп.
Народное

Очередная преамбула

Третье, и последнее из краеугольных понятий FreeBSD — это понятие пользователя. Следует сразу подчеркнуть, что понятие пользователя системы отнюдь не совпадает с пользователем в физическом смысле слова. Круг пользователей даже индивидуальной настольной персоналки собой, любимым, не исчерпывается. Потому что в вашей машине под FreeBSD, даже если вы не делите ее с ближними (по дому или по работе), обязательно присутствует еще один пользователь — всемогущий root-оператор (именуемый в народе также администратором или суперпользователем). Правда, в условиях локального (особенно домашнего) десктопа в его роли, скорее всего, выступает ваша же персона.

Однако есть в системе и пользователи, никакой реальной личности не соответствующие. Но, тем не менее, способные выполнять в этой системе некоторые вполне реальные действия. Мистицизм такого явления отражен в общем их названии — демоны (daemon), о которых говорилось в главе о процессах. В которой было показано, в частности, и то, что на самом деле ничего мистического в них нет. Если же добавить, что существуют еще и т.н. псевдопользователи, типа почтовых или ftp-клиентов, то может показаться, что понятие пользователя утрачивает всякую определенность.

И потому принимаем волевое решение — считать пользователем любого, кто имеет учетную запись в соответствующей базе данных (нетрудно догадаться, что называется она незатейливо — базой данных пользователей). Без всякой дискриминации в отношении реальных пользователей, псевдопользователей или даже демонов. Почему и правильней говорить не о пользователях, а об их учетных записях или, по-заграничному, аккаунтах (account). Мы, будем использовать эти термины как синонимы, предпочитая личную форму — пользователь, когда речь пойдёт о реальных пользователях (пусть и совмещённых в одном лице), и обезличенную — аккаунт или учётная запись, если будет говориться о пользователях виртуальных.

Атрибуты учетной записи

Каждый пользователь имеет фиксированный набор закрепленных за ним атрибутов, собственно и составляющий содержание его учетной записи в базе данных. Каких? А давайте подумаем, какие атрибуты пользователю необходимы.

И тут самое время вспомнить, что даже на суперперсональной машине пользователей всегда больше одного. И, значит, система должна их как-то различать между собой. Как — да вполне по человечески, по именам. И потому первый атрибут пользователя — это его имя, именуемое также login. Именно предложение ввести свое пользовательское имя — это первое, что видит пользователь FreeBSD после ее загрузки.

Конечно, не нужно чересчур очеловечивать компьютер (говорят, что они этого не любят). И считать, что он волшебным образом опознает вас по имени, данному при рождении. Нет, имя пользователя — это просто некий набор любых (почти) символов. Конечно, и собственное имя в этом качестве использовать не возбраняется. Ведь единственное общее к нему требование — уникальность. Правда, в некоторых системах существует ограничение на длину login (иногда — не менее M и не более N символов). И обычно принято ограничиваться символами алфавитно-цифровыми. Хотя любителей использовать в именах спецсимволы на форумах тоже хватает.

Так что имя пользователя в системе — условно. Более того, для системы имя это абсолютно безразлично. Потому что опознает она пользователя на самом деле не по нему, а по поставленному ему в соответствие числовому идентификатору (UID — User IDentificator). Как правило, это — просто порядковый номер пользовательской учетной записи, причем для обычного пользователя — начиная с некоего минимального числа. Во FreeBSD обычный пользователь, первым зарегистрировавшийся в системе, получает по умолчанию UID, равный 1001: предыдущие номера зарезервированы за системными аккаунтами.

Важнейшим из системных аккаунтов, безусловно, является root. Именно он является хозяином большинства файлов и каталогов за пределами домашних каталогов пользователей. В то же время на него не распространяются никакие ограничения по доступу к файлам и каталогам, принадлежащим другим аккаунтам, как системным, так и пользовательским. За аккаунтом root всегда и везде, в любой Unix-подобной системе (не только во FreeBSD) бронируется идентификатор 0.

Забегая несколько вперёд, отметим ещё два важных системных аккаунта — daemon с идентификатором 1 и operator с идентификатором 2. Первый является хозяином многих системных процессов-демонов, второй же, как мы со временем увидим, имеет отношение к останову системы, выключению машины и её перезагрузке.

Возвращаясь к атрибутам учётной записи, стоит добавить, что и само имя пользователя не обязательно, достаточно, чтобы аккаунт имел уникальный числовой идентификатор. Соответствие же его какому-либо имени обеспечивается не самой системой, а одной из дополнительных (хотя и необходимых) программ (системной библиотекой libc).

Так почему же все-таки имя пользователя считается непременным атрибутом его аккаунта? Да потому, что лицо у FreeBSD — человеческое. И создатели системы прекрасно понимали, что запомнить имя alv для человека гораздо проще, чем некий числовой идентификатор. Вот ему, тому человеку, и пошли на встречу.

Итак, для вхождения пользователя в систему ему необходимо указать свое имя (login). Однако как система опознает, что пользователь имя_рек — именно тот, за кого себя выдает?

Очень просто: система, с бдительностью часового советских границ, запросит у пользователя подтверждения его личности. По аналогии с вопросом часового, легко догадаться, что подтверждение это именуется паролем (password). В качестве какового выступает опять же некая последовательность символов. И совсем не обязательно чисто алфавитно-цифровых — напротив, пущей секретности ради рекомендуется разбавлять их специальными символами, а литеры применять в смеси нижнего и верхнего регистра. Последовательность эту, теоретически рассуждая, никто, кроме пользователя, знать не может. Но которую пользователь должен затвердить, как "Отче наш". Этот пароль являет собой третий непременный атрибут пользователя.

В данном случае фраза "никто не может знать" понимается в буквальном смысле — даже всемогущий root в общем случае пользовательский пароль знать не должен и узнать обычными способами не в состоянии. Потому что пароль хранится в односторонне зашифрованном виде, и из его шифрованного представления вычислить вводимую последовательность символов нельзя (хотя можно подобрать — но это уже из области "грязного крэка").

Так вот, при входе пользователя в систему (название этого процесса — авторизация, регистрация, существует и еще несколько эвфемизмов) она (система) сначала, в ответ на ввод логина, проверяет, а зарегистрировано ли это имя (точнее, соответствующий ему числовой идентификатор) в базе данных ее пользователей. А затем, после ввода пароля — по той же базе данных определяет, соответствует ли этот пароль тому, который зафиксирован для данного пользователя. И в благоприятном случае — разрешает вход в сокровенные свои недра, иначе же — после некоторого промежутка времени предлагает повторить процедуру авторизации.

Длина пароля во FreeBSD по умолчанию не ограничена ни снизу, ни сверху (хотя с помощью соответствующих настроек такие ограничения можно и задать). Поэтому следует придерживаться просто здравого смысла — чем короче пароль, тем легче его подобрать злоумышленнику, чем длиннее — тем больше неудобств доставит он пользователю.

О правилах выбора пароля написано немеряно — в том числе и экспертами по компьютерной безопасности. Поэтому я не буду отвлекать читателя своими дилетантскими рассуждениями. Замечу только, что даже самый простой с точки зрения устойчивости к взлому пароль — на несколько порядков лучше, чем его полное отсутствие. В принципе во FreeBSD можно обойти необходимость ввода пароля и учредить беспарольный вход для любого пользователя (в том числе и для root'а). Однако делать это можно только на машине сугубо персонального назначения, не подключенной ни к какой сети вообще (в том числе и электрической). Да и то — не стоит, дабы не выработалась вредная привычка. Если же ввод пароля ну очень напрягает — есть несколько возможностей автоматизировать процесс регистрации, не погружаясь в болото беспарольного плюрализма.

А пока посмотрим, что же происходит после успешного завершения авторизации. Ясно, что пользователь входит в систему не для чего-то там нибудь, а дабы выполнить какие-то действия (немного поработать, например). А для этого ему требуется какая-то рабочая среда. И программа, таковую обеспечивающая, запускается системой после принятия логина и пароля. В подавляющем большинстве случаев такой программой будет так называемая командная оболочка, о чем подробно будет рассказываться в соответствующей главе. Пока же отметим только, что имя исполняемого файла этой командной оболочки (во FreeBSD чаще всего /bin/sh, /bin/csh или /bin/tcsh) и есть следующий атрибут пользовательского аккаунта.

Скорее всего, деятельность пользователя в системе включает в себя ввод и обработку каких-либо данных. Которые нужно куда-то записывать. Поскольку FreeBSD — система многопользовательская по своей сути, данные нашего пользователя не должны путаться с данными других таких же пользователей (и особенно администратора). Из чего следует, что после успешной авторизации наш пользователь должен получить некоторое место для записи своих данных, куда другие, без его дозволения, соваться не моги. И действительно, такое место, именуемое домашним каталогом пользователя — следующий атрибут учетной записи. Обычно это /home/username или /usr/home/username; вне зависимости от реального местонахождения домашнего каталога, он символически обозначается как ~/.

И последнее. Многопользовательская система предполагает не только защиту пользователей от зловредного влияния других пользователей, но и обмен данными между группой пользователей-товарищей. Которая так и называется — группой пользователей, или просто группой. И любой пользователь по умолчанию включается минимум в одну группу — свою собственную, может быть, не имеющую других членов. И имя этой группы, по умолчанию совпадающее с логином пользователя — еще один непременный атрибут его учетной записи.

Как и в случае с именем пользователя, имя группы — лишь одна из метафор, очеловечивающих поля пользовательского аккаунта. И потому в последнем фигурирует, собственно, не имя (например, users), а соответствующий ей численный идентификатор. Опять же аналогично идентификаторам пользователей, это обычно — порядковый номер вновь создаваемой группы. И начальной точкой отсчета выступает некое число. Во FreeBSD номера пользовательских групп начинаются опять-таки с 1001 — все, что меньше, резервируется для системных псевдопользователей. Мы ведь помним, что в отношении последних не допускается никакой дискриминации, и они тоже являются членами всяких разных групп, с которыми мы познакомимся чуть позже.

Я перечислил атрибуты учетной записи пользователя, которые устанавливаются практически всегда при создании нового аккаунта. В дополнение к ним существуют и иные атрибуты, которые мы рассмотрим в следующем разделе, после рассмотрения вопроса о том, каким образом пользователь может получить




Страницы: 1 :: 2 :: 3 :: 4 :: следующая

Комментарии

alikos, Sun Dec 7 02:39:04 2008:
Ну так и без недостатков и достоинства не так заметны :)
Алексей Федорчук, Wed Dec 3 10:10:09 2008:
2 sergej
продолжение следует
sergej, Wed Dec 3 08:53:33 2008:
Так как же синхронизировать passwd, master.passwd c pwd.db и spwd.db. А таже после ручной правки файла /etc/group изменения не вступают в силу.
Вадим, Wed Dec 3 05:12:17 2008:
Хм… А по-моему, что минусы в данном случае значительно превосходят плюсы.

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds