Список команд
Назад

Файлы /etc/passwd, /etc/shadow и /etc/groups

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

    * Регистрационное имя. Регистрационные имена должны быть уникальными и состоять не более чем из 32 символов. 
      Они могут содержать любые символы, кроме двоеточия и символа новой строки. Они не должны начинаться с цифры.

    * Зашифрованный пароль или «заполнитель» пароля. В данном поле возможно присутствие символа «х», символа «*» или набора 
      случайных символов и чисел. В первом случае указывается, что пароль храниться в файле /etc/shadow. Во втором случае говорится, 
      что данная учетная запись временно отключена. В последнем случае указывается непосредственный пароль пользователя в зашифрованном 
      виде.

    * Идентификатор пользователя - это 32-битное целое число, которое уникально
      идентифицирует пользователя в системе. По умолчанию, идентификаторы меньше 500
      зарезервированы для служебных учетных записей. Регулярные пользователи имеют
      идентификаторы, начиная с 500.      
      -
    * Идентификатор группы по умолчанию. Как и идентификатор пользователя, идентификатор группы (GID) является 32-битным целым числом. 
      Идентификатор 0 зарезервирован для группы с именем root, идентификатор 1 - для группы bin, а 2 - для группы daemon. 
      Группы определяются в файле /etc/group, а поле идентификатора группы в файле /etc/passwd задает стандартный («эффективный») 
      идентификатор на момент регистрации пользователя в системе. Этот идентификатор не играет особой роли при определении прав доступа;
      он используется лишь при создании новых файлов и каталогов. Новые файлы обычно включаются в эффективную группу своего владельца, 
      но если у каталога установлен специальный бит setgid (02000) или файловая система смонтирована с опцией grpid, новые файлы 
      принадлежат группе владельца каталога. По умолчанию, в ОС Linux для каждого нового пользователя создается новая группа с таким же 
      регистрационным именем и идентификатором.

    * Поле персональных данных. Поле GECOS в основном используется для хранения персональной информации о каждом пользователе. Оно не 
      имеет четко определенного синтаксиса. Структура данного поля может быть произвольной, но команда finger интерпретирует разделенные 
      запятыми элементы данного поля в следующем порядке: полное имя; номер офиса и здания; рабочий телефон; домашний телефон.

    * Домашний каталог. Войдя в систему, пользователь попадает в свой домашний каталог. Если на момент регистрации этот каталог 
      отсутствует, выводится сообщение о его отсутствии. Если в качестве значения поля домашнего каталога по умолчанию DEFAULT_HOME 
      в файле /etc/login.defs установлено «no», продолжение регистрации пользователя будет невозможно; в противном случае пользователь 
      попадает в корневой каталог. По умолчанию, домашние каталоги пользователей создаются в каталоге /home. При добавлении в систему 
      нового пользователя в его домашний каталог копируются все файлы из каталога /etc/skel, в котором содержаться персональные 
      конфигурационные файлы командного интерпретатора и различных программ.

    * Командный интерпретатор. В качестве регистрационной оболочки, как правило, задается интерпретатор команд, например, 
      /bin/sh или /bin/csh, но, в принципе, это может быть любая программа. По умолчанию используется интерпретатор bash. 
      Пользователи могут менять интерпретатор с помощью команды chsh. Файл /etc/shells содержит список тех интерпретаторов,
      которые доступны для выбора.


Типовые записи файла /etc/passwd имеет следующий вид:

root:х:0:0:test,w,1,w:/root:/bi n/bash
sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin

В первой записи указана учетная запись пользователя root. Как видно, идентификатор пользователя и идентификатор группы пользователя 
для данной учетной записи совпадают и равны нулю. Затем следует поле персональных данных, домашний каталог, которым является каталог 
/root и командный интерпретатор пользователя - /bin/bash.

Файл /etc/shadow доступен для чтения только пользователю root и предназначен для хранения зашифрованных паролей. В нем также 
содержится учетная информация, которая отсутствует в файле /etc/passwd. При использовании скрытых паролей соответствующие поля 
в файле /etc/passwd всегда содержат символ «х». Оба файла необходимо сопровождать независимо друг от друга (или использовать команду 
useradd для автоматического управления файлами). Как и /etc/passwd, файл /etc/shadow содержит одну строку для каждого пользователя.
 Каждая строка состоит из 9 полей, разделенных двоеточиями:

    * Регистрационное имя. Регистрационное имя берется из файла /etc/passwd. Оно связывает записи файлов /etc/passwd и /etc/shadow.
    * Зашифрованный пароль.
    * Дата последнего изменения пароля. Данное поле обычно заполняется командой passwd.
    * Минимальное число дней между изменениями пароля. В данном поле задается количество дней, спустя которые пользователь сможет 
      снова изменить пароль.
    * Максимальное число дней между изменениями пароля. Максимальное время жизни пароля определяется суммой значений данного и 
      седьмого полей.
    * Количество дней до истечения срока действия пароля, когда выдается предупреждение. В данном поле задано количество дней,
      оставшихся до момента устаревания пароля, когда программа login должна предупреждать пользователя о необходимости изменить пароль.
    * Количество дней по истечении срока действия пароля, когда учетная запись отключается.
    * Срок действия учетной записи. По окончанию этого срока пользователь не сможет зарегистрироваться в системе, пока администратор не 
      сбросит значение поля. Если поле содержит пустое значение, учетная запись всегда будет активной.
    * Зарезервированное поле, которое в настоящее время всегда пустое.

Типовой вид записи пользователя в файле /etc/shadow имеет следующий вид:

aivanov:!!$l$bNurEkCt$rDah2BOTfxzndRW5XKWFCl:14260:0:14:7::14303:

Поля дат в файле /etc/shadow задаются в формате числа дней с 1-го января 1970 года, поэтому данные поля лучше задавать с помощью 
команд usermod или chage. С помощью программы pwconv можно согласовать содержимое файлов /etc/shadow и /etc/passwd. Большинство параметров 
файла /etc/shadow берется из стандартных установок файла /etc/login.defs, поэтому для упрощения задания данных параметров, следует 
определить их по умолчанию в данном файле.

Файл /etc/group содержит имена групп, присутствующих в ОС Linux, и списки членов каждой группы, например:

daemon:х:2:root,bi n,daemon

В данном случае в системе имеется группа daemon с идентификатором равным 2. В данную группу входят пользователи root, bin и daemon.
Каждая запись файла /etc/group представляет одну группу и содержит четыре поля:

    * Имя группы. По умолчанию при создании нового пользователя создается также его группа с таким же именем, как и регистрационное 
      имя пользователя.
    * Зашифрованный   пароль  или  символ  х,  указывающий   на  использование  файла /etc/gshadow;
    * Идентификатор группы.
    * Список членов, разделенный запятыми без пробелов.

Как и в файле /etc/passwd, поля разделяются двоеточиями. Длина имени группы не должна превышать 8 символов из соображений совместимости, 
хотя в ОС Linux такого ограничения нет. Несмотря на наличие поля пароля (с помощью которого пользователи могут присоединиться к группе, 
 выполнив команду newgrp) пароль задается редко. В большинстве случаев в это поле вводятся звездочки, но можно оставить его пустым. 
Команда newgrp не сменит группу без пароля, если только пользователь не указан как член этой группы. Если в файле /etc/passwd пользователь 
объявлен членом определенной группы, а в файле /etc/group -нет, пользователь все равно включается в группу. На этапе регистрации членство
в группе проверяется по обоим файлам, но лучше согласовывать их содержимое.


Список команд
Назад