Sudo не работает в Ubuntu

Обновлено: 02.07.2024

Недавно мы подготовили новую виртуальную машину Debian и заметили, что команда sudo недоступна. Наш типичный рабочий процесс включает команду sudo в начале команд.

Хорошая новость: вы можете установить команду sudo в Debian и предоставить своему пользователю разрешения «sudo».

Обзор серии Ubuntu/Debian

Исправить «команда sudo не найдена»

Установите определенную версию с помощью apt-get в Ubuntu/Debian

Исправить Ubuntu/Debian apt-get «KEYEXPIRED: следующие подписи недействительны»

Как протестировать задание Cron

Как распаковать в папку

Как показать свою версию Elasticsearch в Ubuntu/Debian

Используйте «который» в Linux, чтобы найти расположение исполняемого файла

Сортировать «ls» по дате последнего изменения

Как выключить компьютер

  1. Исправить «команда sudo не найдена»
  2. Установите определенную версию с помощью apt-get в Ubuntu/Debian
  3. Исправить Ubuntu/Debian apt-get «KEYEXPIRED: следующие подписи недействительны»
  4. Как протестировать задание Cron
  5. Как распаковать в папку
  6. Как показать свою версию Elasticsearch в Ubuntu/Debian
  7. Используйте «который» в Linux, чтобы найти расположение исполняемого файла.
  8. Сортировать «ls» по дате последнего изменения.
  9. Как выключить компьютер

Установите команду «sudo»

Сначала вам нужно установить команду sudo. Вы можете сделать это с помощью менеджера пакетов apt. Вам нужно запустить эту команду от имени пользователя с правами на установку пакетов, например, от пользователя root:

Следующий шаг – дать своему пользователю права sudo:

Вы также должны добавить своего пользователя в группу sudo. Откройте файл /etc/sudoer с помощью вашего любимого редактора, например nano:

Проверьте, есть ли у группы «sudo» все разрешения в вашей системе. Найдите такую ​​строку:

Знак процента указывает, что следующий идентификатор представляет собой имя группы, а не пользователя.

Вот оно! Теперь вы сможете запускать любую команду с помощью sudo .

Получайте уведомления о новых
содержимом и обновлениях платформы Future Studio

Еженедельно получайте push-уведомления о новом и актуальном контенте
Future Studio и последних улучшениях платформы

У меня есть ноутбук с Linux Ubuntu (16.4), который не поддерживает ни одну команду, начинающуюся с sudo, и я гуглил, но не нашел никакого решения, потому что мы не знаем пользователя root и пароль, поэтому я полностью застрял.

Например: если я хочу запустить какую-либо команду, она не работает, например:

И я получаю сообщение об ошибке:

Как это исправить?

Я не хочу форматировать машину прямо сейчас.


Почему команда sudo apt-get update не работает... в чем ошибка? Когда он запрашивает пароль, какой пароль вы вводите. Вам нужно использовать пароль пользователя, а не пароль root. учетная запись root отключена в Ubuntu.

Как вы это сделали.. ссылка говорит, что вы должны переустановить, а вы говорите, что не хотите этого делать?

Я использовал только команду su, но мы не знаем пароль для нее, мы знаем только пароль пользователя, пожалуйста, дайте мне руководство, спасибо

4 ответа 4

Попробуйте изменить разрешения для двоичного файла sudo:

Выполните следующую команду:

Выполните перезагрузку в обычном режиме. Если это не сработает, а у вас по-прежнему есть проблемы с разрешениями, значит, вы сломали свою систему, и простое исправление с помощью команды sudo ничего не исправит — вам нужно переустановить компьютер.


И как следует из этого комментария: "это исправит sudo, но не исправит десятки других вещей, которые были сломаны."

Ага, точно. Но @CaldeiraG, мы еще не знаем, как OP на самом деле сломал их систему ... если это будет сделано так же в этом треде, то да, это ничего не исправит. Но шансы (хотя и бесконечно малые) состоят в том, что они сломали только sudo.

Поискив в Интернете, я обнаружил, что для решения этой технической проблемы необходимо переключиться в режим восстановления Ubuntu:

mount -o перемонтировать,rw /

chown root:root /urs/bin/sudo

chmod 4755 /urs/bin/sudo

