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

Установка ОС Solaris и управление пользователями

< Лекция 3 || Лекция 4: 12345 || Лекция 5 >

Структура файлов /etc/passwd, /etc/shadow, /etc/group

Файлы /etc/passwd и /etc/group в Solaris имеют такой же формат, как и в других системах UNIX, а файл /etc/shadow одинаков для всех систем ветви System V. Рассмотрим примеры файлов (для этого потребуется воспользоваться командой cat или командой more ):

Учетные записи пользователей

cat /etc/passwd
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:/:
col:x:100:1::/home/col:/bin/sh
temp:x:101:1::/home/temp:/bin/sh
qaz:x:102:1::/home/qaz:/bin/sh
Termos:x:103:1::/home/Termos:/usr/bin/bash

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

Первое поле - имя пользователя в системе. Это имя пользователь вводит для входа в систему. Имя в Solaris должно иметь длину от 2 до 8 символов и содержать только латинские буквы и цифры. Имя пользователя в Solaris может содержать прописные латинские буквы, однако из соображений совместимости с другими системами UNIX рекомендуется использовать только строчные (маленькие) буквы.

Второе поле - признак наличия пароля. Пустое поле означает отсутствие пароля. Для фактического отсутствия пароля у пользователя необходимо, кроме того, чтобы второе поле в файле /etc/shadow в описании этого пользователя имело значение NP.

Третье поле - идентификатор пользователя, UID.

Четвертое поле - идентификатор главной группы пользователя, GID.

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

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

Седьмое поле - командный процессор, который будет запущен для пользователя при интерактивном входе в систему. Некоторые сетевые службы (например, ftpd) требуют, чтобы у каждого пользователя, пытающегося получить доступ к сетевой службе, был существующий в системе на самом деле командный процессор. Файл /etc/shells описывает доступные в системе командные процессоры, которые следует назначать пользователям. Сразу после установки системы файл /etc/shells не образуется. Системный администратор должен создать его вручную, если он требуется для каких-то программ в системе, например, для ftpd.

Относительно содержания поля GECOS следует сделать несколько замечаний.

Поле GECOS часто называют полем комментария, и это верно: в нем следует записывать контактную информацию о пользователе. Системному администратору ничего не скажет строка в файле протокола, свидетельствующая о проблеме, вызванной работой пользователя ikonst34. Кто это? Иван Константинович из планового отдела или Илья Константинов из технического? Или это Иконников Станислав из филиала 34? Чтобы не мучаться ассоциациями, навеянными именем пользователя, а точно знать, кто скрывается за лаконичным username, следует заполнять поле комментария.

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

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

Не всегда требуется указывать всю эту информацию. На деле достаточно указать ровно столько сведений, сколько достаточно системному администратору для однозначной идентификации владельца учетной записи. Только имейте в виду - не одному-единственному конкретному системному администратору, а любому администратору, которому придется управлять созданной вами системой. Ведь нынешний системный администратор может уволиться или уехать в отпуск. Сможет ли его преемник или заместитель быстро разобраться в записях /etc/passwd? Делайте записи в поле комментария полезными сведениями, а не отписками.

Например, файл /etc/passwd может содержать такие записи:

root:*:0:0:Root - Michael Kruglov, room 601,
89119119111:/root:/bin/bash
ftp:*:23:1:FTP Admin, Andrei Nezvanyi,
9733333:/home/ftp:/bin/bash
apache:*:404:40:Web Master, Elena
Osatanenko,1001010:/usr/local/httpd:/bin/sh

Каждая запись в файле /etc/passwd размещается на одной строке, здесь они перенесены из-за ограниченного размера страницы книги.

Последнее, что следует сказать о поле GECOS, это почему оно так называется.

В свое время компания General Electric владела компьютером, операционной системой которого была GECOS (General Electric Comprehensive Operating System). Компьютеры под управлением UNIX использовались для подготовки задач для этого компьютера. Изначально в поле комментария хранилась информация для запуска командных файлов и пакетных задач, которые были предназначены для системы GECOS:

cat /etc/shadow
root::6445::::::
daemon:NP:6445::::::
bin:NP:6445::::::
sys:NP:6445::::::
adm:NP:6445::::::
lp:NP:6445::::::
uucp:NP:6445::::::
nuucp:NP:6445::::::
smmsp:NP:6445::::::
listen:*LK*:::::::
nobody:NP:6445::::::
noaccess:NP:6445::::::
nobody4:NP:6445::::::
col:9NvfZSaIQgcQk:12435::::::
temp:*LK*:::::::
qaz:v.srD227fHRx2:12448::::::
Termos:o3HzHXFopdwbU:::::::

