Европейский Университет в Санкт-Петербурге
Опубликован: 10.10.2005 | Доступ: свободный | Студентов: 1595 / 258 | Оценка: 4.30 / 3.85 | Длительность: 16:22:00
ISBN: 978-5-94774-820-8
Лекция 1:

Введение в UNIX. Устройство системы

Лекция 1: 123 || Лекция 2 >

Предопределенные пользователи и группы

При установке системы в файлы /etc/passwd и /etc/group автоматически записываются сведения о предопределенных пользователях и группах. Это делается для того, чтобы было проще управлять правами доступа к системным файлам.

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

В Solaris 9 предопределенными являются пользователи, перечисленные ниже:

root:x:0:1:Super-User:/:/sbin/sh
daemon:x:1:1::/:
bin:x:2:2::/usr/bin:
sys:x:3:3::/:
adm:x:4:4:Admin:/var/adm:
lp:x:71:8:Line Printer Admin:/usr/spool/lp:
uucp:x:5:5:uucp Admin:/usr/lib/uucp:
smmsp:x:25:25:SendMail Message Submission Program:/:
listen:x:37:4:Network Admin:/usr/net/nls:
nobody:x:60001:60001:Nobody:/:
noaccess:x:60002:60002:No Access User:/:
nobody4:x:65534:65534:SunOS 4.x Nobody:/:

К предопределенным группам относятся следующие:

root::0:root
other::1:
bin::2:root,bin,daemon
sys::3:root,bin,sys,adm
adm::4:root,adm,daemon
uucp::5:root,uucp
mail::6:root
tty::7:root,adm
lp::8:root,lp,adm
nuucp::9:root,nuucp
staff::10:
daemon::12:root,daemon
sysadmin::14:
smmsp::25:smmsp
nobody::60001:
noaccess::60002:
nogroup::65534:

Привилегированный пользователь

Один из предопределенных пользователей - это пользователь root с UID, равным нулю.

Пользователь с таким UID называется суперпользователем (superuser) или привилегированным пользователем и всегда имеет имя root. Он имеет неограниченные права на доступ к любому объекту в системе.

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

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

Как стать привилегированным пользователем

В UNIX можно "перевоплотиться" в любого пользователя. Для этого служит команда su (switch user):

su имя_пользователя

Команда su без параметров эквивалентна su root.

Для перевоплощения в другого пользователя нужно знать его пароль. В некоторых системах UNIX дать команду su для того, чтобы работать от имени root, по умолчанию может только член группы wheel. Так, например, установлено во FreeBSD. В системах, где для аутентификации используется подсистема PAM, такой эффект достигается следующей строкой в файле /etc/pam.d/su:

auth required /lib/security/pam_wheel.so

Подсистема PAM в настоящее время поддерживается во всех основных системах UNIX: Solaris, HP-UX, FreeBSD и всех новых версиях Linux. Более подробно эта подсистема рассматривается в "лекции 10" курса "Администрирование ОС Solaris".

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

Команда su по умолчанию запускает командный процессор от имени другого пользователя, но сохраняет среду окружения старого, т.е. среда окружения наследуется от того командного процессора, в котором выполнена команда su. Это мешает перевоплотиться полностью. Например, если пользователь alen выполнил команду su, то работать от имени root он сможет, а читать почту из почтового ящика root - нет. Потому что почтовая программа проверяет переменную mail и (или) user, которая унаследуется от старого командного процессора.

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

su - имя_пользователя

Обратите внимание на знак - (минус) после команды su.

Например, для полного перевоплощения в пользователя breatney следует дать команду

su - breatney

В некоторых системах UNIX есть программа sudo, с помощью которой любой пользователь может выполнить команду от имени другого пользователя. Системный администратор должен заранее отредактировать файл /etc/sudoers, в котором определяется, кто и что может запускать от чужого имени. При выполнении программа sudo спросит у пользователя его пароль, чтобы убедиться, что ее запускает не тот, кто случайно подошел к терминалу с незакрытой сессией работы.

В Solaris нет sudo, зато есть более сложный способ делегирования части полномочий администратора другим пользователям. Для этого используется управление доступом на основе ролей (RBAC - role based access control). Его смысл состоит в том, что среди всех полномочий системного администратора выделяются их группы, а затем некоторые пользователи наделяются таким подмножеством полномочий, которое соответствует их реальной роли в администрировании системы. Более подробно RBAC рассматривается в "лекции 11" курса "Администрирование ОС Solaris".

Что делать, если вы забыли пароль суперпользователя

Если пользователь забыл свой пароль, то сообщить ему, какой он был, невозможно. Надо просто установить ему новый. Это можно сделать командой

passwd user

или с помощью программы admintool (в графическом режиме). Изменить пароль любого пользователя может только root. Если же забыт пароль root, то следует поступить одним из следующих способов:

Способ 1 (рекомендован Sun Microsystems):

  1. Загрузитесь с установочного диска Solaris3Предполагается, что комплект установочных дисков всегда находится в шкафу рядом с сервером Solaris. На всякий случай следует заранее позаботиться о создании копии комплекта. (прим. авт.). . Например, дав команду boot cdrom -s4Для систем x86 это выглядит немного иначе: b -s или b cdrom -s (прим. авт.). .
  2. Создайте каталог /tmp/a (или любой другой, чтобы смонтировать в этот каталог корневой раздел диска).
  3. Смонтируйте корневой раздел в /tmp/a (для этого надо знать, какой раздел на диске является корневым5Это следует знать заранее. После того как сервер Solaris настроен, надо распечатать некоторые файлы конфигурации, чтобы все сведения были под рукой. Храните их в шкафу с дистрибутивами или наклейте на корпус сервера. В данном случае нам пригодится содержимое файла /etc/vfstab. Если заранее это сделано не было, следует войти в систему под именем любого пользователя и дать команду /usr/sbin/mount. Однако не во всех случаях такое решение заменит распечатку файлов конфигурации. (прим. авт.). ).
  4. Исправьте /etc/shadow:

    vi /tmp/a/etc/shadow

    в редакторе найдите поле пароля в учетной записи root и удалите все поле (между первым и вторым двоеточиями).

  5. Перезагрузите систему, войдите под именем root без пароля, установите новый пароль.
  6. Запомните пароль. Для этого можно несколько раз подряд войти в систему и выйти из нее под именем root. Обычно системный администратор запоминает произвольную комбинацию из восьми символов с третьего раза.

Способ 26Способ впервые описан по-русски в Сети Евгением Бобиным (Eugene Bobin, http://www.chat.ru/~gene) (прим. авт.). :

  1. Загрузитесь с установочного диска Solaris так, как будто вы собираетесь делать upgrade системы.
  2. При этом установщик Solaris смонтирует файловые системы, в том числе и корневую, на /a и спросит "Upgrade or Exit"; выберите Exit.
  3. Отредактируйте /etc/shadow как в способе 1, вызвав редактор командой

    vi /a/etc/shadow

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

Лекция 1: 123 || Лекция 2 >
Игорь Ермачков
Игорь Ермачков
Латвия, Рига
Андрей Мальщуков
Андрей Мальщуков
Россия