Пользователи и их права
Каждому пользователю при регистрации присваивается уникальный идентификатор (UID - User ID). Пользователей в системе может быть довольно много. Для их нумерации зарезервировано два байта, что дает 216 = 65536 пользователей. Обычно первая сотня (или несколько сотен) номеров резервируется системой для так называемых псевдопользователей - неперсонифицированных регистрационных имен: daemon, bin, sys, nobody и др., от имени которых выступают компоненты операционной системы.
После успешной аутентификации система помнит пользователя за каждым терминалом только по номеру и передает этот номер каждому созданному процессу и файлу.
Пользователь с UID = 0 носит имя root и является для системы администратором (суперпользователем). Можно создать произвольное число учетных записей с нулевым идентификатором, и каждый из зарегистрированных пользователей будет обладать правами администратора. Как говорят, root - это не право, а возможность не считаться ни с какими правами. Существует очень небольшое число команд, которые система откажется выполнять от имени суперпользователя, и в этом усматривается определенная угроза компьютерной безопасности, связанная с человеческим фактором. С одной стороны, достаточно много ответственных действий в системе можно выполнять только с правами администратора. С другой, привычка постоянно работать в системе с полными правами является пагубной. Администратор тоже человек, и ему свойственно ошибаться. Иногда незначительная ошибка при вводе команды может привести к фатальным последствиям, поскольку Linux не является нудной системой и без необходимости не спрашивает «Вы уверены в том, что хотите удалить этот каталог?». Можно привести в качестве примера две команды:
rm -rf /home/userl/filel
Этой командой администратор хотел удалить один файл. rm -rf / home/userl/filel
Но в команде ошибочно введен лишний пробел, в результате чего будет уничтожен весь корневой каталог.
Пользователей можно объединять в группы, которым тоже присваиваются символьные имена и уникальные числовые идентификаторы GID (Group ID). Точнее, при правильном планировании вначале создаются группы, а затем в них включаются пользователи.
Для регистрации пользователей и создания групп тоже требуются полномочия администратора. Новая группа создается командой groupadd (краткий справочник по командам Linux приведен в Приложении 1. Полный электронный справочник по командам доступен при вводе команды man command_name). Пользователь может являться членом большого числа групп - 216 = 65536. Но у
каждого конкретного файла может быть только один владелец и только одна основная группа.
Для регистрации новых пользователей используются специальные утилиты и сценарии. В качестве аргументов командной строки они принимают следующий набор параметров: имя пользователя, имена групп - основной и дополнительных, их идентификаторы, пароль пользователя, срок его годности, домашний каталог пользователя, имя командного интерпретатора. Если какие-либо из этих параметров администратор явно не указывает, они подставляются системой по умолчанию.
Утилита useradd достаточно трудна в запоминании, поскольку в командной строке в виде опций необходимо ввести все требуемые параметры. Эта утилита во многих дистрибутивах Linux отличается своей «кривизной»: она «забывает» вычислять хэш-функцию и записывает пароль в теневой файл /etc/shadow в открытом виде! В результате созданной учетной записью просто невозможно воспользоваться, не говоря уже о возросшей опасности несанкционированного доступа к открытым паролям. Поэтому при создании учетных записей с помощью этой утилиты пароль пользователю следует задавать отдельной командой passwd, которая рассмотрена ниже.
Сценарий adduser позволяет после ввода команды просто отвечать на запросы программы, вводя данные в интерактивном режиме. При этом программа подсказывает значения по умолчанию [в квадратных скобках]. Ввод параметра сопровождается нажатием <Enter>. Необязательные параметры можно игнорировать, просто нажимая <Enter>. Но в некоторых дистрибутивах ОС Linux командный файл adduser отсутствует.