Команда Bash Sudo не найдена


33

Я настроил виртуальную машину с использованием Linux Redmine под ключ, и я пытаюсь подключиться к серверу SSH, чтобы установить еще несколько элементов.

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

 -bash: sudo: command not found

Я прочитал где-то еще, чтобы напечатать 'whereis sudo', и результат был:

 sudo:

Ответы:


20

Он выглядит на http://www.turnkeylinux.org/redmine как Redmine, в отличие от Ubuntu, по умолчанию не использует sudo. Какое имя пользователя вы используете для SSH? Если это так root, то вам не нужно использовать sudo, так как все, что вы делаете, когда SSHed в системе Redmine, делается как root. Если это что-то еще, например admin, вы можете попробовать использовать suкоманду, чтобы получитьroot оболочку, в которой можно запускать команды как root.


Что делать, когда в скрипте есть команды sudo. Бывает со мной с mkusb. Лучше установить sudo для дальнейшего удобства.
Любовь Гровер

40

Может быть, он не установлен? Откройте менеджер пакетов и установите пакет sudo .


2
Это не было установлено! Спасибо. Я довольно новичок в Linux и просто предположил, что это было на всех установках. Мне просто нужен пакет sudo или sudo-ldap?

2
Вам не нужен пакет sudo-ldap. Sudo отлично работает на моем компьютере, и у меня не установлен sudo-ldap.
Azendale

6

Сначала войдите в свою учетную запись root. затем

$ apt-get install sudo

Добавить существующего пользователя в группу sudo

$ sudo adduser <user> sudo

Затем вы должны войти в систему как <user>, и sudoкоманда должна быть там.


5

попробуйте использовать полный путь

/usr/bin/sudo

если эта команда работает, включите / usr / bin / в переменную env PATH в ~ / .bashrc

echo "export PATH="$PATH:/usr/bin"" >> ~/.bashrc

надеюсь работает ..


4
Это вряд ли проблема; /usr/binпочти наверняка будет в вашем пути по умолчанию. Проблема, о чем свидетельствуют другие ответы и комментарии, заключается в том, что sudoкоманда вообще не была установлена.
Кит Томпсон

2

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

Вы можете убедиться в этом, найдя путь к двоичному файлу, к которому вы пытаетесь получить доступ. В моем случае я пытался назвать "bettercap-ng". Итак, я побежал,

$ which bettercap-ng

output: /home/user/work/bin/bettercap

Я проверил, является ли это местоположение частью PATH моего корневого пользователя.

$ sudo env | grep ^PATH

выход: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

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

Вы можете указать sudo использовать PATH текущего пользователя при вызове двоичного файла, как показано ниже.

$ sudo -E env "PATH=$PATH" [command] [arguments]

На самом деле из него можно сделать псевдоним:

$ alias mysudo='sudo -E env "PATH=$PATH"'

Также возможно назвать псевдоним сам sudo, заменив оригинальный sudo.

Пожалуйста, обратитесь к этому видео для пошагового решения

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.