Как мы уже знаем 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 еще называется finger
  • путь к домашнему каталогу
  • командный интерпретатор

 

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

 

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

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

 

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

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

/etc/shadow

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

 

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

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

 

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

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

 

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

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

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

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

 

/etc/group

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

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

/etc/gshadow

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

/etc/skel/

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

ВНИМАНИЕ: Вторая часть по управлению пользователями и группами в Lunix находится по этой ссылке.