Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Операционная система FreeBSD. Освой самостоятельно.


Служба Рассылок Subscribe.Ru проекта Citycat.Ru
Здравствуйте

"Операционная система FreeBSD. Освой самостоятельно."

Выпуск 22 от 17.04.2001

Пользовательские бюджеты и группы

Пользователь (user), пользовательский бюджет (user account)

Все системы семейства Unix, соответственно и FreeBSD - системы многопользовательские.

Для нормальной и стабильной работы системы нужно:

Во-первых, разграничить права различных пользователей системы (пользователя часто называют - <юзер>, от английского слова user) - какие файлы они могут читать/писать/изменять, какие программы запускать и т.п.

Во-вторых, дать возможность каждому юзеру создавать свою <среду обитания> (environment - окружение) - иметь свои настройки для любимых программ, свои директории, настройки терминала и т.п.

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

(Естественно, все вышесказанное относится к любой многопользовательской системе, но в данном случае речь о Unix).

В Unix такая запись в соответствующей БД, содержащая сведения о юзере называется user account. Для того, чтобы допустить нового пользователя в систему, необходимо создать для него этот account.

Словосочетание в контексте Unix обычно переводится <пользовательский бюджет> или <личная учетная карточка пользователя>.

Какие данные хранятся в бюджете пользователя?

Прежде чем перечислить - какие поля есть в бюджете пользователя, хотелось бы обратить внимание вот на что.

Каждому юзеру присваивается уникальный номер (user ID), именно этот цифровой номер и используется внутри операционной системы при проверке прав доступа, сборе и хранении статистики и т.д. Однако оперировать все время номерами юзеров не удобно. Поэтому, каждому юзеру кроме номера присваивается еще уникальное имя (login name).

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

То есть, между user ID и login name должно быть всегда однозначное соответствие. Просто user ID используется во внутренних данных системы, а login name (или просто login) - при общении человек-компьютер.

Итак. В учетной карточке юзера хранится

· Name

· Password

· user ID

· group ID

· General information

· Home dir

· Shell

кроме того есть еще поля, которые часто не используются (кстати, они располагаются между group ID и General Information)

· Class

· Password change time

· Account expiration time

Назначение этих полей.

Name
Это уникальное имя юзера (login name). Его спрашивают при входе в компьютер. Оно используется в командах администрирования.

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

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

user ID
Уникальный номер юзера. Он однозначно соответствует имени (Name) и используется внутри системы.

group ID
Номер группы, к которой принадлежит юзер. Подробнее о группах см. далее.

General information
Это просто некоторые анкетные данные того реального человека, который скрывается под Name. Это поле можно и не заполнять. Обычно там пишут просто реальное имя/фамилию юзера (например, John Doe).

Однако, полностью это поле может состоять из:

Full Name - Имя Фамилия,
Location - адрес (имеется в виду рабочее место),
Office Phone - рабочий телефон,
Home Phone - домашний телефон
Home dir
Домашний каталог юзера. Именно в этом каталоге помещаются настроечные файлы для различных программ с настройками под конкретного юзера. Здесь же юзеру дается полная свобода создавать/удалять свои файлы.

Shell
Программа, которая запускается для юзера, когда он входит в систему. Обычно это <исполнитель команд>, или по другому shell (оболочка) (аналог command.com в системе DOS), который принимает команды с терминала и, в свою очередь, запускает программы, необходимые юзеру.

В современных Unix'ах обычно есть несколько таких shell (sh, csh, tcsh, bash ...) из которых можно выбрать наиболее подходящий <по вкусу>.

Но, вместо shell здесь может быть указана любая другая программа, что нередко используется для решения некоторых задач.

Class
Это поле пока ничего не означает. По замыслу, юзер может принадлежать к некоему login-классу. При этом, когда он будет входить в систему, могут быть сделаны какие-нибудь установки (например заданы переменные среды), общие для всех юзеров этого класса. Естественно, должна быть еще некая база данных, в которой указанно - что делать для юзера из конкретного класса (или не делать). Но, сейчас (по крайней мере до версии 3.1) это поле никакими программами не используется.

Password change time
Здесь администратор может указать дату, когда юзеру следует поменять пароль. Дело в том, что, если требуется повышенная секретность, одной из мер предосторожности является то, что пароли должны периодически меняться (раз в неделю, месяц и т.п.). Для того, чтобы заставить юзера следовать этому правилу, администратор задает дату, после наступления которой компьютер будет предлагать юзеру при входе систему поменять свой пароль.

