Главная > Управление пакетами и системой > sudo

Руководство по команде sudo: выполнение команд с правами администратора

`sudo` (сокращение от substitute user do или superuser do) — это инструмент, который позволяет обычным пользователям запускать программы с правами другого пользователя (в основном, пользователя root) в операционных системах на основе Linux и Unix. Это обеспечивает возможность выполнения управленческих задач, сохраняя безопасность системы, что гораздо безопаснее, чем выполнение всех задач непосредственно от имени учетной записи root. В этом руководстве вы узнаете основные способы использования `sudo` и важные соображения по безопасности.

Обзор sudo

В системах Linux пользователь root имеет все права. Однако выполнение всех задач от имени root может быть рискованным, поскольку это может привести к серьезным повреждениям системы. `sudo` — это важный механизм безопасности, который временно предоставляет обычным пользователям необходимые административные права, минимизируя риски безопасности и позволяя управлять системой.

Как работает sudo

`sudo` запрашивает у пользователя пароль (ваш собственный пароль, а не пароль root) при выполнении команды `sudo`, и если этот пароль правильный, выполняет соответствующую команду с правами root или другого пользователя в соответствии с правилами, определенными в файле `sudoers`. После авторизации вы можете использовать `sudo` без повторного ввода пароля в течение определенного времени (по умолчанию 5 минут).

Основные функции sudo

  • **Укрепление безопасности**: предотвращает необходимость входа в учетную запись root, снижая риски безопасности.
  • **Отслеживание ответственности**: все команды, выполненные через `sudo`, записываются в журнал, что позволяет отслеживать, кто и когда выполнил какую-либо административную команду.
  • **Детализированный контроль прав**: файл `sudoers` позволяет точно контролировать, какие команды могут выполняться с правами root конкретными пользователями или группами.
  • **Упрощение повторного ввода пароля**: после авторизации вы можете использовать `sudo` в течение определенного времени без ввода пароля, что удобно.

🔑 Файл sudoers

/etc/sudoers

Все настройки прав для `sudo` определяются в файле `/etc/sudoers`. Этот файл очень чувствителен, поэтому **обязательно используйте команду `visudo` для редактирования.** `visudo` автоматически проверяет синтаксис, предотвращая сбой функции `sudo` из-за неверных настроек.

Основные параметры команды sudo

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

1. Основное использование

2. Параметры, связанные с пользователем и оболочкой

3. Параметры, связанные с аутентификацией и списком

Сгенерированная команда:

Комбинируйте команды.

Описание:

`sudo` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Настройки файла sudoers (использование visudo)

`sudo` права управляются файлом `/etc/sudoers`. Вместо того чтобы редактировать этот файл напрямую, его нужно безопасно редактировать с помощью команды `visudo`. `visudo` проверяет синтаксис, предотвращая повреждение функции `sudo` из-за ошибок.

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

sudo visudo

Безопасно редактирует файл `sudoers` с правами root. Основным редактором может быть `vi`.

Общий формат файла sudoers

Элементы файла `sudoers` определяются в формате `User Host=(RunAs) NOPASSWD: Command`. Наиболее распространенная настройка позволяет пользователям, входящим в определенную группу, выполнять все команды с правами `sudo`.

Примеры настроек

Вот несколько примеров настроек, которые часто встречаются в файле `sudoers`.

  • `%sudo ALL=(ALL:ALL) ALL`: Разрешает всем пользователям, входящим в группу `sudo`, выполнять любые команды (ALL) от имени любого пользователя (ALL) и группы (ALL) на любом хосте (ALL). (Требуется пароль)
  • `username ALL=(ALL) NOPASSWD: /usr/bin/apt update`: Разрешает пользователю `username` выполнять команду `apt update` с правами root без ввода пароля.

Примеры использования

Изучите различные примеры использования команды `sudo`, чтобы выполнять системные задачи с правами администратора.

Обновление пакетов системы

sudo apt update

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

Копирование файла в определенную директорию

sudo cp my_config.conf /etc/

Копирует файл `my_config.conf` в директорию `/etc/`, в которой обычно нет прав на запись.

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

sudo -u www-data ls /var/www/html

Выполняет команду `ls /var/www/html` с правами пользователя `www-data` (обычно процесса веб-сервера), чтобы протестировать права доступа к файлам этого пользователя.

Переключение на оболочку root

sudo -i

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

Проверка прав sudo текущего пользователя

sudo -l

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


Те же команды в категории