04. Управление пользователями и разрешениями в Ubuntu Server: подробное руководство

Управление пользователями, группами и разрешениями — одна из основополагающих задач администраторов Ubuntu Server. Настраиваете ли вы многопользовательскую среду или защищаете сервер, важно понимать, как создавать, изменять и администрировать учётные записи пользователей, группы и разрешения. Это руководство подробно рассматривает управление пользователями и разрешениями, с реальными примерами, выводами команд и рекомендациями.


Предыдущая статья:

01. Введение в Ubuntu Server – SysOSX: AI & Cloud

02. Как настроить первый сервер Ubuntu: руководство для начинающих – SysOSX: AI & Cloud

03. Освоение командной строки Linux для Ubuntu Server




Введение

Ubuntu Server — мощная платформа для размещения приложений, управления службами и организации многопользовательских сред. Освоив управление пользователями и разрешениями, вы сможете защитить сервер, эффективно контролировать доступ и предотвращать несанкционированные действия. Это руководство охватывает всё — от базового создания учётных записей до расширенных настроек разрешений, с подробными примерами.


Создание учётных записей пользователей и управление ими

Создание пользователя

Чтобы создать учётную запись пользователя в Ubuntu Server, используйте команду adduser. Эта команда интерактивна и запрашивает дополнительную информацию о пользователе.

Пример команды:

sudo adduser john

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

Adding user `john' ...
Adding new group `john' (1001) ...
Adding new user `john' (1001) with group `john' ...
Creating home directory `/home/john' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for john
Enter the new value, or press ENTER for the default
        Full Name []: John Doe
        Room Number []: 101
        Work Phone []: 555-1234
        Home Phone []: 555-5678
        Other []:
Is the information correct? [Y/n] Y

Это создаёт пользователя с именем john с домашним каталогом по адресу /home/john и присваивает ему уникальный идентификатор пользователя (UID).


Изменение пользователя

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

Изменение домашнего каталога:

sudo usermod -d /home/new_john john
sudo mv /home/john /home/new_john

Блокировка или разблокировка учётной записи пользователя:

  • Заблокируйте учётную запись: sudo passwd -l john
  • Разблокируйте учётную запись: sudo passwd -u john

Пример вывода (блокировка учётной записи):

passwd: password expiry information changed.


Удаление пользователя

Чтобы удалить пользователя, используйте команду deluser. Можно также удалить его домашний каталог и связанные файлы.

Пример команды:

sudo deluser --remove-home john

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

Looking for files to backup/remove ...
Removing files ...
Removing user `john' ...
Warning: group `john' has no more members.
Done.


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

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

Создание групп и управление ими

Чтобы создать группу, используйте команду addgroup.

Пример команды:

sudo addgroup developers

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

Adding group `developers' (GID 1002) ...
Done.

Чтобы удалить группу:

sudo delgroup developers

Добавление пользователей в группы

Чтобы добавить пользователя в группу, используйте команду usermod с параметром -aG.

Пример команды:

sudo usermod -aG developers john

Проверка членства в группах:

groups john

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

john : john developers

Это показывает, что john принадлежит к группам john и developers.


Разрешения для файлов и каталогов

Разрешения файлов Linux крайне важны для контроля доступа к файлам и каталогам. Разрешения определяются для трёх категорий: Владелец, Группа, и Другие.

Типы разрешений

У каждой категории есть три типа разрешений:

  • Чтение (r): позволяет просматривать содержимое файлов или выводить список содержимого каталогов.
  • Запись (w): позволяет изменять содержимое файлов или создавать/удалять файлы в каталоге.
  • Выполнение (x): позволяет запускать исполняемые файлы или получать доступ к каталогам.

Пример:

Используйте ls -l чтобы просмотреть разрешения файлов:

ls -l /home/john

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

-rw-r--r-- 1 john john 4096 Mar 21 14:00 file.txt

  • rw-: владелец (john) имеет разрешения на чтение и запись.
  • r--: группа (john) имеет разрешения только на чтение.
  • r--: другие имеют разрешения только на чтение.

Изменение разрешений

Используйте команду chmod, чтобы изменить разрешения.

Примеры команд:

  • Предоставьте разрешение на выполнение владельцу: chmod u+x file.txt
  • Удалите разрешение на запись для других: chmod o-w file.txt

Использование числовых значений:

Разрешения также можно задавать с помощью числовых значений:

chmod 755 file.txt: полные разрешения для владельца, чтение/выполнение для группы и других.


Числовые разрешения (755, 777, 744)

Разрешения Linux можно представить численно, где каждая цифра соответствует определённому уровню разрешений:

Структура числовых разрешений:

Каждое числовое разрешение состоит из трёх цифр:

  • Первая цифра: разрешения для владельца.
  • Вторая цифра: разрешения для группы.
  • Третья цифра: разрешения для других.

Каждая цифра вычисляется на основе следующих значений:

  • 4: чтение (r)
  • 2: запись (w)
  • 1: выполнение (x)

Сумма этих значений определяет уровень разрешений для каждой категории.

Распространённые числовые разрешения:

  1. 777: полные разрешения для всех (чтение, запись, выполнение).
    • Владелец: rwx
    • Группа: rwx
    • Другие: rwx
    • Пример использования: редко используется по соображениям безопасности, но может применяться к временным каталогам, таким как /tmp.
  2. 755: полные разрешения для владельца, разрешения на чтение и выполнение для группы и других.
    • Владелец: rwx
    • Группа: r-x
    • Другие: r-x
    • Пример использования: часто используется для исполняемых файлов или каталогов.
  3. 744: полные разрешения для владельца, только чтение для группы и других.
    • Владелец: rwx
    • Группа: r--
    • Другие: r--
    • Пример использования: часто используется для личных файлов.

Пример:

Чтобы установить разрешения для скрипта на 755:

chmod 755 script.sh

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

-rwxr-xr-x 1 john john 4096 Mar 21 14:00 script.sh

Управление владельцами

Измените владельца с помощью команды chown.

Пример команды:

sudo chown john:developers file.txt

Это устанавливает владельца john и группу developers.

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

-rw-r--r-- 1 john developers 4096 Mar 21 14:00 file.txt


Использование Sudo для повышения привилегий

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

Пример команды:

sudo usermod -aG sudo john

Проверка доступа Sudo:

sudo -l -U john

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

User john may run the following commands on this host:
    (ALL : ALL) ALL

Рекомендации по защите учётных записей пользователей

  • Обеспечьте соблюдение строгих парольных политик:
    Используйте passwd чтобы установить срок действия пароля: sudo passwd -e john
  • Ограничьте доступ Sudo:
    Предоставляйте привилегии sudo только доверенным пользователям.
  • Отключите вход под root:
    Отредактируйте файл конфигурации SSH:
sudo nano /etc/ssh/sshd_config 

Установите:

PermitRootLogin no
  • Используйте SSH-ключи для аутентификации:
    Замените вход по паролю на SSH-ключи.
  • Отслеживайте активность пользователей:
    Используйте last или who чтобы отслеживать активность входа:
last

Объяснение вывода

uadmin   pts/1   192.168.255.48   Fri Mar 21 13:55   still logged in
uadmin   pts/0   192.168.255.48   Fri Mar 21 13:54   still logged in
uadmin   pts/1   192.168.255.48   Fri Mar 21 01:49 - 08:19  (06:29)
uadmin   pts/0   192.168.255.48   Fri Mar 21 00:53 - 08:19  (07:26)
reboot   system boot   6.8.0-1021-azure   Fri Mar 21 00:22   still running


Построчный анализ

Вход пользователя: uadmin pts/1 192.168.255.48 Fri Mar 21 13:55 still logged in

  • uadmin: имя пользователя, выполнившего вход.
  • pts/1: сеанс псевдотерминала, использованный для входа. Псевдотерминалы (pts) — это виртуальные терминалы, обычно создаваемые при входе пользователей через SSH.
  • 192.168.255.48: IP-адрес удалённой машины, с которой подключился пользователь.
  • Fri Mar 21 13:55: дата и время входа пользователя.
  • still logged in: указывает, что пользователь в данный момент вошёл в систему и активен.
СтолбецЗначение
Имя пользователяИмя пользователя или события (uadmin, reboot).
ТерминалСеанс псевдотерминала (pts/X) или системное событие (system boot).
Удалённый хост/IPIP-адрес или имя хоста удалённой машины, инициирующей подключение.
Дата/время входаДата и время начала входа или события.
Время выходаДата и время завершения сеанса (если применимо).
ДлительностьОбщее время длительности сеанса (если применимо).
Статус сеансаТекущий статус сеанса (still logged in, still running).

Дополнительные команды для анализа

  • Показать пользователей, вошедших в систему: who
  • Пример вывода:
uadmin pts/1 2023-03-21 13:55 (192.168.255.48) 
uadmin pts/0 2023-03-21 13:54 (192.168.255.48)
  • Проверить время работы системы: uptime
  • Пример вывода:
14:15:32 up 13:53, 2 users, load average: 0.10, 0.12, 0.15

Заключение

Управление пользователями, группами и разрешениями — фундаментальный навык администраторов Ubuntu Server. Освоив эти задачи, вы сможете защитить сервер, предотвратить несанкционированный доступ и повысить эффективность работы.


Следующее руководство: Основы сетей для Ubuntu Server

В следующем руководстве мы рассмотрим  основы сетей для Ubuntu Server, включая настройку сетевых интерфейсов, установку статических IP-адресов, устранение неполадок сетевого подключения и использование netplan Ubuntu для сетевых задач. Следите за новостями, чтобы получить практические рекомендации по оптимизации сетевой конфигурации сервера.

7 thoughts on “04. Managing Users and Permissions on Ubuntu Server: A Comprehensive Guide”

Оставить комментарий