Этот файл тоже описывает пользователей. В нем хранятся зашифрованные пароли пользователей. Формат файла таков:

Первое поле - имя пользователя.

Второе поле - зашифрованный пароль, *LK* означает, что учетная запись заблокирована (locked), а NP - что пароль отсутствует (no password).

Третье поле - число дней между 1 января 1970 года и датой последнего изменения пароля.

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

Пятое поле - максимальное количество дней, в течение которого пароль считается действительным; по истечении этого срока система попросит ввести новый пароль, так как старый утратит силу.

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

Седьмое поле - количество дней, которое пользователь может не работать в системе и считаться активным; по истечении этого срока учетная запись автоматически блокируется.

Восьмое поле - дата, до которой учетная запись считается действительной; после этой даты пользователь не сможет войти в систему.

Девятое поле зарезервировано и сейчас не используется.

Данный формат /etc/shadow характерен как для Solaris, так и для других относящихся к System V систем UNIX, например, для Linux.

В /etc/shadow обязательно наличие только первых трех полей в каждой записи, остальные могут отсутствовать - все или часть из них. Рекомендуется вносить исправления в /etc/shadow не вручную, а с помощью программ admintool, usermod, useradd, passwd. Однако, в одном случае - когда забыт пароль root - придется исправлять /etc/shadow в текстовом редакторе.

Пользовательские файлы конфигурации

У каждого пользователя в домашнем каталоге есть несколько файлов конфигурации. Обычно присутствуют файлы конфигурации командного процессора. Если в системе используется несколько командных процессоров, имеет смысл сделать файлы конфигурации для каждого из них (о файлах конфигурации командных процессоров см. лекцию 10). Кроме того, могут быть файлы конфигурации графической среды (.Xsession и другие), файлы конфигурации почтовой системы (.elm, .forward и другие), файлы с историей команд (.history, .bash_history) и прочие. Их объединяет то, что их имена практически всегда начинаются с символа " ." (точка). Можно увидеть их в списке файлов каталога, если дать команду

ls -a

Пользовательские файлы конфигураций создаются заранее системным администратором. Стандартные пользовательские файлы конфигураций по умолчанию поставляются вместе с операционной системой и в Solaris располагаются в /etc/skel (от слова skeleton - скелет, т.е. основа). При добавлении в систему нового пользователя они автоматически копируются из каталога /etc/skel в домашний каталог нового пользователя. При добавлении нового пользователя или модификации существующей учетной записи можно указать другой каталог с файлами конфигурации, чтобы копировать не файлы по умолчанию, а другие файлы. Их предварительно следует создать и модифицировать в соответствии с настройками, которые требуется установить для новых пользователей.

Если изменить файлы в каталоге /etc/skel, то измененные файлы будут копироваться в домашние каталоги только тех пользователей, которые будут добавлены после модификации этих файлов. Если новые версии файлов конфигурации надо разложить по каталогам всех пользователей, это надо сделать явным образом, с помощью скрипта или вручную.

Мы будем далее называть /etc/skel каталогом базовых пользовательских файлов конфигурации. После того как пользователь войдет в систему, он может изменить настройки, сделанные для него в файлах конфигурации в своем каталоге, или добавить новые, если системный администратор не запретил ему запись в файлы конфигурации.

Группы пользователей

Все группы, определенные в системе, перечислены в файле /etc/group.

cat /etc/group
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:

Первое поле - имя группы.

Второе поле - зашифрованный пароль; это устаревшее поле, в настоящее время нет команды, которая бы позволила установить пароль на группу, и обычно нет необходимости это делать. Если все же такая необходимость появится, то можно установить требуемый пароль какому-нибудь пользователю с помощью программы passwd, а затем копировать поле пароля из /etc/shadow в /etc/group. Пароль группы используется в Solaris только программой newgrp. Эта программа требуется для изменения эффективного группового идентификатора пользователя в ходе его интерактивной работы. Если группа, которой соответствует новый групповой идентификатор, имеет пароль, то программа newgrp его запросит.

Третье поле - идентификатор группы (GID). Этот идентификатор должен быть уникальным в пределах системы, а в случае использования общих файлов групп и паролей - в пределах всей сети организации. Номера от 0 до 99 и от 60001 до 60002 зарезервированы для системных групп. Создавайте свои группы с идентификаторами от 100 до 60000 включительно.

Четвертое поле - список пользователей через запятую; для этих пользователей данная группа будет являться дополнительной. В Solaris принято по умолчанию, что один пользователь может принадлежать не более чем к 15 дополнительным группам.

< Лекция 3 || Лекция 4: 12345 || Лекция 5 >
Игорь Ермачков
Игорь Ермачков
Латвия, Рига
Андрей Мальщуков
Андрей Мальщуков
Россия