Perintah Bash Sudo Tidak Ditemukan

33

Saya telah mengatur VM menggunakan turnkey linux redmine dan saya mencoba SSH ke server untuk menginstal beberapa item lagi.

Tampaknya tidak mengenali perintah sudo. Setiap kali saya mencoba sesuatu sudo saya mendapatkan kesalahan mengatakan:

 -bash: sudo: command not found

Saya membaca di tempat lain untuk mengetik 'whereis sudo' dan hasilnya adalah:

 sudo:
Rui F Ribeiro
sumber

Jawaban:

20

Itu terlihat dari http://www.turnkeylinux.org/redmine seperti Redmine, tidak seperti Ubuntu, tidak menggunakan sudo secara default. Nama pengguna apa yang Anda gunakan untuk SSH? Jika itu root, maka Anda tidak perlu menggunakan sudo, karena semua yang Anda lakukan ketika SSH masuk ke sistem Redmine dilakukan sebagai root. Jika itu sesuatu yang lain, seperti admin, maka Anda bisa mencoba menggunakan superintah untuk mendapatkan rootshell di mana untuk menjalankan perintah root.

Eliah Kagan
sumber
Apa yang harus dilakukan ketika skrip memiliki perintah sudo. Terjadi pada saya dengan mkusb. Lebih baik menginstal sudo untuk kenyamanan masa depan.
Love Grover
40

Mungkin tidak diinstal? Buka manajer paket Anda dan instal paket sudo .


sumber
2
Itu tidak diinstal! Terima kasih. Saya cukup baru di Linux dan hanya berasumsi itu ada di semua instalasi. Apakah saya hanya perlu paket sudo atau sudo-ldap juga?
2
Anda tidak memerlukan paket sudo-ldap. Sudo berfungsi dengan baik di komputer saya dan saya tidak menginstal sudo-ldap.
Azendale
6

Login terlebih dahulu ke akun root Anda. Kemudian

$ apt-get install sudo

Tambahkan pengguna Anda yang ada ke grup sudo

$ sudo adduser <user> sudo

Anda kemudian harus login sebagai <user>, dan sudoperintah itu harus ada di sana.

Gayan Weerakutti
sumber
5

coba gunakan path lengkap

/usr/bin/sudo

jika perintah itu bekerja maka sertakan / usr / bin / dalam PATH variabel env Anda di ~ / .bashrc

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

semoga berhasil ..


sumber
4
Itu sangat tidak mungkin menjadi masalah; /usr/binhampir pasti akan berada di jalur default Anda. Masalahnya, seperti ditunjukkan oleh jawaban dan komentar lain, adalah bahwa sudoperintah itu tidak dipasang sama sekali.
Keith Thompson
2

Kesalahan terjadi karena biner yang Anda coba panggil dari baris perintah hanya bagian dari variabel PATH pengguna saat ini, tetapi bukan bagian dari PATH pengguna root.

Anda dapat memverifikasi ini dengan menemukan path biner yang Anda coba akses. Dalam kasus saya, saya mencoba memanggil "bettercap-ng". Jadi saya berlari,

$ which bettercap-ng

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

Saya memeriksa apakah lokasi ini adalah bagian dari PATH pengguna root saya.

$ sudo env | grep ^PATH

keluaran: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

Jadi sudo tidak dapat menemukan biner yang saya coba panggil dari commandline. Oleh karena itu mengembalikan perintah kesalahan yang tidak ditemukan.

Anda dapat mengarahkan sudo untuk menggunakan PATH pengguna saat ini saat memanggil biner seperti di bawah ini.

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

Bahkan, seseorang dapat membuat alias dari situ:

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

Dimungkinkan juga untuk menamai alias itu sendiri sudo, menggantikan sudo aslinya.

Silakan lihat video ini untuk solusi langkah demi langkah

Platypus Anonim
sumber