Урок 14. Управление учетными записями. Часть 1

Общие сведения о пользователях

Как вы уже знаете Linux является многопользовательской системой, то есть в ней могут быть зарегистрированы и одновременно работать сразу несколько пользователей.

Как можно работать всем сразу на одном компьютере?

Для этого достаточно подключиться к нему удаленно. Это нормальное явление для серверов.

Во всех Linux системах существуют суперпользователь (root), который может абсолютно все и обычные пользователи, которые могут обладать правами администратора или не обладать ими вовсе. Все зависит от требований к работе системы.

Логика работы Linux такова, что определенным пользователям назначаются определенные права, то есть одни могут настраивать систему и менять конфигурацию, а другие могут лишь просматривать и редактировать документы.

Так как пользователей может быть очень много, к тому же каждый пользователь может выполнять лишь определенную часть работы, то в системе существуют и группы. Каждая группа имеет определенные привилегия и права на осуществление определенных задач. 

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

Например, в системе зарегистрировано 200 пользователей - это равносильно средней компании. Для корректной работы системы было решено выделить следующие группы:

    • администраторы с полными правами
    • администраторы для установки и настроек пользовательских программ
    • продвинутые пользователи, которые могут менять параметры, связанные с их личным аккаунтом, а также устанавливать свои программы
    • обычные пользователи, которые не могут ничего настраивать и устанавливать программы

 

Вроде бы ничего сложного, но сделать это все для 200 и более пользователей довольно утомительная задача. К тому же работники приходят и уходят, переходят на другие позиции и всегда нужно знать кому и какие права необходимо назначить. Гораздо проще назначить все необходимые привилегия группам, а затем добавить пользователей в эти группы.

А может пользователь состоять в нескольких группах?

Конечно, в этом и заключается вся прелесть.

А сколько всего можно иметь пользователей и групп в системе?

Теоретически и тех и других может быть в системе по 65535. Это связано с тем, что каждый пользователь и группа имеют свой уникальный номер, который принимает значения от 0 до 65535:

UID (User ID) - идентификатора пользователя

GID (Group ID) - идентификатор группы

Однако в Linux можно создать пользователей и с повторяющимися идентификаторами, поэтому количество пользователей может быть еще больше. Суперпользователь root всегда имеет UID = 0, он также состоит в группе root и имеет GID = 0.

Значения от 0 до 500 зарезервированы самой системой. От 501 и выше назначаются новым пользователям и группам.

Каждый пользователь имеет свои собственные настройки, например какой командный интерпретатор запускается, домашний каталог, группы, в которых состоит.

По умолчанию, когда создается новый пользователь, то автоматически создается и домашний каталог в /HOME. Имя каталога всегда совпадает с именем пользователя в системе (login). Однако это необязательное условие, домашний каталог может быть где угодно, даже на съемных носителях.

Файлы конфигураций

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

Каждому пользователю присущи следующие атрибуты:

    • логин для входа в систему
    • пароль
    • оболочка терминала (bash, shell и др.)
    • персональные данные (имя, фамилия, компания и т.д.)
    • принадлежность к группам в системе

И естественно возникает резонный вопрос: “А где хранятся все эти данные?”

Рассмотрим по порядку каждый файл.

 

/etc/passwd

Судя по названию можно предположить, что в этом файле хранятся пароли пользователей, но это не так. Данный файл содержит следующую информацию:

    • логин
    • идентификатор пользователя UID
    • идентификатор группы, в которой он состоит GID
    • персональная информация, которая в Linux еще называется finge
    • путь к домашнему каталогу
    • командный интерпретатор

 Доступ к файлу ограничен. Его можно просматривать, но нельзя редактировать обычным пользователям. Вот как он выглядит:

Отображение учетных записей Linux

 

А вот, что означает каждое поле:

Описание полей файла passwd

 

Файл содержит очень много пользователей. Зачем они все?

На самом деле это не простые пользователи, а системные. Их UID меньше 500 и используются они для выполнения специфических задач для обеспечения работоспособности системы в целом.

Если необходимо добавить пользователя, можно ли просто добавить нужную запись в конец файла? Будет ли данный пользователь активен?

Да, будучи суперпользователем можно добавить запись, но необходимо еще настроить пароль.

/etc/shadow

Этот файл содержит информацию о пароле.

То есть можно увидеть пароли всех пользователей?

Нет, в открытом виде пароли уже давно не хранятся. Хранится лишь их хэш, то есть когда вводится новый пароль его шифрует хэш функция и в дальнейшем уже сравниваются лишь хэши.

Файл содержит следующую информацию:

    • логин для привязки соответствующей записи в /etc/passwd с текущей записью в /etc/shadow
    • хэш пароля
    • дата последнего изменения пароля
    • минимальное количество дней между изменениями пароля, то есть когда можно поменять пароль, если вдруг не понравился
    • максимальное количество дней между изменениями пароля
    • количество дней до истечения действия пароля, чтобы выдать предупреждение пользователю
    • количество дней после истечения срока действия пароля, после чего учетная запись отключается
    • Срок действия учетной записи

 Вот как выглядит файл:

Отображение содержимого файла /etc/shadow

 

А вот, что означает каждое поле:

Описание полей файла /etc/shadow

 

А что означают знаки “*” и “!” в поле пароля?

Знак “*” устанавливается только у системных пользователей и означает, что нельзя войти в систему от имени системного пользователя.

Если знак “!” стоит перед хэшем пароля, то это означает, что пароль и учетная запись заблокированы и пользователь не сможет войти в систему.

Если после знака “!” нет хэша, то это означает, что пароль не установлен и учетная запись временно заблокирована до тех пор, пока не установят пароль:

Описание символов записей файла /etc/shadow

 

 

/etc/group

В нем содержится информация о группах:

    • название группы
    • идентификатор группы GID
    • список пользователей, входящих в конкретную группу

 Вот как выглядит файл:

Отображение содержимого файла /etc/group

 

А вот и пояснение к каждому полю:

Описание полей файла /etc/group

 

/etc/gshadow

А это файл содержит информацию о паролях групп:

    • название группы
    • зашифрованный пароль
    • администраторы через запятую
    • обычные пользователи через запятую

 Вот как он выглядит:

Отображение содержимого файла /etc/gshadow

 

 

А вот и описание:

Описание полей файла /etc/gshadow

 

А зачем группе пароль? 

Дело в том, что некоторые группы могут обладать расширенными правами. Чтобы пользователь смог вступить в группу ему предлагается ввести пароль данной группы. Если он его знает, то становится членом группы.

А если у группы не установлен пароль?

Если у группы нет пароля, об этом свидетельствует знак “!” в поле пароля, то пользователь не сможет вступить в группу.

Но ведь группа будет активна и без пароля?

Совершенно верно.

Знак “*” в поле пароля некоторых групп означает то же самое, что и у пользователей?

Не совсем. Знак “*” присутствует у системных групп. Пароли этих групп можно менять будучи суперпользователем, а также можно вступать в эти группы, достаточно лишь знать пароль группы. Когда пароль устанавливается для системных групп, то знак “*” сменяется на зашифрованный пароль.

 

/etc/skel/

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