Account expiration time
А здесь администратор задает дату, после которой доступ юзеру в систему будет запрещен. То есть, account юзера сохраняется (и все его файлы тоже), но войти в систему он не сможет (пока не договорится с администратором :-).

Подробнее обо всем этом можно прочитать на соответствующей man-странице.

man 5 passwd.

Для чего используется бюджет пользователя?

А вот это - очень не простой вопрос.

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

· Обычные юзеры

· Псевдо-юзеры

· Почтовые юзеры

· Гостевой вход

· Автоматический запуск коммуникационных программ

Обычные юзеры
Когда обычный юзер заходит в систему (с физического терминала или по сети), он должен сказать свое имя (Login Name) и пароль (Password). Соответствующая программа сверяет эти данные с теми, что записаны в бюджете пользователя и, если они совпадают, разрешает вход в систему. То есть запускается программа, которая указана как Shell в бюджете пользователя. Юзер с помощью этой программы может запускать другие. При этом ему можно создавать/удалять/писать/читать файлы, которые находятся в его Home dir (тоже указана в бюджете).

Псевдо-юзеры
Часто бывает полезно ограничить некоторым программам (которые запускаются автоматически - ftp-сервер, www-сервер и т.п.) доступ к файлам и директориям.

Например, вы создаете на своей машине WWW-сервер. Естественно, его назначение - выдавать в сеть какие-то документы (файлы *.html), специально предназначенные для публичного обозрения. В то же время, не хотелось бы, чтобы он (из-за возможных ошибок или злонамеренных <закладок> в программе) мог выдавать наружу другие файлы, находящиеся в системе.

В Unix предусмотренно, что права на чтение каждого файла можно связать с определенным пользователем. Юзер может читать файлы, для которых он является <хозяином> или <владельцем> (на самом деле разграничение прав несколько более сложное, но в данном объяснении это не важно). Все остальные файлы можно сделать для него недоступными.

Таким образом, для решения задачи нужно
- зарегистрировать фиктивного пользователя - например, www;
- все файлы, к которым должна иметь доступ программа WWW-сервера, объявить <собственностью> юзера www (естественно, что ваши секретные файлы должны быть недоступны этому самому www);
- объяснить системе, что когда запускается программа WWW-сервера, все должно выглядеть так, как будто его запустил реальный юзер www.
Все остальное сделается автоматически средствами Unix.

Разумеется, при таком подходе никакого реального человека, который скрывается под именем www, может не быть.

Следовательно, в бюджете такого фиктивного юзера не нужен реальный пароль (вместо пароля ставится какая-нибудь абракадабра, так, чтобы никто не мог даже подобрать его. Лучше поставить знак "*", поскольку в настоящих шифрованных паролях такой знак никогда не встречается), никакой General information, не нужна также Home dir (хотя, иногда имеет смысл объявить его домашней директорией ту, где лежат его данные) и Shell.

Особым случаем псевдо-юзера является юзер ftp. Дело в том, что у ftp-сервера могут быть две задачи. Первая - дать возможность реальным пользователям этой машины перекачивать свои файлы из этого компьютера (или, наоборот, <закачивать>) по сети. Вторая - предоставить некую <свалку> файлов всем желающим (то, что обычно называют <анонимный ftp>). В первом случае каждый реальный юзер говорит серверу свое имя и пароль и получает доступ к файлам такой же, как если бы он вошел в систему. Во втором случае, если вы не зарегистрированы в качестве юзера на этой машине, вы можете сказать, что вы - юзер anonymous или юзер ftp. В этом случае, программа ftp-сервер проверяет - зарегистрирован ли в БД учетных карточек псевдо-юзер ftp (именно ftp, а не anonymous) и, если такой юзер зарегистрирован, то пускает вас в домашнюю директорию (Home dir) этого юзера, там и должна лежать <свалка> файлов для всех желающих.

Таким образом, в учетной карточке псевдо-юзера ftp существенным являются в основном поля Name и Home dir. Остальные, обычно, значения не имеют.

Таких псевдо-юзеров в любой системе существует несколько.

Почтовые юзеры.
Если в качестве сервера электронной почты используется Unix-машина, то самым простым способом обеспечить прием почты и поддержание <почтового ящика> для конкретного человека - это зарегистрировать его как обычного юзера этой машины. (Точнее, это единственный стандартный способ.) Кроме того, для того, чтобы никто посторонний не мог получить доступ к "почтовому ящику", при соединении с "почтовым сервером" используется процедура аналогичная входу в систему обычного юзера - то есть POP-клиент должен предъявить серверу имя и секретный пароль юзера. Причем, обычно, программа POP-сервер ищет эти имя и пароль в той же базе.

