Bash Sudo Command не знайдено


33

Я створив VM за допомогою 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. Для подальшої зручності краще встановити судо.
Love Grover

40

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


2
Це не було встановлено! Спасибі. Я досить новачок у Linux і просто припускав, що він є на всіх установах. Мені просто потрібен пакет sudo або sudo-ldap?

2
Вам не потрібен пакет sudo-ldap. Судо добре працює на моєму комп’ютері, і у мене не встановлено sudo-ldap.
Azendale

6

Спочатку увійдіть у свій кореневий рахунок. Потім

$ apt-get install sudo

Додайте свого наявного користувача до групи sudo

$ sudo adduser <user> sudo

Тоді ви повинні увійти як <user>, і sudoкоманда повинна бути там.


5

спробуйте використовувати повний шлях

/usr/bin/sudo

якщо ця командна робота, то включіть / usr / bin / у свою змінну 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.