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

15. 11. 2013

UNIX-подобные операционные системы являются многопользовательскими. Пользователи и группы в которых они состоят используются для управления доступом к системным файлам, каталогам и периферии. По умолчанию linux предлагает относительно простые механизмы контроля доступа. Расширить их можно при помощи LDAP и ACL, но в этой теме мы рассмотрим стандартные средства контроля допуска.

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

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

Пользователь - это любой кто пользуется компьютером. Пользователю назначается имя, имя должно быть уникальным в системе (linux есть зарезервированные имена, такие как «root», «hal», и «adm»). Имя может состоять из букв английского алфавита, арабских чисел и символов «_»(нижний пробел) «.»(точка).

Root (от англ. root — корень; читается «рут»), суперпользователь —
это аккаунт в UNIX-подобных операционных системах с идентификатором (UID) 0,
владелец этого аккаунта имеет право на выполнение любой операции.
В целях безопасности работать под суперпользователем root не рекомендуется.

Помимо системного имени, в систему может занестись и хранится полное имя (например Ф.И.О)(full name)  реального пользователя. Например, пользователю newuser в реальной жизни может соответствовать человек по имени John Smith. Эта информация позволит лучше контролировать и идентифицировать пользователей системному администратору, тем более, если пользователей в системе сотни или даже тысячи.

Под каждого пользователя, создается свой каталог (home directory). В этот каталог попадает пользователь, после того как он авторизировался и в нем храниться личные файлы и папки пользователя. Все каталоги пользователей собраны в одном месте, обычно это /home.

Также, пользователю назначается командная оболочка (командный интерпретатор, используемый в операционных системах семейства UNIX). Например: /bin/bash, /bin/zsh, /bin/sh и.т.д. У многих дистрибутивов linux, для пользователей, по умолчанию назначается командная оболочка bash.

Каждому пользователю назначается идентификационный номер (User ID). Сокращенно номер обозначается как UID, является уникальным идентификатором пользователя. Операционная система отслеживает пользователя именно по UID, а не по их имени.

Также, каждому пользователю назначается пароль для входа в систему. Пароль храниться в зашифрованном виде (encripted). Для создания и изменения пароля используется команда passwd. Системный администратор может сам назначить пароль или дать возможность пользователю ввести свой пароль при первой авторизации.

Каждый пользователь принадлежит минимум к одной или нескольким группам. (пользователи и группы в linux)

Группы:

Для разграничения прав в linux, помимо пользователей, существуют группы. Так же как и пользователь, группа обладает правам доступа к тем или иным каталогам, файлам, периферии (в системе есть зарезервированные группы).  Для каждого файла определён не только пользователь, но и группа. Группы группируют пользователей для предоставления одинаковых полномочий на какие-либо действия.

Каждой группе назначается идентификационный номер (group ID). Сокращённо GID, является уникальный идентификатором группы. Принадлежность пользователя к группе устанавливается администратором.

Просмотр пользователей

(пользователи и группы в linux) Вся вышеизложенная информация хранится в файле /etc/passwd. Чтобы посмотреть список пользователей нужно ввести команду:

# cat /etc/passwd

Каждый аккаунт занимает одну строку.  Вывод может быть следующим:

root:xD928Jhs7sH32:0:0:root:/root:/bin/bash
newuser:Xv8Q981g71oKK:1000:100:John Smith:/home/newuser:/bin/bash

Эта строки имеет следующий формат:

account:password:UID:GID:GECOS:directory:shell

где:

account — имя пользователя
password — зашифрованный пароль пользователя
UID — идентификационный номер пользователя
GID — идентификационный номер основной группы пользователя
GECOS — необязательное поле, используемое для указания дополнительной информации о пользователе (например, полное имя пользователя)
directory — домашний каталог ($HOME) пользователя
shell — командный интерпретатор пользователя (обычно /bin/sh)

Для просмотра списка пользователей которые находятся в данный момент времени в системе есть команда who.

Вывод может быть следующий:

newuser pts/0        2013-11-13 14:19 (:0)

Создание, управление и удаление пользователей

(пользователи и группы в linux)  При создании новых пользователей совершается последовательность определенных действий. Сначала заводится запись в файле /etc/passwd, где пользователю назначается уникальное имя, UID, GID и другая информация. UID должен быть больше 1000, а GID более 100, это связано с тем, что система резервирует маленькие значения под свои нужды. Также, создается каталог, устанавливаются права, помещаются файлы инициализации командной оболочки и модифицируются конфигурационные файлы.

Для того, чтобы не вводить эту информацию вручную, существует программа useradd (или adduser). Настройки этой программы хранятся в файле /etc/default/useradd.

# cat /etc/default/useradd

Вывод следующий:

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

В нем можно изменить параметры по умолчанию. Например, директорию для пользователей с /home на /home/user или интерпретатор с /bin/bash на /bin/sh.

Для создания нового пользователя воспользуемся командой useradd:

# useradd -m -g users -G audio,lp,optical,storage,video,wheel,games,power,scanner -s /bin/bash newuser

Расшифровка:

# useradd -m -g [основная группа] -G [список дополнительных групп] -s [командный интерпретатор] [имя пользователя]
  • -m — создаёт домашний каталог, вида /home/[имя пользователя].
  • -g — имя или номер основной группы пользователя.
  • -G — список дополнительных групп, в которые входит пользователь.
  • -s — определяет командную оболочку пользователя.

Для более детальной информации воспользуйтесь мануалом:

# man useradd

Командой chfn можно внести или изменить информацию учетной запеси пользователя (ФИО, рабочий телефон, рабочие координаты и.т.д)(username — имя пользователя).

# chfn [-f полное-имя][-о office][-p рабочий-телефон][-h домашний-телефон][-u][-v][username]

Для задания пароля используется команда passwd:

# passwd [username]

Далее, нам будут предложено ввести новый пароль и повторить его.

Если мы хотим заставить пользователя сменить пароль на свой при первом входе в систему нужно применить команду:

# chage -d 0 [username]

Более подробно о команде chage можно почитать в мануале, введите:

# man chage

Для того, чтобы удалить пользователя существует команда userdel

# userdel -r [username]

Параметр -r указывает на то, что следуют вмести с пользователем удалить домашнею директорию и почтовый ящик.

Управление группами

Для просмотра всех групп системы и каким пользователем они принадлежат нужно ввести следующее:

# cat /etc/group

Файл /etc/group определят группы в системе. Чтобы посмотреть в каких групах состоит пользователь нужно набрать:

# groups [username]

Команда id показывает более подробную информацию.

# id [username]

Для создание новой группы:

# groupadd [group]

Чтобы занести пользователя в группу:

# gpasswd -a [user] [group]

Вывод пользователя из группы:

# gpasswd -d [user] [group]

И для того, чтобы удалить группу, введем следующие:

# groupdel [group]

(пользователи и группы в linux)  На этом в принципе все, самое основное изложено.

  • Петр Лозовицкий

    Спасибо за доступное изложение материала!

    Поправьте, пожалуйста, описку: «группа обладает правам доступа»