Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

Разграничение прав пользователей в Ubuntu

19567
11 минут чтения
Средний рейтинг статьи: 3.7

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

Мы расскажем, как защитить свой сервер с помощью простых и эффективных методов управления учетными записями. Инструкция будет полезна начинающим системным администраторам и другим IT-специалистам. 

В Ubuntu права пользователя влияют на безопасность системы в целом. Если вы настроите их правильно, злоумышленникам будет сложнее получить доступ к ресурсам.

Миграция в Timeweb Cloud

Перенесем вашу инфраструктуру в облако — быстро,
безопасно и с гарантией результата.

Предоставим грант до 1 000 000 ₽ на облачную
инфраструктуру и возьмем на себя весь процесс.

Основные пользовательские настройки

С помощью команд можно управлять доступом к системе. Они предназначены для создания круга лиц, которые будут читать, редактировать или исполнять записанные на сервер данные. Существуют две пользовательские единицы в Ubuntu — пользователь и группа. Попробуем создать их, а затем удалить.

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

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

Есть несколько способов создания юзера. Самый простой:

    
sudo adduser имя_пользователя

Система попросит создать пароль. 

    
New password: Retype new password: passwd: password updated successfully

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

    
Changing the user information for test Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y info: Adding new user `test' to supplemental / extra groups `users' ... info: Adding user `test' to group `users' ...

На этом создание пользователя завершено.

Как заблокировать и удалить пользователя

Заблокировать юзера можно этой командой в консоли:

    
sudo usermod -L имя_пользователя

Если в дальнейшем вам нужно будет его разблокировать, то вместо флага -L напишите -U.

Для удаления нужен другой синтаксис:

    
sudo userdel -r имя_пользователя

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

Создать группу

Группа — набор из одного или нескольких аккаунтов, объединенных для совместного доступа к данным системы.

Для создания новой группы введите в консоли команду ниже, заменив имя_группы на нужное вам имя:

    
sudo addgroup имя_группы

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

    
sudo usermod -aG имя_группы имя_пользователя

Здесь -a означает «добавить», -G указывает на группу.

Как удалить группу

Чтобы удалить группу в Ubuntu, нужно ввести в консоль:

    
sudo delgroup имя_группы

Список всех юзеров и групп

Таблицу с учетными записями системы можно получить, введя в консоль: 

    
cat /etc/passwd 

Команда cat используется для отображения аккаунтов, содержащихся в файле passwd, он находится в системной папке /etc

Аналогично, ту же команду можно применить и для групп. Чтобы ее исполнить, введите в консоль:

    
cat /etc/group

Эта команда возвращает на экран все записи, которые содержатся в group. По умолчанию, там расположены все группы.

Просмотр всех групп пользователя и его прав

В файле /etc/group есть информация обо всех группах в системе. Также здесь содержится список юзеров с принадлежностью к каждой группе.

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

    
groups имя_пользователя

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

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

Поменять пароль юзеру

Чтобы изменить пароль юзеру, нужно ввести:

    
sudo passwd имя_пользователя

После запуска passwd вам нужно будет придумать и ввести новый пароль для указанного аккаунта. Введите новый пароль и нажмите Enter.

Usermod и ID

Каждый процесс (запущенная программа) в системе ассоциируется с идентификатором аккаунта, который указывает на юзера, инициировавшего процесс. 

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

По умолчанию список User ID (UID) от 0 до 999 зарезервирован для системных целей, а когда мы создаем учетную запись, она получает идентификатор от 1000.

Для проверки свойств учетной записи нужно ввести:

    
grep имя_пользователя /etc/passwd

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

    
имя_пользователя:x:1001:1001: :/home/имя_пользователя:/bin/bash

Чтобы сменить идентификатор, нужно ввести:

    
usermod -u 2025 имя_пользователя

В таком случае UID сменится на 2025.

Для установки комментария к учетной записи можно ввести:

    
usermod -c "Ненадежный работник" имя_пользователя

Также можно создать и изменить домашний каталог с помощью:

    
mkdir -p /catalog1/catalog
    
usermod -d /catalog1/catalog имя_пользователя

Для изменения оболочки входа в систему:

    
usermod -s /sbin/nologin имя_пользователя

Если установить оболочку /sbin/nologin для учетной записи пользователя, то он не сможет войти в оболочку bash. В таком случае он не сможет открыть терминал.

Для установки срока действия пароля:

    
usermod -e "2026-12-30" имя_пользователя

По истечении срока юзер не сможет войти в аккаунт. 

Файл sudoers и права root

В Ubuntu root-права пользователю по умолчанию выдаются только на 15 минут. Это продумано для того, чтобы юзер не представлял потенциальной опасности для системы. 

sudo — это команда, позволяющая юзеру использовать привилегии root.

Основная идея заключается в том, чтобы предоставить юзеру как можно меньше привилегий и при этом позволить ему выполнить поставленную задачу. Здесь su означает‎ «заменять», а do — «выполнить». 

Утилита предназначена для управления правами учетных записей на основе файла конфигурации системы. Команда позволяет юзерам запускать программы с привилегиями суперпользователя. 

В этом разделе мы рассмотрим, как правильно и безопасно разделять привилегии root, уделив особое внимание редактированию файла /etc/sudoers.

Способы дать root-права

Существует два основных способа, чтобы в Ubuntu дать права пользователю:

  • Добавить его в группу sudo. Таким образом он сможет исполнять команды с повышенными привилегиями. 
  • Редактировать файл sudoers. Нужно внести изменения в системный файл и прописать привилегии. 

Эти способы дают постоянные права root. Таким образом, помимо администратора исполнять функции суперпользователя смогут и другие. 

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

Sudoers — это файл, который определяет, кто имеет право доступа к sudo. Через него можно предоставить пользователю права суперпользователя в Ubuntu. Юзер с sudo имеет административные привилегии, то есть возможность редактировать файлы, которые не могут быть отредактированы через обычный аккаунт.

Суперпользователь может: 

  • Изменять системные файлы.
  • Редактировать системные настройки.
  • Устанавливать и удалять программы.

Редактировать файл sudoers вручную не рекомендуется. Неправильный синтаксис может привести к тому, что система сломается и получить повышенные привилегии будет невозможно. Важно использовать команду visudo для редактирования. Утилита проверяет правильность синтаксиса кода при исполнении. 

Чтобы добавить пользователя в sudoers, выполните:

    
sudo visudo -f /etc/sudoers.d/имя_пользователя

После чего добавьте строку:

    
имя_пользователя ALL=(ALL) NOPASSWD:ALL

Сохраните изменения и выйдите: CTRL + X, затем Y, а затем ENTER.

Заменить юзера на суперпользователя

Также есть одна интересная команда:

    
sudo su

Она представляет собой комбинацию sudo и su, где su — означает «заменить юзера». 

Используя sudo su, вы можете переключиться на пользователя root. Следовательно, все действия в рамках текущего сеанса будут выполняться с правами root.

Тогда вам не нужно будет перед каждой новой командой писать sudo. Перед использованием в Ubuntu нужно создать пользователя с правами sudo

Alias

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

    
User_Alias (название) = [имя_пользователя_1, имя_пользователя_2…]

В файле sudoers вы можете использовать директиву Alias для создания псевдонимов для групп хостов, пользователей, команд и других параметров. Алиасы позволяют сократить и упростить правила доступа.

Пример использования директивы Alias в файле sudoers:

    
User_Alias ADMINS = user12, user13 User_Alias WEBADMINS = www-data ADMINS ALL=(ALL:ALL) ALL WEBADMINS ALL=(www-data) /usr/sbin/apachectl

В этом примере:

  • Сначала определили два алиаса: ADMINS и WEBADMINS. ADMINS содержит двух пользователей, а WEBADMINS содержит группу пользователей www-data.
  • Затем устанавливаются правила доступа. ADMINS означает, что все пользователи, входящие в группу ADMINS, имеют разрешение выполнять любые команды на всех хостах. WEBADMINS позволяет пользователям из группы WEBADMINS выполнять только команду /usr/sbin/apachectl от имени пользователя www-data.

Интерактивный и неинтерактивный sudo

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

sudo -s запускает оболочку с правами суперпользователя, sudo -i также получает среду пользователя root. Это удобно, если вам нужно запускать последовательные команды с привилегиями суперпользователя в текущей оболочке.

Управление доступом к файлам

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

  • Владельцы. эти разрешения будут применяться только к владельцам и не будут влиять на другие группы.
  • Группы. Вы можете назначить определенные разрешения, которые будут действовать только для нее.
  • Остальные пользователи (не владельцы и не участники группы). Эти разрешения будут применяться ко всем учетным записям, поэтому они представляют наибольший риск для безопасности и должны назначаться с осторожностью.

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

Чтобы добавить разрешение, введите:

    
chmod +rwx имя_файла

Чтобы убрать:

    
chmod -rwx имя_файла

Разрешить исполнение:

    
chmod +x имя_файла

Удалить права на запись:

    
chmod -wx 

По приведенным примерам видно, что r означает чтение, w — запись, а x — выполнение. 

Разберем каждый тип по-отдельности:

  • Чтение (r). Позволяет учетной записи или группе просматривать файл.
  • Запись (w). Разрешает аккаунту записывать или изменять файл или каталог.
  • Исполнение (x). Аккаунт или группа с правами execute может выполнять файл или просматривать каталог.  

Начинающим пользователям может быть полезен онлайн-сервис chmod-calculator.com, который позволит легко собрать нужную комбинацию прав.

Команда для изменения прав доступа к каталогам для владельцев групп аналогична, но добавьте g для группы или o для аккаунтов.

Посмотрим на примерах. Разрешим запись для групп:

    
chmod g+w имя_файла

Отнимем у групп возможность записывать и исполнять каталог:

    
chmod g-wx имя_каталога

Дадим аккаунтам возможность записи каталога:

    
chmod o+w имя_каталога

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

    
chmod o-rwx имя_каталога

Чтобы изменить права доступа к каталогу для всех, используйте u для пользователей, g для группы, o для остальных, а также ug — если меняем права пользователя и группы или a (для всех).

Здесь разрешаем чтение, запись и выполнение для всех:

    
chmod ugo+rwx 

Даем право только на чтение для всех:

    
chmod a=r имя_каталога

Выполнив эти команды, можно изменить принадлежность каталогов: 

    
chgrp имя_группы имя_каталога

Обратите внимание, что перед назначением групп файлам и каталогам необходимо выйти из группы. 

Еще одна полезная команда — изменение владельца файлов и каталогов:

    
chown имя_пользователя имя_файла

Эти команды меняют владельца, но все файлы и подкаталоги по-прежнему принадлежат первоначальному владельцу.

Изменить владельца и группу рекурсивно для всех файлов и подкаталогов, находящихся в указанном каталоге, можно командой:

    
chown -R имя_пользователя:имя_группы /путь/к/каталогу

R указывает на рекурсивное изменение владельца и группы для всех файлов и подкаталогов внутри указанного каталога.

Изменить разрешения можно в числовом коде, для этого вместо r, w или x используются цифры:

  • 0 = Нет разрешения.
  • 1 = Исполнение.
  • 2 = Запись.
  • 4 = Чтение.

По сути, вы складываете числа в зависимости от того, какой уровень прав вы хотите предоставить.

Номера разрешений следующие:

  • 0 = нет
  • 1 = --x
  • 2 = -w-
  • 3 = -wx
  • 4 = r-
  • 5 = r-x
  • 6 = rw-
  • 7 = rwx

Например:

    
chmod 777 имя_директории

— предоставляет права на чтение, запись и выполнение для всех.

    
chmod 700 имя_файла

— даст права на чтение, запись и выполнение только для владельца.

    
chmod 327 foldername 

— даст права на запись и выполнение (3) для пользователя, w (2) для группы, и чтение, запись и выполнение для прочих пользователей.

Подготовили для вас выгодные тарифы на облачные серверы

Cloud MSK 15

477 ₽/мес

Процессор
1 x 3.3 ГГц
Память
1 ГБ
NVMe
15 ГБ
Канал
1 Гбит/с
Публичный IP
Cloud MSK 30

657 ₽/мес

Процессор
1 x 3.3 ГГц
Память
2 ГБ
NVMe
30 ГБ
Канал
1 Гбит/с
Публичный IP

Итог

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

19567
11 минут чтения
Средний рейтинг статьи: 3.7

Читайте также

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server
Пока нет комментариев