Цель урока: Понять, почему постоянная работа под root - это опасно и непрофессионально. Научиться создавать нового пользователя для повседневных задач, давать ему права администратора через sudo и управлять группами пользователей.
Часть 1: Теория. Принцип наименьших привилегий
До сих пор мы работали под пользователем root. Это суперпользователь, которому разрешено абсолютно всё. Он может читать любой файл, изменять любую настройку и, что самое главное, удалить всю систему одной неосторожной командой (rm -rf /
).
Представьте, что root - это ключ от всех дверей в здании сразу, включая хранилище с деньгами и пульт управления электропитанием. Ходить с таким ключом каждый день для рутинных задач - огромный риск. Вы можете случайно открыть не ту дверь или, что еще хуже, этот ключ могут у вас украсть.
Поэтому в мире Linux действует принцип наименьших привилегий: каждый пользователь (и каждая программа) должен иметь ровно тот минимум прав, который необходим для выполнения его задач, и не более.
Почему это так важно?
-
Защита от ошибок: Работая под обычным пользователем, вы не сможете случайно удалить критически важный системный файл. Система просто скажет "Отказано в доступе". Это ваша главная страховка от опечаток.
-
Безопасность: Если злоумышленник каким-то образом получит доступ к вашему серверу, взломав аккаунт обычного пользователя, его возможности будут сильно ограничены. Он не сможет установить вредоносное ПО или изменить глобальные настройки. Взломать root - значит получить полный контроль над сервером.
-
Аудит и контроль: Когда несколько человек работают на сервере, важно знать, кто именно выполнил ту или иную административную команду. Если все сидят под root, это невозможно отследить.
Как же тогда выполнять задачи администратора?
Для этого существует команда sudo (сокращение от SuperUser DO - "сделать от имени суперпользователя"). Она позволяет доверенному пользователю выполнить одну конкретную команду с правами root.
-
Как это работает: Вы вводите sudo [команда]. Система просит вас ввести ваш собственный пароль (не пароль root), проверяет, есть ли у вас разрешение на использование sudo, и, если да, выполняет команду.
Это элегантное решение: вы работаете в безопасном режиме обычного пользователя и лишь на короткий миг "надеваете шляпу" администратора для выполнения конкретной задачи.
Часть 2: Практика. Команды для управления пользователями и группами
Внимание: Все команды в этом разделе мы пока выполняем из-под root, так как только он может создавать новых пользователей.
1. Создание пользователя: adduser
Существует две команды: useradd (низкоуровневая) и adduser (дружелюбная). Мы будем использовать adduser, потому что она интерактивна и делает за нас всю рутинную работу: создает домашний каталог, копирует базовые настройки и сразу предлагает задать пароль.
-
Команда: adduser имя_пользователя
-
Пример:
adduser alex
2. Предоставление прав sudo: usermod
Чтобы пользователь мог использовать sudo, его нужно добавить в специальную группу.
-
В дистрибутивах на основе Debian/Ubuntu эта группа называется sudo.
-
В дистрибутивах на основе Red Hat (CentOS, Rocky, AlmaLinux) эта группа называется wheel.
Команда usermod (modify user) позволяет изменять параметры существующего пользователя.
-
Команда: usermod -aG группа имя_пользователя
-
-
a
(append) - ОЧЕНЬ ВАЖНЫЙ КЛЮЧ! Он добавляет пользователя в новую группу, не удаляя из старых. Без него вы удалите пользователя из его основной группы. -
-G
- указывает дополнительную (supplementary) группу.
-
-
Пример для Ubuntu/Debian:
usermod -aG sudo alex
3. Просмотр групп пользователя: groups
-
Команда: groups имя_пользователя
-
Пример:
groups alex
4. Удаление пользователя: deluser
Как и adduser, deluser - это удобная команда для удаления.
-
Команда:
deluser имя_пользователя
- удаляет только пользователя. -
Команда с опцией:
deluser --remove-home имя_пользователя
- удаляет пользователя вместе с его домашним каталогом. Это наиболее частый вариант.
5. Управление группами
-
addgroup имя_группы - создать новую группу.
-
delgroup имя_группы - удалить группу.
Часть 3: Практический сценарий. Переезд из root в безопасный дом
Это самый важный практический блок на сегодня. Выполните его внимательно.
-
Подключитесь к вашему серверу под пользователем root, как вы делали это ранее.
-
Создадим нового пользователя. Давайте назовем его admin (вы можете выбрать любое другое имя, например, ваше).
adduser admin
Система запросит у вас новый пароль для этого пользователя. Введите надежный пароль и подтвердите его. Затем система предложит ввести дополнительную информацию (полное имя и т.д.) - можете просто нажимать Enter, оставляя поля пустыми. В конце введите Y для подтверждения.
-
Теперь дадим нашему новому пользователю admin право использовать sudo.
(Если у вас Ubuntu/Debian, используйте sudo. Если CentOS/Rocky, используйте wheel)usermod -aG sudo admin
-
Проверим, что всё получилось. Посмотрим, в каких группах состоит admin:
groups admin ``` Вы должны увидеть ответ вроде `admin : admin sudo`. Это значит, что он состоит в своей основной группе `admin` и в группе `sudo`.
-
Момент истины! Завершаем сессию root.
exit
-
Теперь подключитесь к серверу заново, но уже под новым пользователем admin.
-
В PuTTY в поле "Host Name" так же введите IP, но при подключении на запрос login as: введите admin и пароль, который вы для него создали.
-
В терминале macOS/Linux используйте команду: ssh admin@ip_адрес_сервера
-
-
Вы внутри! Обратите внимание, что командная строка изменилась. Вместо # в конце теперь знак $. Например:
admin@my-server:~$
. Это индикатор того, что вы работаете под обычным пользователем. Ваш домашний каталог теперь /home/admin. -
Проверим sudo. Попробуем выполнить команду, требующую прав администратора, например, посмотреть содержимое секретного каталога /root.
-
Сначала попробуем без sudo:
ls /root
Вы получите ошибку: ls: cannot open directory '/root': Permission denied. Это хорошо! Система вас защищает.
-
Теперь с sudo:
sudo ls /root
Система попросит: [sudo] password for admin:. Введите пароль пользователя admin. Если все верно, вы увидите содержимое каталога /root.
-
Поздравляю!
Теперь вы работаете на сервере правильно и безопасно: забыли про постоянный root и взяли в руки свой персональный аккаунт. В качестве «шляпы» для разовых административных задач вы используете sudo
- достаточно добавить его перед командой и ввести свой пароль.
Однако не стоит идеализировать «магическую» силу sudo
. По сути это просто префикс и проверка пароля - команда всё равно выполняется от имени root, и вы можете допустить ту же самую оплошность, просто добавив слово sudo
перед ней. Так что в чём же принципиальное отличие?
Всё сводится к привычке и дисциплине: кто-то любит каждый раз «надевать» sudo
и ощущать дополнительную ступень защиты, кто-то предпочитает сразу работать под тем пользователем, с которым ему удобнее. Важно лишь одно - осознавать свои действия и брать ответственность на себя.
В конечном счёте каждый сам решает, какой подход ему ближе: строгая изоляция прав через sudo
или иной рабочий стиль. Главное - понимать, что за любой командой стоят последствия, и выбирать способ работы, который поможет их минимизировать. Отдельные учётные записи заводят для разных задач: одна выдаётся конкретному пользователю для доступа к нужным ресурсам, а другая - исключительно для автоматизации резервного копирования.
Итоги урока и домашнее задание
-
Что мы освоили:
-
Почему работа под root опасна (принцип наименьших привилегий).
-
Что такое sudo и как оно обеспечивает безопасность.
-
Как создавать (adduser) и удалять (deluser) пользователей.
-
Как давать пользователю права администратора (usermod -aG sudo).
-
Самое главное: мы создали себе безопасного пользователя и перешли на работу под ним.
-
-
Ваше пятое задание:
-
Работая под вашим новым пользователем admin (или как вы его назвали), создайте (с помощью sudo) еще одного тестового пользователя, например, trainee.
-
Создайте (с помощью sudo) новую группу developers.
-
Добавьте (с помощью sudo) пользователя trainee в группу developers. Не добавляйте его в sudo!
-
Проверьте командой
groups trainee
, что он состоит в группах trainee и developers. -
Эксперимент: выйдите с сервера (exit) и зайдите под пользователем trainee. Попробуйте выполнить команду sudo apt update (стандартная команда для обновления списка пакетов). Вы должны увидеть сообщение, что trainee не находится в файле sudoers. Это и есть работа принципа наименьших привилегий в действии.
-
Зайдите обратно под своим основным пользователем admin.
-
Уберите за собой: удалите пользователя trainee вместе с его домашним каталогом и удалите группу developers (для всего этого понадобится sudo).
-
На следующем уроке мы изучим, как устанавливать, обновлять и удалять программное обеспечение с помощью менеджеров пакетов - это одна из самых сильных сторон Linux.
Перейти к просмотру - УРОК №6.
Промо-код: PROMO15 - скидка 15%!
Введите при оформлении первого заказа на сайте: Hosting-VDS.com