Если человек, который пользуется этой Unix-машиной как <почтовым сервером>, может больше никакого отношения к ней не иметь. То есть, ему нет необходимости заходить на эту машину как ее пользователю, запускать программы, хранить файлы. Более того, возможно, администратору и не хотелось бы, чтобы такой юзер имел доступ к чему-либо, кроме своего <почтового ящика>.

Следовательно, в бюджете такого юзера не ставится домашняя директория, или ставится какая-нибудь общая для всех таких юзеров директория.

А, самое главное, не должно быть реальной программы Shell. Вместо нее лучше всего подставить какую-нибудь программу, которая просто напечатает сообщение типа: <Вам сюда нельзя> и завершит работу. В качестве такой программы можно использовать /bin/date - она напечатает текущую дату и завершится.

Кстати, если поле Shell просто оставить пустым, то система все равно впустит юзера и даст ему <исполнителя команд> /bin/sh.

"Гостевой вход"
Поскольку, вместо Shell (программы, которая автоматически запускается для вошедшего юзера) можно использовать любую программу, можно сделать небольшую информационную систему для публичного просмотра. Для этого регистрируется пользователь, например, guest (гость). В качестве Shell у этого юзера должна быть программа, которая позволяет просмотреть документы, предназначенные для публики (какая-нибудь BBS, www-browser или другая, специально для этого написанная программа). Естественно, надо принять меры предосторожности, чтобы эта программа не могла прочитать другие файлы из вашего компьютера и не могла записать ничего лишнего на диск.

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

Автоматический запуск коммуникационных программ
Если к компьютеру подключен модем, он может оказывать различные услуги через телефонные линии (BBS, прием/передачу e-mail, IP-доступ и т.п.). Если один и тот же телефонный вход используется для различных услуг, то возникает проблема - как обеспечить запуск различных коммуникационных программ для разных клиентов.

Одно из решений заключается в следующем. Для каждой возможной услуги регистрируется пользователь, у которого в качестве Shell указывается соответствующая коммуникационная программа.

Например, можно зарегистрировать пользователей:
UUCPuser - для которого запускается программа uucico (из пакета uucp),
PPPuser - для которого запускается драйвер, для связи по протоколу PPP,
SLIPuser - для которого запускается драйвер, для связи по протоколу SLIP.

Теперь, если клиент, позвонивший на модем, введет в качестве Login name PPPuser (например), то для него на этом конце модемной линии включится драйвер PPP и он получит IP доступ по этому протоколу.

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

Особенностью бюджета такого юзера, как и в предыдущем случае, является нестандартный Shell. Может отсутствовать Home dir (это зависит от коммуникационной программы, некоторые из них пытаются извлечь некоторые настроечные данные из домашней директории юзера).

 
Обязательно посетите наш сервер в интернет - http://www.anriintern.com/ 
Сайт этой рассылки http://www.anriintern.com/computer/freebsd/
На форуме http://www.anriintern.com/forum/ можно обсудить все возникающие у Вас вопросы.

Юмор

 

Вопросы.

Примите участие в формировании нашей рассылки. Задавайте свои вопросы, отвечайте на вопросы других подписчиков, поделитесь опытом, расскажите, что Вы знаете. Если Вы знаете анекдоты или забавные истории относящиеся к FreeBSD то поделитесь и ими. Спасибо всем, кто ответил на часть вопросов предыдущей рассылки. Те, кто хочет узнать предыдущие вопросы и ответы на них посетите наш форум - http://www.anriintern.com/forum/
 
Вопрос:
Мой провайдер не дает IP адреса DNS сервера. В Windows они настраиваются как-то автоматически. Как это можно сделать в BSD? Или какой другой способ?
P.S. В kPPP звонилке "галочка" авто DNS не доступна.
Ответить:
 
Вопрос:
Как реализовать функцию Callback при помощи getty на FreeBSD 3.3-Release. Если можно-примеры conf файлов?
Ответить:
 
Вопрос:
Как можно достигнуть ограничения на размер mailbox с помощью локального мейлера (mail.local)?
Ответить:
 
