#Что означает ошибка
bash: sudo: command not found
sudo: command not found в Debian означает, что пакет sudo не установлен: в минимальных установках Debian он не ставится по умолчанию, а администрирование идёт от root. Попытка использовать sudo выдаёт ошибку.
Нужно установить пакет от имени root и добавить пользователя в группу sudo.
После этого перелогиньтесь.
В минимальной установке Debian пакета sudo может не быть. Нужно войти под root и установить его, а затем добавить пользователя в группу sudo.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Sudo не установлен | Минимальная система. | Установите. |
| Пользователь не в группе sudo | Нет прав. | Добавьте. |
| PATH не содержит /usr/sbin | Для su. | Используйте su -. |
| Другая оболочка | Окружение. | Проверьте. |
#Пошаговое решение
- Войдите как rootЕсли
sudo: command not found, для установки sudo понадобится доступ root. В локальной консоли Debian выполнитеsu -и введите пароль root (вводимые символы не отображаются). Если root заблокирован или вы не знаете пароль, попросите администратора выполнить настройку; не пытайтесь использовать случайные команды обхода доступа. После получения root проверьте, что вы действительно root: командаid -uдолжна вывести0. - Установите sudoДля настройки sudo нужен уже имеющийся доступ root или уполномоченного администратора. Не пытайтесь повысить права в обход ограничений. Из root-терминала Debian/Ubuntu сначала убедитесь, что установлен пакет sudo (
apt install sudoпри рабочей сети), затем добавьте только нужного пользователя в группуsudoкомандойusermod -aG sudo ИМЯ, подставив реальное имя изid. После нового входа проверьтеsudo -v. В Fedora/Arch типичная группа — wheel, а её политика должна быть разрешена в sudoers. - Добавьте пользователя в группу sudoВ Debian под уже уполномоченной учётной записью root сначала определите реальное имя обычного пользователя командой
getent passwdили посмотрите его имя в окне входа. В root-терминале выполнитеusermod -aG sudo ИМЯ_ПОЛЬЗОВАТЕЛЯ, подставив настоящее имя без пробелов и заглушек; ключ-aобязателен, чтобы не удалить другие группы пользователя. Проверка:id -nG ИМЯ_ПОЛЬЗОВАТЕЛЯдолжен показатьsudo. На рабочем или чужом компьютере без разрешения администратора права не назначайте. - ПерелогиньтесьПосле добавления пользователя в административную группу полностью выйдите из сеанса Debian и войдите заново либо переподключитесь по SSH: старый сеанс не всегда видит новые группы. Выполните
id -nGи убедитесь, что среди групп появилсяsudo. Если группы нет, проверьте имя учётной записи и действия администратора, а не редактируйте sudoers напрямую. - Проверьте sudo whoamiПолностью выйдите из текущей учётной записи Debian и войдите снова, чтобы группы обновились. Откройте терминал и выполните
sudo whoami; при первом запуске введите свой пароль. Успешный ответ —root. Если появилась строкаuser is not in the sudoers file, проверьтеid -nGи установленную политику sudo; еслиsudo: command not found, пакет не установлен. Не пытайтесь менять sudoers обычным текстовым редактором. - Установка sudo требует действующего доступа к root и изменяет состав пакетовLinux · Терминал (Bash)С осторожностьюНужен sudoУстановка sudo требует действующего доступа к root и изменяет состав пакетов. Выполнять только после входа как root, подтверждения происхождения пакета и проверки APT.
su -c "apt install sudo"Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
#Установка
Переключитесь на root: su - (с дефисом, чтобы получить окружение root) и введите пароль root. Установите: apt update && apt install sudo. Добавьте пользователя в группу: usermod -aG sudo ИМЯ. Проверьте: id ИМЯ должен показывать группу sudo. Выйдите и войдите заново (exit, затем снова логин), иначе группа не применится.
#Проверка
Выполните sudo -v или sudo whoami — ответ root. Если появляется «ИМЯ is not in the sudoers file», проверьте членство в группе и файл /etc/sudoers командой visudo -c. Правила хранятся в /etc/sudoers и /etc/sudoers.d/. Редактируйте только через visudo: он проверит синтаксис. Строка %sudo ALL=(ALL:ALL) ALL даёт права членам группы.
#Если пароль root неизвестен
Загрузите систему в режим восстановления: в GRUB нажмите e, добавьте к строке linux параметр init=/bin/bash, загрузитесь (Ctrl+X), перемонтируйте корень на запись: mount -o remount,rw /, смените пароль passwd root, затем перезагрузитесь командой exec /sbin/init или reboot -f. Для виртуальных машин проще подключить диск к другой ВМ. Не устанавливайте sudo без необходимости на серверах, где достаточно ограниченного доступа.
id -uid -nGgetent group sudo