7.3.1. Учетные записи пользователей
Система учета пользователей опирается на следующие конфигурационные файлы:
♦ /etc/passwd — учетная информация о пользователе;
♦ /etc/shadow — скрытая информация о пользователях: пароли в зашифрованном виде;
♦ /etc/group — информация о группах;
♦ /etc/gshadow — скрытая информация о группах;
♦ /etc/default/useradd — свойства, назначаемые по умолчанию новым учетным записям;
♦ /etc/login.defs — настройки безопасности пароля (время истечения, минимальная длина);
♦ /etc/skel — каталог, содержащий личные файлы настроек по умолчанию (когда для нового пользователя создается домашний каталог, в него помещаются эти файлы).
Учетная информация о пользователях системы хранится в файле /etc/passwd в следующем виде:
username:password:UID:GID:full_name:home_dir:login_shell
Где:
♦ Username — это регистрационное имя пользователя, часто называемое логином. Обычно администраторы присваивают пользователям логины, образованные от их реальных имен. Имя root закреплено за суперпользователем. Кроме реальных пользователей, в системе существуют еще фиктивные (bin, daemon и т.п.), от имени которых запускаются общесистемные службы.
♦ Password — пароль. Обычно используются теневые пароли, и вместо пароля в файле /etc/passwd стоит знак *, а сам пароль в зашифрованном виде хранится в файле /etc/shadow.
♦ UID — уникальный числовой идентификатор пользователя из диапазона от 0 до 65534. Суперпользователю присвоен UID, равный 0.
♦ GID — числовой идентификатор первичной группы пользователя. Помимо первичной группы, пользователь может входить или не входить в состав разных групп, но в первичную группу (
♦ Full_name — обычно представляет собой реальное имя пользователя, например Ivan Ivanov. Может содержать и другие данные: номер телефона и т.п. Эти сведения системой не используются, но доступны по команде finger .
♦ Home_dir — домашний каталог пользователя. Стандартное место для него — это каталог /home/ (например, /home/den), и без особых причин изменять такую организацию домашних каталогов не рекомендуется.
♦ Login_shell — командный интерпретатор, запускаемый по умолчанию при входе пользователя в систему.
Пример фрагмента файла /etc/passwd:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
den:x:500:500:den:/home/den:/bin/bash
evg:x:501:501::/home/evg:/bin/bash
Применение теневых паролей оправдывает себя с точки зрения безопасности. Обычно к файлу /etc/passwd разрешен доступ в режиме «только чтение» всем пользователям. К файлу /etc/shadow обычный пользователь не имеет даже такого доступа.
Системы, использующие TCB (/etc/shadow, а в файлах /etс/tcb/<имя_пользователя>/shadow. Считается, что технология TCB более практична с точки зрения безопасности, поскольку доступ к паролям отдельного пользователя не позволит злоумышленнику скомпрометировать сразу всю систему. Для включения поддержки TCB нужно установить пакет tcb. Многие современные дистрибутивы (например, дистрибутивы ALT Linux) поддерживают TCB по умолчанию.
В качестве основного алгоритма шифрования используется MD5, превращающий пароль в 32-значное шестнадцатеричное число. Этот алгоритм является самым надежным. Раньше использовались алгоритмы DES и 3DES, но здесь я не буду подробно останавливаться ни на одном из них. При установке системы обычно спрашивается, хотите ли вы использовать теневые пароли (Shadow Passwords) и MD5. Я очень рекомендую вам использовать обе эти возможности.
Информация о группах пользователей хранится в файле /etc/group в следующем формате:
имя_группы:пароль:GID:члены_группы
Пароль используется крайне редко. Пример фрагмента файла /etc/group:
root:*:0:root
bin:*:1:root,bin,daemon
local:*:100:den,operator,ivan
guest:*:200:
dialup:*:250:victor,evg