Выберите действие:
Ваше имя: 
Ваш e-mail:
Ваш вопрос, сообщение, опыт или юмор напишите сюда:
 
 
Подпишитесь на наши рассылки на Subscribe.Ru
Английский язык в пословицах и поговорках
Сленг, афоризмы и разговорная речь в английском языке.
Английский язык через британские мифы, легенды и сказки.
Топики для изучающих английский язык.
Альтернативные методы изучения иностранных языков
Все об иностранных языках
Европейское страноведение
Современные английские термины из области электроники
Операционная система FreeBSD. Освой самостоятельно.
Начинаем изучать С++
Путешествие в прошлое (Исторические рассказы)
Маркетинг. Бизнес в сетях. Бесплатный интернет курс.
 

Новости сервера бесплатного дистанционного образования:

16/04/2001 Начал работать курс лекций Гипертекст - симптом перелома эпохи
16/04/2001 Начал работать курс лекций - Концепции современного естествознания
16/04/2001 Начал работать Интернет справочник по грамматике Американского варианта Английского языка.
15/04/2001 Вышел в свет релиз 1.2.0 программы запоминания иностранных слов EZ Memo Booster
27/03/2001 Японские кроссворды на сервере дистанционного образования
16/03/2001 Курс латинского языка
16/03/2001 Полезные советы по работе с компьютером
16/03/2001 Другие берега, новый сайт об отдыхе, работе, обучении и жизни за рубежом!
16/03/2001 Клавиатурный тренажёр для быстрого освоения десятипальцевого метода слепой печати
12/03/2001 Выложены новые словари для EZ Memo Booster
26/02/2001 Программа изучения неправильных глаголов английского языка
15/02/2001 Говорящие словари
14/02/2001 Краткий англо-русский компьютерный словарь для чайников в английском
13/02/2001 Вышла новая версия программы English Tutor -- 1.1
09/02/2001 Программа изучения неправильных глаголов английского языка
 

Наши предложения:

 
Дистанционное образование в Великобритании по Интернету на Русском языке.

Создавая сайт "Дистанционное обучение в Великобритании по Интернету" мы ставили перед собой несколько задач. Прежде всего сделать западное образование доступным. Во-вторых, упор мы сделали на преодоление самого главного барьера для русскоговорящих - языкового. Мы финансировали перевод учебных пособий на русский язык. В-третьих, посредством Интернета мы можем обеспечить высококачественную поддержку учебного процесса. Не секрет, что в провинции найти опытного квалифицированного преподавателя сложно. А Интернет дает возможность общения студента и преподавателя безотносительно от их места жительства.
Все курсы, которые мы предлагаем сертифицированы британскими учебными или профессиональными заведениями. Например, после каждого экзамена в ИБАМ вы получаете Сертификат, после сдачи пяти экзаменов, вы получаете Диплом или Диплом с отличием. Подробнее здесь.

 

Предложение к преподавателям и специалистам в разных областях науки и техники.

Если вы имеете знания и можете поделиться ими с другими, напишите нам письмо. У нас разработана программа поддержки и спонсирования любых обучающих проектов от игры на гитаре до тренировок управления пилотируемым спутником. Подробнее здесь.

 
Предложение к владельцам сайтов.

Сервер дистанционного образования "Anri education systems" приглашает все сайты имеющие отношение к любым видам обучения к объединению. Вместе мы сможем добиться гораздо больших результатов. Об этом говорит вся история человечества. Посмотрите на нее - когда люди объединялись для достижения определенных целей, то они добивались их и создавали великие империи. У нас есть средства (как физические, так и материальные), у Вас есть знания и информация. Так давайте объединимся и создадим империю образования! Мы считаем, что надо больше делать, чем говорить, по этому - к делу. Подробнее здесь.
 
Дизайн, программирование.

Мы можем создать именно то, что Вы хотите, более того, обладая высоко квалифицированным персоналом и современным оборудованием, опираясь на самые передовые технологии, мы создадим для Вас по настоящему интерактивный и автоматизированный сайт. Мы занимаемся разработкой и созданием Web-страниц и Web-серверов разных стилей и содержания. Мы можем выработать концепцию и создать для Вас Web-сайт - Ваше представительство или виртуальный офис в Интернет. Мы предоставляем весь спектр услуг, связанный с созданием, размещением, рекламой и дальнейшей поддержкой, созданного WEB-сайта. Узнать больше можно здесь.

Сервер дистанционного образования

Работа для всех!

Web-design студия Kety

Конкурс с призами



http://subscribe.ru/
E-mail: ask@subscribe.ru

В избранное