Устранение неполадок в Linux

Исправление: команда sudo не найдена

Если вы опытный пользователь Linux, то ошибка sudo command not found вас, скорее всего, крайне обескуражит. Скорее всего, вы привыкли ставить sudo перед любой командой, для которой вам нужен доступ привилегированного администратора. Это вдвойне верно, если вы являетесь пользователем Ubuntu или любой из ее производных, поскольку в этих операционных системах по умолчанию хэшируется учетная запись root, что заставляет вас довольно часто использовать команду sudo.

Сама команда sudo по умолчанию не включена в некоторые дистрибутивы Linux, в том числе в дистрибутивы, ориентированные на управление Web и маршрутизаторами. Она также не входит в состав многих версий операционных систем BSD. К счастью, несложно войти в систему с правами root и затем установить пакет по отдельности.

Метод 1: Исправление ошибок sudo command not found в GNU/Linux

Маловероятно, что вы используете дистрибутив Linux, в котором нет sudo, но если вы напечатаете что-то вроде sudo fdisk -l и нажимать Enter только для того, чтобы обнаружить, что вы получаете ошибку типа sudo: command not found или ash: sudo: command not found в зависимости от того, используете ли вы оболочку bash или Almquist, вы можете использовать ту, которая не имеет этой функции. В нашем примере мы установили виртуальную машину и попытались использовать команду sudo rm для удаления файлов, но получили ошибку. Введите whereis sudo чтобы узнать, установлена ли она где-нибудь. Если в ответ на эту команду вы получаете только sudo:, то, скорее всего, она у вас не установлена.

Чтобы исправить ошибку sudo command not found, вам необходимо войти в систему под именем пользователя root, что затруднительно, поскольку в вашей системе изначально отсутствует sudo. Удерживая Ctrl, Alt и F1 или F2, переключитесь на виртуальный терминал. Введите root, нажмите Enter, а затем введите пароль для первоначального пользователя root. Появится символ #, обозначающий командную строку.

Если ваша система основана на менеджере пакетов apt, то введите apt-get install sudo и нажмите Enter. Те, у кого есть системы yum RPM, основанные, возможно, на Fedora или Red Hat Linux, могут воспользоваться командой yum install sudo команда управления пакетами. Согласитесь с подсказками и дождитесь установки. Это должно быть очень быстро, но для работы вам потребуется доступ к сети.

Теперь в приглашении root введите visudo и нажмите Enter. Вы получите окно редактора nano или vi. В самом низу файла включите строку с именем вашего пользователя, а затем ALL=(ALL) ALL, не забывая о том, что имя вашего пользователя, скорее всего, написано в нижнем регистре. Отсюда:

user ALL=(ALL) ALL

Если вы работаете с vi, то нажмите Esc и введите :wq для выхода. Тем, кто использует GNU nano, следует удерживать Ctrl и O для сохранения файла, а затем Ctrl и X для выхода. Наберите в приглашении exit, и теперь вы можете использовать sudo как обычно. Для устранения этой проблемы необходимо выполнить всего несколько простых команд, но, к счастью, с включением sudo в большинство современных дистрибутивов это уже не является проблемой. Пользователи *BSD обычно сталкиваются с более серьезной проблемой.

Метод 2: Устранение ошибки sudo command not found на FreeBSD и других ОС

Хотя операционные системы BSD обычно поставляются с командой su, они редко, если вообще когда-либо, поставляются с настоящей командой sudo. Убедитесь, что вы вышли из своей учетной записи и находитесь на экране входа в систему Unix. Введите root в качестве имени пользователя, затем нажмите Enter, затем пароль root и снова нажмите Enter.

В приглашении появится восьмигранник, указывающий на то, что вы работаете от имени привилегированного пользователя. Чтобы добавить двоичный пакет для sudo, введите pkg_add -rv sudo и нажмите enter. Согласитесь на установку, если вас об этом попросят, и дождитесь завершения установки. После установки введите visudo и нажмите Enter. Допустим, вы хотите разрешить пользователю по имени billy выполнять любые команды. Добавьте следующую строку в конец файла:

billy ALL=(ALL) ALL

Разумеется, вы должны заменить billy на ваше настоящее имя пользователя. Если visudo на самом деле использовал vi, то нажмите Esc и введите :wq для выхода из редактора. Вы можете выйти из системы, а затем использовать sudo как обычно.

Добавить комментарий