Пользователи и группы

LinuxBeginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы узнаете, как определить, «кто» находится в вашей системе Linux.

Представьте многоквартирный дом:

  • Пользователи — жильцы.
  • Группы — списки доступа (группа спортзала, группа бассейна).

Система хранит общий «справочник» всех пользователей. В этой лабораторной работе мы откроем этот справочник.

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

Просмотр списка пользователей (/etc/passwd)

«Общий справочник» пользователей хранится в файле /etc/passwd.

Представляйте этот файл как электронную таблицу. Столбцы разделены двоеточиями :.

Исторически /etc/passwd действительно был одной из центральных баз данных учётных записей в Unix-подобных системах. Современные системы хранят пароли безопаснее, чем старые, но структура записи учётной записи по-прежнему остаётся основой управления идентификацией в Linux.

Просмотрите содержимое файла:

cat /etc/passwd

Пример вывода:

root:x:0:0:root:/root:/bin/bash
labex:x:5000:5000::/home/labex:/usr/bin/zsh
...

Разберём запись labex:x:5000:5000::/home/labex:/usr/bin/zsh:

  1. Имя пользователя: labex
  2. Пароль: x (хранится в другом месте)
  3. Идентификатор пользователя (UID): 5000
  4. Идентификатор группы (GID): 5000
  5. Информация: (пусто)
  6. Домашний каталог: /home/labex
  7. Оболочка: /usr/bin/zsh

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

Определение пользователя root (UID 0)

Пользователь root — это управляющий здания. У него есть ключи от всех помещений.

Найдите запись root:

grep "^root" /etc/passwd

Вывод:

root:x:0:0:root:/root:/bin/bash

UID (третье поле) равен 0. В Linux UID 0 означает неограниченные полномочия.

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

Определение своего пользователя

Найдите собственную запись (labex):

grep "^labex" /etc/passwd

Вывод:

labex:x:5000:5000::/home/labex:/usr/bin/zsh

Ваш UID равен 5000.

Ваш домашний каталог — /home/labex.

Проверка групп (id)

Файл /etc/passwd содержит сведения только об основной группе пользователя. Чтобы увидеть все ваши «пропуска доступа», используйте команду id.

id

Вывод:

uid=5000(labex) gid=5000(labex) groups=5000(labex),27(sudo)...

Это ваша идентификационная карточка:

  • uid: текущий пользователь;
  • gid: основная группа;
  • groups: членство во всех группах.

Вы входите в группу sudo (ID 27). Это позволяет вам действовать от имени root!

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

Итоги

В этой лабораторной работе вы изучили «кто есть кто» в вашей системе Linux. Вы узнали, что:

  • Пользователи определяются в файле /etc/passwd.
  • UID 0 принадлежит пользователю root, системному администратору (управляющему здания).
  • UID 5000 назначен вашей учётной записи в этой системе.
  • Группы управляют доступом к общим ресурсам.
  • Команда id показывает вашу полную идентификацию, включая группы, членство в которых даёт вам «ключи» доступа.

Понимание этих идентификаторов крайне важно, поскольку каждое разрешение в Linux — например, кто может прочитать файл или запустить программу — основано на них.