Команда sudo в Linux

Linux 命令大全Справочник команд Linux

sudo расшифровывается как "Super User DO", что позволяет авторизованным пользователям выполнять команды от имени другого пользователя (обычно пользователя root). Иными словами, команды, выполненные через sudo, выглядят так, как если бы их лично выполнил root.

Права на использование: пользователи, указанные в /etc/sudoers.

Синтаксис

sudo [选项] 命令

Например:

sudo apt update          # 以 root 权限更新软件包列表
sudo vim /etc/hosts     # 编辑需要 root 权限的文件

Описание параметра:

  • -i: Имитировать первоначальный вход, загрузить окружение целевого пользователя
  • -s: Запустить оболочку
  • -uuser: Запустить от имени указанного пользователя
  • -l: Вывести команды sudo, которые может выполнять текущий пользователь
  • -v: Проверить учетные данные пользователя (продлить сеанс sudo)
  • -k: Отозвать кэш учетных данных sudo

Примеры

Выполнить одну команду с правами root:

sudo apt update
sudo systemctl restart nginx
sudo mkdir /opt/myapp

Переключиться на оболочку пользователя root:

sudo -i    # 登录shell,加载root环境变量
sudo -s    # 非登录shell
sudo su -  # 另一种方式

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

sudo -u username command
sudo -u postgres psql  # 以 postgres 用户运行 psql

Проверить доступные права:

sudo -l

Редактировать системные файлы:

sudo nano /etc/hosts
sudo vim /etc/nginx/nginx.conf

Файл конфигурации

Конфигурация sudo хранится в файле /etc/sudoers, и ее следует редактировать с помощью команды visudo:

sudo visudo

Примеры типовой конфигурации:

# 允许用户免密码执行所有命令
username ALL=(ALL) NOPASSWD: ALL

# 允许用户组执行特定命令
%wheel ALL=(ALL) /bin/systemctl, /usr/bin/apt

Часто задаваемые вопросы

Пользователь отсутствует в файле sudoers:

# 需要 root 用户将目标用户加入 sudo 组:
usermod -aG sudo username  # Ubuntu/Debian
usermod -aG wheel username # CentOS/RHEL

Настройка длительности кэша:

Измените timestamp_timeout в /etc/sudoers (единица измерения: минуты):

Defaults timestamp_timeout=30

Различия между su и sudo

Характеристика su sudo
Требуется пароль Пароль целевого пользователя Пароль текущего пользователя
Длительность сеанса До ручного выхода Одна команда или кратковременный кэш
Сложность конфигурации Простая Требуется настройка sudoers
Безопасность Требуется знание пароля root Более детальный контроль разрешений
Аудит Ограниченно Более подробные журналы

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

Linux 命令大全Справочник команд Linux

Другие расширения