Европейский Университет в Санкт-Петербурге
Опубликован: 04.07.2008 | Доступ: свободный | Студентов: 1321 / 264 | Оценка: 4.34 / 3.65 | Длительность: 21:13:00
Лекция 5:

Управление пользователями

< Лекция 4 || Лекция 5: 1234 || Лекция 6 >

Структура файлов /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:
nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico
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

Последнее, что следует сказать о поле 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 вручную, а делать это с помощью программ smc, usermod, useradd, passwd. Однако, в одном случае – если вы забыли пароль root – придется исправлять /etc/shadow в текстовом редакторе.

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

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

ls -a

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

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

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

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

Группы, определенные в системе, перечислены в файле /etc/group. В системе могут быть определены и другие группы, если для аутентификации и авторизации помимо файлов /etc/passwd и /etc/group используются и другие источники (например, каталог LDAP – см. лекцию 8 курса "Системное администрирование ОС Solaris 10").

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 дополнительным группам.

< Лекция 4 || Лекция 5: 1234 || Лекция 6 >
Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.