LinuxСредняя

sudo: command not found — причины и решение в Linux

Ошибка 'sudo: command not found' означает, что система не может найти исполняемый файл sudo. В статье вы узнаете, почему это происходит (отсутствие пакета до сбоя в PATH) и как восстановить работу команды для выполнения задач с правами администратора.

Обновлено 17 февраля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04/22.04/24.04Debian 11/12CentOS 7/8/Rocky 8/9sudo 1.8.x/1.9.x

Что означает ошибка sudo: command not found

Ошибка sudo: command not found (или bash: sudo: command not found) появляется в терминале Linux, когда вы пытаетесь выполнить команду с sudo, но система не может найти исполняемый файл sudo в каталогах, указанных в переменной среды PATH.

Типичный вывод:

$ sudo apt update
bash: sudo: command not found

Это означает, что либо пакет sudo не установлен в вашей системе, либо переменная PATH сконфигурирована некорректно, и система не ищет исполняемые файлы в стандартных директориях, таких как /usr/bin или /bin.

Причины возникновения

  1. Пакет sudo не установлен. Некоторые минимальные или специализированные установки Linux (например, некоторые контейнеры, Docker-образы, или системы, где root-пользователь используется по умолчанию) могут не включать sudo в базовый набор пакетов.
  2. Некорректная переменная PATH. Переменная PATH определяет список каталогов, в которых система ищет исполняемые команды. Если стандартный каталог /usr/bin (где обычно resides sudo) был удалён из PATH или PATH была переопределена некорректно (например, в ~/.bashrc или ~/.profile), команда не будет найдена.
  3. Повреждение или удаление бинарного файла sudo. Файл /usr/bin/sudo мог быть случайно удалён или повреждён в результате сбоя обновления системы или ручных манипуляций.

Способы решения

Способ 1: Проверьте и исправьте переменную PATH (самый частый случай)

Это первое, что нужно проверить. Возможно, sudo установлен, но система "не видит" его.

  1. Проверьте текущий PATH. Выполните:
    echo $PATH
    

    Обратите внимание на список каталогов, разделённых двоеточием. Стандартный путь к sudo/usr/bin. Убедитесь, что эта директория присутствует в выводе. Пример корректного PATH:
    /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
    
  2. Временно добавьте /usr/bin в PATH для текущей сессии терминала, чтобы сразу проверить, решит ли это проблему:
    export PATH=$PATH:/usr/bin
    

    После этого попробуйте команду sudo снова. Если она заработала, проблема точно в PATH.
  3. Восстановите PATH на постоянной основе. Откройте файл конфигурации вашей оболочки. Для bash это обычно ~/.bashrc или ~/.profile.
    nano ~/.bashrc
    

    Найдите строку, начинающуюся с PATH=. Если её нет, добавьте в конец файла:
    export PATH=$PATH:/usr/bin
    

    Важно: Не перезаписывайте PATH полностью (например, PATH=/usr/bin), а добавляйте к существующему значению через $PATH:, иначе вы потеряете все другие пути.
  4. Примените изменения. Сохраните файл (Ctrl+O, Enter, Ctrl+X в nano) и выполните:
    source ~/.bashrc
    

    Теперь команда sudo должна работать в текущем терминале.

Способ 2: Установите пакет sudo (если его нет)

Если sudo действительно не был установлен, вам нужно установить его. Поскольку для установки пакетов обычно требуются права root, а sudo нет, вы можете:

  1. Войти в систему как root (если вы знаете пароль root) с помощью команды su:
    su -
    

    Введите пароль root. После этого вы получите приглашение командной строки #.
  2. Установите sudo с помощью пакетного менеджера вашего дистрибутива:
    • Для Debian/Ubuntu и производных:
      apt update
      apt install sudo
      
    • Для RHEL/CentOS/Rocky/AlmaLinux:
      yum install sudo
      # или для более новых версий
      dnf install sudo
      
    • Для Arch Linux:
      pacman -S sudo
      
  3. Настройте доступ для вашего пользователя (если вы ещё не в группе sudo или wheel):
    • В Debian/Ubuntu добавьте пользователя в группу sudo:
      usermod -aG sudo your_username
      
    • В RHEL/CentOS добавьте пользователя в группу wheel:
      usermod -aG wheel your_username
      

    Замените your_username на ваше实际 имя пользователя.
  4. Выйдите из сессии root (exit) и попробуйте использовать sudo снова. Возможно, потребуется полностью выйти из системы и зайти заново, чтобы изменения групп вступили в силу.

Способ 3: Восстановите повреждённый или удалённый бинарный файл

Если файл /usr/bin/sudo отсутствует или имеет неверные права, даже при правильном PATH и установленном пакете команда не сработает.

  1. Проверьте существование файла и его права:
    ls -l /usr/bin/sudo
    

    Ожидаемый вывод (права могут незначительно отличаться):
    -rwsr-xr-x 1 root root 146736 Jan 15 2024 /usr/bin/sudo
    

    Обратите внимание на букву s в правах (rws). Это специальный бит SETUID, который позволяет запускать программу от имени владельца (root). Его отсутствие может вызывать проблемы, но не command not found.
  2. Если файл отсутствует, переустановите пакет sudo, как описано в Способе 2. Это самый надёжный способ восстановить оригинальный бинарный файл.
  3. Если права некорректны (например, нет s или владелец не root), исправьте их после переустановки:
    chmod 4755 /usr/bin/sudo
    chown root:root /usr/bin/sudo
    

Способ 4: Временное решение — использование su

Если вы не можете быстро исправить sudo, но вам нужно выполнить команды от root, используйте su (switch user).

  1. Переключитесь на пользователя root:
    su -
    

    Введите пароль root.
  2. Выполняйте необходимые команды. Помните, что работая от root, вы можете случайно нанести ущерб системе. Постарайтесь как можно скорее вернуться к исправлению sudo.
  3. Вернитесь к своему пользователю: выполните exit.

⚠️ Важно: Это не решение проблемы, а лишь временная обходная путь. Работа под root постоянно небезопасна.

Профилактика

  • Не удаляйте системные каталоги (/usr/bin, /bin, /sbin) из переменной PATH вручную. Если нужно добавить свой каталог, добавляйте его через :.
  • При редактировании ~/.bashrc или ~/.profile будьте внимательны с синтаксисом команды export PATH=.... Лучше использовать шаблон export PATH=$PATH:/your/new/path.
  • Проверяйте совместимость скриптов и программ, которые могут изменять PATH (например, менеджеры версий Python pyenv или Node.js nvm). Убедитесь, что они не перезаписывают PATH полностью.
  • Регулярно обновляйте систему (sudo apt update && sudo apt upgrade или аналоги), чтобы избежать повреждения пакетов.
  • При использовании Docker или chroot-окружений явно устанавливайте sudo, если планируете его использовать, так как минимальные образы часто его не содержат.

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

Почему sudo внезапно перестал работать после обновления системы?
Как проверить, установлен ли пакет sudo в системе?
Чем отличается `su` от `sudo` и можно ли использовать `su` вместо `sudo`?
Можно ли полностью отключить sudo и работать только от root?

Полезное

Проверьте наличие sudo и переменную PATH
Установите или переустановите пакет sudo
Исправьте переменную PATH в конфигурации оболочки
Проверьте права доступа к бинарнику sudo
Перезагрузите оболочку или систему

Эта статья помогла вам решить проблему?