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

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

Введение

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

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

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

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

Сначала создадим нового пользователя с именем alice. Мы будем использовать команду useradd с опцией -m, которая указывает системе создать домашний каталог для пользователя.

sudo useradd -m alice

Далее, каждая учетная запись пользователя должна иметь пароль. Используйте команду passwd для установки пароля для alice. Вам будет предложено ввести и подтвердить новый пароль.

sudo passwd alice

Для этой лаборатории вы можете ввести простой пароль, например password. Убедитесь, что вы ввели один и тот же пароль дважды — если они не совпадут, вы увидите ошибку и вам придется попробовать снова.

Чтобы убедиться, что пользователь alice создан, вы можете проверить файл /etc/passwd, который содержит информацию обо всех учетных записях пользователей.

grep alice /etc/passwd

Вы должны увидеть строку вывода, содержащую сведения о пользователе alice.

alice:x:5001:5001::/home/alice:/bin/sh

Теперь создадим новую группу с именем developers. Для этого мы используем команду groupadd.

sudo groupadd developers

Чтобы проверить создание группы, вы можете проверить файл /etc/group.

grep developers /etc/group

Вывод должен показать новую группу.

developers:x:5003:

Наконец, добавим нашего нового пользователя alice в группу developers. Мы используем команду usermod с опциями -aG. -a означает "добавить" (append), а -G указывает группу (или группы). Важно использовать -a, чтобы не удалить пользователя из других групп, к которым он может принадлежать.

sudo usermod -aG developers alice

Чтобы подтвердить, что alice теперь является членом группы developers, используйте команду groups.

groups alice

Вывод перечислит все группы, в которые входит alice, и теперь там должна быть developers.

alice : alice developers

Настройка прав доступа к файлам и каталогам (chmod, chown)

В этом шаге вы научитесь управлять разрешениями для файлов и каталогов с помощью команд chmod и chown. Это необходимо для контроля того, кто может читать, записывать или выполнять файлы в вашей системе. Мы будем работать с файлом, расположенным по адресу ~/project/reports/quarterly.txt.

Сначала давайте рассмотрим текущего владельца и разрешения файла с помощью команды ls -l.

ls -l reports/quarterly.txt

Вывод будет выглядеть примерно так, показывая, что файл принадлежит пользователю и группе labex.

-rw-rw-r-- 1 labex labex 20 Aug  5 10:34 reports/quarterly.txt

Теперь давайте изменим владельца этого файла. Мы сделаем пользователя alice владельцем, а группу developers — групповым владельцем. Для этого мы используем команду chown. Синтаксис: chown user:group filename.

sudo chown alice:developers reports/quarterly.txt

Проверим изменения, снова выполнив ls -l.

ls -l reports/quarterly.txt

Вывод теперь показывает нового владельца и группу.

-rw-rw-r-- 1 alice developers 20 Aug  5 10:34 reports/quarterly.txt

Далее мы изменим разрешения файла с помощью команды chmod. Мы хотим установить следующие разрешения:

  • Владелец (alice) имеет права на чтение и запись (rw-).
  • Группа (developers) имеет права только на чтение (r--).
  • Остальные не имеют никаких прав (---).

В восьмеричной (числовой) нотации чтение — это 4, запись — 2, а выполнение — 1. Таким образом, rw- равно 4+2=6, r-- равно 4, а --- равно 0. Это дает нам код разрешений 640.

Применим эти разрешения.

sudo chmod 640 reports/quarterly.txt

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

ls -l reports/quarterly.txt

Вывод теперь должен отражать новые разрешения -rw-r-----.

-rw-r----- 1 alice developers 20 Aug  5 10:34 reports/quarterly.txt

Реализация Sudo для управления привилегированным доступом

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

Конфигурация sudo хранится в файле /etc/sudoers. Самый безопасный способ редактирования этого файла — использование команды visudo, которая блокирует файл и проверяет наличие синтаксических ошибок перед сохранением.

Предоставим пользователю alice разрешение на выполнение команды apt update без необходимости ввода пароля.

Откройте файл sudoers для редактирования:

sudo EDITOR=nano visudo

Это откроет файл в текстовом редакторе (например, nano). Прокрутите до конца файла и добавьте следующую строку:

alice ALL=(ALL) NOPASSWD: /usr/bin/apt update

Эта строка означает: пользователь alice на ALL хостах может выполнять команды от имени ALL пользователей ((ALL)) без пароля (NOPASSWD:) для указанной команды /usr/bin/apt update.

После добавления строки сохраните и выйдите из редактора. В nano это можно сделать, нажав Ctrl+O, затем Enter для подтверждения имени файла и Ctrl+X для выхода.

Теперь протестируем новое правило. Нам нужно переключиться на учетную запись пользователя alice.

sudo su - alice

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

sudo /usr/bin/apt update

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

Далее попробуем выполнить команду, которую alice не имеет права запускать с помощью sudo, например apt upgrade.

sudo /usr/bin/apt upgrade

Эта команда завершится ошибкой, и вы увидите сообщение [sudo] password for alice:, указывающее, что пользователю alice не разрешено выполнять эту команду.

[sudo] password for alice:

Нажмите Ctrl+C, чтобы выйти из команды.

Это подтверждает, что наше правило sudo работает должным образом. Теперь вернитесь к вашему исходному пользователю labex.

exit

Анализ логов Sudo для отслеживания активности привилегированного доступа

В этом шаге вы научитесь просматривать системные журналы для мониторинга привилегированного доступа. Аудит использования sudo является критически важной практикой безопасности для отслеживания того, кто и когда запускает команды от имени root.

В системах на базе Debian, таких как Ubuntu, команды sudo записываются в файл /var/log/auth.log. Этот файл защищен, поэтому для его чтения вам потребуется использовать sudo.

Мы можем использовать команду grep для фильтрации журнала и поиска записей, связанных с командами sudo, выполненными пользователем alice на предыдущем шаге.

Выполните следующую команду для поиска в журнале авторизации:

sudo grep 'sudo.*alice' /var/log/auth.log

Вывод покажет несколько строк. Вы сможете идентифицировать журналы как для успешных, так и для неудачных попыток sudo.

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

... labex-vm sudo:    alice : TTY=pts/0 ; PWD=/home/alice ; USER=root ; COMMAND=/usr/bin/apt update

Неудачная попытка также будет записана в журнал, четко указывая, что команда не разрешена:

... labex-vm sudo:    alice : user NOT allowed to execute /usr/bin/apt upgrade on labex-vm ; TTY=pts/0 ; PWD=/home/alice ; USER=root ; COMMAND=/usr/bin/apt upgrade

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

Резюме

Поздравляем с завершением лабораторной работы!

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

Вы научились:

  • Создавать новых пользователей и группы с помощью useradd и groupadd.
  • Изменять владельца файлов с помощью chown и права доступа с помощью chmod.
  • Реализовывать детальное управление привилегированным доступом с помощью sudo и команды visudo.
  • Аудировать активность sudo путем просмотра системных журналов в /var/log/auth.log.

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