Управление пользователями нужно для обеспечения безопасности системы. Неэффективная настройка доступа часто приводит к тому, что система оказывается под угрозой.
Мы расскажем, как защитить свой сервер с помощью простых и эффективных методов управления учетными записями. Инструкция будет полезна начинающим системным администраторам и другим IT-специалистам.
В Ubuntu права пользователя влияют на безопасность системы в целом. Если вы настроите их правильно — злоумышленникам будет сложнее получить доступ к ресурсам.
cloud
С помощью команд можно управлять доступом к системе. Они предназначены для создания круга лиц, которые будут читать, редактировать или исполнять записанные на сервер данные. Существуют две пользовательские единицы в Ubuntu — пользователь и группа. Попробуем создать их, а затем удалить.
Пользователь — это отдельный аккаунт, который может выполнять команды, иметь доступ к данным системы.
Есть несколько способов создания юзера. Самый простой:
sudo adduser имя_пользователя
Система попросит создать пароль.
Заблокировать юзера можно этой командой в консоли:
sudo usermod -L имя_пользователя
Если в дальнейшем вам нужно будет его разблокировать, то вместо флага -L
напишите -U
.
Для удаления нужен другой синтаксис:
sudo userdel -r имя_пользователя
Флаг -r
удаляет также домашний каталог юзера и все принадлежащие ему данные. Этот шаг необратим. Функция аналогична форматированию пользовательских папок. Если хотите сохранить всю информацию, которая принадлежала пользователю, то уберите флаг -r
.
Группа — набор из одного или нескольких аккаунтов, объединенных для совместного доступа к данным системы.
Для создания новой группы введите в консоли команду ниже, заменив имя_группы
на нужное вам имя:
sudo addgroup имя_группы
Также вы можете проверить принадлежность юзера к группам, используя:
groups имя_пользователя
Чтобы добавить аккаунт в группу, используйте:
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.
Каждый процесс (запущенная программа) в системе ассоциируется с идентификатором аккаунта, который указывает на юзера, инициировавшего процесс.
Это позволяет отслеживать и управлять процессами, применять политики безопасности на уровне процессов и определять происхождение различных действий в системе.
По умолчанию список 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 "2023-12-30" имя_пользователя
По истечении срока юзер не сможет войти в аккаунт.
В Ubuntu root-права пользователю по умолчанию выдаются только на 15 минут. Это продумано для того, чтобы юзер не представлял потенциальной опасности для системы.
Sudo — это команда, позволяющая юзеру использовать привилегии root.
Основная идея заключается в том, чтобы предоставить юзеру как можно меньше привилегий и при этом позволить ему выполнить поставленную задачу. Здесь su
означает «заменять», а do
— «выполнить».
Утилита предназначена для управления правами учетных записей на основе файла конфигурации системы. Команда позволяет юзерам запускать программы с привилегиями суперпользователя.
В этом разделе мы рассмотрим, как правильно и безопасно разделять привилегии root, уделив особое внимание редактированию файла /etc/sudoers
.
Существует два основных способа, чтобы в Ubuntu дать права пользователю:
Эти способы дают постоянные права root. Таким образом, помимо администратора исполнять функции суперпользователя смогут и другие.
Sudoers — это файл, который определяет, кто имеет право доступа к sudo
. Через него можно предоставить пользователю права суперпользователя в Ubuntu. Юзер с sudo
имеет административные привилегии, то есть возможность редактировать файлы, которые не могут быть отредактированы через обычный аккаунт.
Суперпользователь может:
Предполагается, что вы используете nano
в качестве текстового редактора по умолчанию. Это важно для данной статьи, в противном случае вам придется изменить подход в соответствии с выбранным вами текстовым редактором.
Неправильный синтаксис /etc/sudoers
может привести к тому, что система сломается и получить повышенные привилегии будет невозможно. Важно использовать команду visudo
для редактирования. Утилита проверяет правильность синтаксиса кода при исполнении.
Чтобы отредактировать файл sudoers
, достаточно выполнить:
sudo visudo
После исполнения вы увидите это:
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
root ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
#includedir /etc/sudoers.d
Чтобы в Ubuntu создать пользователя с правами root, достаточно добавить существующего пользователя его в sudoers:
имя_пользователя ALL=(ALL) NOPASSWD:ALL
Поместите сюда желаемого юзера. Будьте внимательны, нужно избежать опечаток. Затем сохраните файл. Так как мы используем nano
, то для сохранения файла нужно нажать CTRL + X, затем Y, а затем ENTER — и файл будет сохранен.
Также есть одна интересная команда:
sudo su
Она представляет собой комбинацию sudo
и su
, где su
— означает «заменить юзера».
Используя sudo su
, вы можете переключиться на пользователя root
. Следовательно, все действия в рамках текущего сеанса будут выполняться с правами root
.
Тогда вам не нужно будет перед каждой новой командой писать sudo
. Перед использованием в Ubuntu нужно создать пользователя с правами sudo
.
Следующим способом можно создать группу юзеров, к которой позже мы сможем обращаться:
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 -i
система может запросить ваш пароль, чтобы подтвердить вашу личность и убедиться, что у вас есть права sudo
, которые обычно предоставляются администраторам или юзерам.
sudo -s
запускает оболочку с правами суперпользователя, sudo -i
также получает среду пользователя root
. Это удобно, если вам нужно запускать последовательные команды с привилегиями суперпользователя в текущей оболочке.
Также можно в Ubuntu дать права пользователю на работу с папками. Существует три варианта групп разрешений. К ним относятся:
Теперь рассмотрим шаблоны команд для выдачи прав доступа к файлам и выполним типовые задачи, которые пригодятся в системном администрировании.
Чтобы добавить разрешение, введите:
chmod +rwx имя_файла
Чтобы убрать:
chmod -rwx имя_файла
Разрешить исполнение:
chmod +x имя_файла
Удалить права на запись:
chmod -wx
По приведенным примерам видно, что r
означает чтение, w
— запись, а x
— выполнение.
Разберем каждый тип по-отдельности:
execute
может выполнять файл или просматривать каталог. Команда для изменения прав доступа к каталогам для владельцев групп аналогична, но добавьте 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
используются цифры:
По сути, вы складываете числа в зависимости от того, какой уровень прав вы хотите предоставить.
Номера разрешений следующие:
Например:
chmod 777 имя_директории
— предоставляет права на чтение, запись и выполнение для всех.
chmod 700 имя_файла
— даст права на чтение, запись и выполнение только для владельца.
chmod 327 foldername
— даст права на запись и выполнение (3) для пользователя, w (2) для группы, и чтение, запись и выполнение для прочих пользователей.
Подготовили для вас выгодные тарифы на облачные серверы
В этой инструкции мы рассмотрели принципы регулирования прав доступа в Ubuntu. Также эти правила работают в других популярных Linux-системах. С помощью этой статьи вы научитесь создавать юзеров, группы и контролировать их доступ к файлам и привилегиям root, а также проверять права пользователя в Ubuntu.