Это тоже полезная информация:

устранить ошибку sudo

вы должны переустановить команду "sudo"

Для этого сделайте следующий рецепт:

1- установить "менеджер пакетов synaptic"

Вы можете скачать его отсюда:

найдите в приложении обновления программного обеспечения Ubuntu "синаптический пакет" и установите его

2- открыть приложение

3- в верхней части страницы нажмите на поле поиска и введите текст « sudo », теперь найдите « sudo » в списке> и нажмите на сплошной квадрат, а в открывшемся квадрате выберите «отметить для переустановки»> затем нажмите «Применить» на вверху страницы и установите его

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

Я нашел ряд вопросов и принял ответы на askubuntu.

Но ни один из них не решил мою проблему. Наверное, мой случай отличается от них.

Я попытался установить utorrent, следуя ответу на этот вопрос, получившему наибольшее количество голосов.
После извлечения файла .tz в /opt я переименовал извлеченный файл.
С тех пор я сталкиваюсь с этой ошибкой.

Я ожидаю ответа, который не предлагает мне переустановить систему.
Если бы переустановка была единственным решением, мне пришлось бы сделать резервную копию всего, что я когда-либо устанавливал.

Похоже, что в ответе на вопрос, который вы указали, ничего не упоминается о переименовании. Вы уверены, что не допустили ошибку в команде chmod, например, оставив пробел между / и opt ?

@steeldriver Нет, я написал /opt. но я не могу вспомнить, использовал ли я -R до 777 или после 777 в случае команды chmod. может ли это вызвать проблемы?

4 ответа 4

Простое исправление, если вы не напортачили с pkexec :

Проблема в том, что для вашего /usr/bin/sudo установлены неправильные разрешения ( -rwxrwxr-x вместо правильного -rwsr-xr-x ).

Теперь, поскольку файл принадлежит пользователю root, вам нужны права root, чтобы изменить его разрешения. Обычно для этого вы используете sudo, но поскольку он сломан, мы должны использовать pkexec в качестве замены для его восстановления:

Теперь все должно быть исправлено снова. Попробуйте, например. следующая команда для проверки:

Более сложное исправление, если вы также испортили pkexec:

Во-первых, вам необходимо загрузить систему Ubuntu в режиме восстановления.

Вы делаете это, перезагружая и ожидая появления меню GRUB. Это происходит сразу после завершения работы BIOS и до того, как Ubuntu начнет загружаться. Обычно он отображается, если вы выполняете двойную загрузку с другой ОС, но если этого не происходит, вам нужно удерживать клавишу Shift, чтобы он появился. Выберите пункт меню «Дополнительные параметры», а затем выберите последнюю версию ядра с суффиксом (режим восстановления). Вы увидите другое меню, где вам нужно выбрать root , которое показывает вам терминал с root-доступом.
Дополнительную информацию о том, как войти в корневую оболочку в режиме восстановления, можно найти здесь, выполните шаги 1–7, а затем продолжите здесь.

Существует множество ситуаций, когда вы получаете сообщение об ошибке "команда sudo не найдена" и продолжаете искать в Интернете решения для ее устранения. Один из распространенных примеров, когда вы установили Debian с минимальным пакетом и пытаетесь запустить sudo. Для меня всякий раз, когда я пытаюсь подключиться по ssh к любому из удаленных серверов и запустить sudo, я получаю эту ошибку «bash: команды sudo не найдены». Поэтому я решил написать пост, в котором освещаю все сценарии этой известной ошибки.

  • команда sudo не нашла mac
  • команда sudo не найдена в Ubuntu
  • команда sudo не найдена в Debian
  • команда zsh sudo не найдена
  • команда sudo не нашла окна
  • команда sudo не нашла центрос
  • bash: /usr/bin/sudo: нет такого файла или каталога

Это распространенные сценарии, которые приводят к этой ошибке -

  • Вы установили дистрибутив Linux с минимальным пакетом, например Debian
  • Sudo не установлен
  • Путь не указан для команды sudo
  • Вы впервые пытаетесь подключиться по ssh к удаленному серверу, и sudo не работает

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

Оглавление

Почему в Linux перед каждой командой используется sudo?

Sudo — это один из известных префиксов для любой команды, которую вы запускаете в мире Linux. Он позволяет запускать любую команду Linux с повышенными привилегиями для выполнения административных задач. Кроме того, операции, разрешенные только пользователю root, могут выполняться обычным пользователем с правами sudo. Файл «sudoers» определяет, кто может использовать команду sudo для получения повышенных прав доступа, а местоположение — /etc/sudoers во всех дистрибутивах Linux.

Как исправить ошибку sudo command not found в Debian/Ubuntu, например в дистрибутивах

Как мы уже говорили, может быть много причин для возникновения этой ошибки. Как вы увидите на изображении, выполнение команды «sudo ifconfig -a» приводит к ошибке «bash: /usr/bin/sudo: нет такого файла или каталога». Я запускаю эту команду в Ubuntu 21.04, установленной как виртуальная машина.

Давайте углубимся и найдем исправления для различных сценариев -

Решение-1. Проверьте и установите пакет sudo

Это очень редкое явление, когда sudo не устанавливается по умолчанию при установке Linux. Тем не менее, вы можете столкнуться с такой ситуацией, если вы установили Debian Linux с минимальным пакетом. Выполните следующие действия, чтобы исправить это -

Шаг 1.1. Список установленных пакетов в Ubuntu и поиск пакета «sudo»

Если вы можете найти имя пакета sudo со статусом «установлен», как показано на изображении. Затем вы можете сразу перейти к решению-2, чтобы исправить ошибку «sudo: command not found».

Если у вас не установлен пакет sudo, выполните следующую команду, чтобы установить его в дистрибутивах на базе Ubuntu или Debian. Для этого вам потребуется доступ root.

Шаг 1.2 Переключитесь на пользователя root

Введите пароль root при появлении запроса.

Шаг 1.3. Запустите команду apt для установки пакета sudo в Ubuntu/Debian

установите sudo, чтобы исправить команду sudo, не найденную в Ubuntu

Обратитесь к следующему изображению для справки.

Шаг 1.4. Предоставьте права sudo своему пользователю, добавив его в группу sudo

Например, я добавлю своего пользователя "dev" в группу sudo -

добавить пользователя в группу sudo

Шаг 1.5. Убедитесь, что ваш пользователь добавлен в группу sudo

Откройте файл /etc/passwd и проверьте, добавлен ли ваш пользователь в группу sudo или нет.

проверить пользователя был добавлен в группу sudo

В этом примере я проверю своего пользователя "dev".

Шаг 1.6. Убедитесь, что в файл sudoers добавлена ​​группа sudo

Нажмите Ctrl + X и нажмите "Y", чтобы сохранить файл и выйти из редактора nano.

Выйдите из корневой оболочки и проверьте функциональность команды sudo.

Решение 2. Настройте переменную пути для исправления ошибок команды sudo, не найденных

Если у вас установлен пакет sudo, как описано в шаге 1.1, но вы все равно получаете сообщение об ошибке sudo command not found. Это означает, что у вас нет настройки "/usr/bin/" в переменной PATH или ваш файл /etc/environment перепутался.

Чтобы добавить sudo в переменную Path, добавьте каталог /usr/bin/, следуя указанному методу.

Шаг 2.1. Переключитесь на пользователя root

По запросу введите пароль пользователя root.

Шаг 2.2. Запустите команду /usr/bin/sudo, чтобы проверить, работает она или нет

Шаг 2.3. Отредактируйте файл /etc/environment и добавьте каталог «/usr/bin» в PATH

Кроме того, вы также можете запустить команду экспорта, чтобы настроить переменную пути

В случае, если вы также получаете ошибки visudo и usermod command not found. Убедитесь, что вы добавили /usr/sbin в переменную PATH, как показано на последнем шаге.

Исправить ошибку «команда sudo не найдена» в дистрибутивах Fedora/AlmaLinux/Rocky Linux

В этом разделе рассматриваются ошибки sudo для всех дистрибутивов Linux на основе RedHat, таких как Fedora, AlmaLinux, CentOS и Rocky Linux. У меня установлен Rocky Linux как виртуальная машина. Процедура аналогична описанной ранее. Найдите пакет, установите его и при необходимости задайте переменную пути. Но теперь команды будут другими.

Решение 3. Установите sudo и добавьте пользователя в группу «Колесо», чтобы исправить ошибки sudo

У вас есть возможность настроить sudo во время установки в дистрибутивах Linux на базе RedHat. Но если вы забыли это сделать, у вас должен быть доступ к пользователю root, чтобы настроить sudo для своего пользователя.

Шаг 3.1. Войдите в систему с правами root и проверьте установку пакета sudo

Перейдите по этой ссылке, чтобы сбросить пароль root, если вы его забыли или у вас его нет.

После того, как вы закончите вход в систему как root, откройте Терминал и введите

Если у вас уже установлен пакет sudo, перейдите к следующему шагу 3.3.

Шаг 3.2. Установите пакет sudo

Для установки любого пакета из репозитория можно использовать команду "yum" или "dnf".

Обновите все старые пакеты и репозиторий.

Установите sudo, чтобы исправить команду sudo не найдено в Centos или Rocky Linux

Затем установите пакет sudo с помощью команды dnf или yum.

Шаг 3.3. Добавьте пользователя в группу Wheel

Группа wheel уже настроена на предоставление доступа sudo для выполнения всех команд. Поэтому самый быстрый способ — добавить своего пользователя в эту группу. Сначала переключитесь на пользователя root с помощью команды su

Теперь запустите команду usermod, чтобы добавить пользователя в группу wheel.

Добавить пользователя в группу wheel, чтобы исправить ошибку zsh sudo command not found в Fedora

Например, я добавлю своего пользователя "dev" в качестве примера

Шаг 4.4. Проверка с помощью команды id

Затем запустите команду id, чтобы узнать, входит ли ваш пользователь в группу wheel или нет.

проверьте идентификатор добавлен в группу колес

Пример. Мой пользователь dev входит в группу 10(wheel).

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

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

В1. Почему не работает sudo?

Причин, по которым sudo может не работать, может быть много.

<р>1. У вас не установлен пакет sudo
2. Если пакет sudo установлен, переменная пути задана неправильно
3. Ваша система сломалась, и все ваши пакеты и разрешения были перепутаны
4. Ваш пользователь не добавлен в группу sudo или wheel в зависимости от вашего дистрибутива Linux.

Вопрос 2. Как включить sudo?

Если пакет sudo уже установлен на основе вашего дистрибутива Linux, выполните следующую команду. Замените "dev" своим именем пользователя.

для дистрибутивов на основе Ubuntu и Debian -

Затем запустите команду usermod, чтобы добавить пользователя в группу sudo

Для дистрибутивов на базе RedHat -

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

Добавить в группу колес.

Q3: Как найти команды sudo?

Откройте терминал и введите sudo -h . Он покажет вам все параметры и аргументы команды sudo. Вы также можете ввести man sudo, чтобы получить руководство по команде sudo.

Q4: Как исправить команду sudo, не найденную на Mac?

Выполните следующую последовательность команд, чтобы исправить ошибку sudo command not found в macOS.

<р>1. Проверьте синтаксис команды и написание sudo, чтобы убедиться, что вы не запускаете команду с ошибкой

<р>2. переключиться на пользователя root
$ su -

<р>3. Выполните следующую команду

В случае ОС до Catalina

в случае Каталины

<р>4. Добавьте своего пользователя в файл sudoers следующим образом -

имя пользователя ВСЕ=(ВСЕ) ВСЕ

замените имя пользователя своим пользователем. например Джон

Сохранить и закрыть файл sudoers

<р>5. повторно откройте терминал, и он исправит все ваши ошибки zsh: sudo command not foundr в macOS.

В5. Нужно ли устанавливать sudo?

По умолчанию во всех дистрибутивах Linux или Unix установлен sudo. Но если вы этого не сделаете, вы должны установить sudo. это рекомендуемый способ использования привилегированных команд root (только при необходимости) и помогает избежать ошибок, которые могут привести к поломке вашей системы.

Заключительное примечание

Я рассмотрел все возможные решения для исправления ошибки sudo command not found и надеюсь, что это руководство будет вам полезно. В случае, если ни одно из решений не работает для вас, и ваша система серьезно сломалась, либо переустановите вашу систему, либо сообщите мне о проблеме через ваши комментарии.

Читайте также: