Ketika saya menjalankan sudo
terminal macet selama beberapa detik dan kemudian menampilkan pesan kesalahan. Terminal saya terlihat seperti ini:
ubuntu@(none):~$ sudo true
sudo: unable to resolve host (none)
Apa yang bisa saya lakukan untuk menyelesaikannya?
sudo
error-handling
Kit Sunde
sumber
sumber
/etc/hostname
dan/etc/hosts
.hosts
file mereka tetapi memasukkan nama yang berbeda, terutama karena pada banyak jaringan, komputer diberi nama yang sama. Pertanyaan ini (dan jawaban) akan muncul ketika seseorang mencari dengan masalah itu, dan jawabannya akan meminta mereka untuk memeriksa perbedaan tersebut, meskipun kesalahan ejaan yang tepat akan berbeda.hostname
sama dengan Andahosts
. mis. nama host adalah ubuntu-pc dan host adalah ubuntu-pc harus sama.sudo /etc/init.d/network-manager restart
. Namun, saya bertanya-tanya mengapa pada awalnyasudo
membuang waktu menunggu hal-hal yang berhubungan dengan jaringan. Tidakkah seharusnyasudo
bekerja tanpa masalah ketika jaringan tidak tersedia?Jawaban:
Dua hal yang perlu diperiksa (dengan asumsi mesin Anda dipanggil
my-machine
, Anda dapat mengubahnya sesuai keperluan):Bahwa
/etc/hostname
file tersebut hanya berisi nama mesin.Itu
/etc/hosts
memiliki entri untuklocalhost
. Seharusnya memiliki sesuatu seperti:Jika salah satu dari file-file ini tidak benar (karena Anda tidak bisa sudo), Anda mungkin harus me-reboot mesin ke mode pemulihan dan membuat modifikasi, kemudian reboot ke lingkungan Anda yang biasa.
sumber
#%admin ALL=(ALL) ALL
ke%admin ALL=NOPASSWD: ALL
, lalu reboot, dan sudo su -, mengedit file-file, mengatur / hostname yang benar, reboot lagi, dan semuanya bekerja.::1 localhost
untuk/etc/hosts
(ini adalah versi IPv6 dari 127.0.0.1, alias alamat loopback)127.0.0.1 localhost
tetapi127.0.1.1 my-machine
?Edit
/etc/hosts
dan tambahkan nama host baru Anda ke baris 127.0.0.1 (atau buat baris baru jika Anda suka).Tambang saya terlihat seperti:
Ganti
penguin
dalam contoh di atas dengan nama host baru Anda sebagaimana dinyatakan dalam/etc/hostname
file.sumber
sudo
bahkan jika pesan itu ditampilkan. IIRC Anda masih harus memasukkan kata sandi di setiap doa. Jika ini tidak berhasil, Anda dapat reboot ke konsol pemulihan dan menerapkan perubahan. Akun root dengan kata sandi tidak disarankan.Tambahkan nama host Anda
/etc/hosts
seperti itu:sumber
echo $(hostname -I | cut -d\ -f1) $(hostname) | sudo -h 127.0.0.1 tee -a /etc/hosts
Catatan, ini adalah jawaban untuk pertanyaan ini yang telah digabung dengan yang ini.
Nama host Anda (
dave00-G31M-ES2L
) tidak terwakili dalam/etc/hosts
. Tambahkan sebuahL
ke baris ini:Jadi itu menjadi:
Untuk mencapai ini, buka konsol (tekan Ctrl+ Alt+ T) dan ketik:
Tambahkan surat
L
seperti yang disebutkan, simpan dan keluar.sumber
sudoedit
(atausudo -e
). Untuk menentukan editor yang disukai, gunakanEDITOR
variabel lingkungan (mis.export EDITOR=vim
) Karena membuat salinan offline untuk diedit dan kemudian ditimpa dengan bersih setelah diedit.sudo
ketika tidak ada lagisudo
.sudo
tidak berfungsi, tuan.sudo: unable to resolve host ...
sudo
? Pesan kesalahan yang Anda sebutkan berasal darisudo
perintah. Mungkin Anda bermaksud sesuatu yang berbeda?sudo
bekerja dengan baik. Itu tidak bisa menyimpan keadaan apa pun (yaitu seperti yang dikatakan Lekensteyn di tempat lain Anda harus memasukkan kata sandi setiap waktu).Saya memiliki masalah ini ketika saya menggunakan ubuntu di VPS. Saya memecahkannya mengedit file / etc / hosts.
jalankan perintah ini:
lalu tambahkan:
Saya harap itu akan menyelesaikan masalah Anda :)
PS: Ingatlah untuk me-reboot komputer Anda!
sumber
hosts
file ("ubuntu" pada contoh Luca). Baris pertama mungkin juga hanya "localhost".sudoedit
(atausudo -e
). Untuk menentukan editor yang disukai, gunakanEDITOR
variabel lingkungan (mis.export EDITOR=vim
) Karena membuat salinan offline untuk diedit dan kemudian ditimpa dengan bersih setelah diedit.Saya mengalami masalah yang sama meskipun nama host di file / etc / hostname saya dan / etc / hosts cocok.
Nama hostanku adalah "staging_1". Ternyata Anda tidak dapat memiliki garis bawah pada nama host Anda, itulah sebabnya saya mendapatkan kesalahan ini. Mengubah garis bawah ke tanda hubung memperbaiki masalah saya.
sumber
Di AWS, buka vpc Anda dan nyalakan "Nama Host DNS".
sumber
DNS Hostnames
Gejala yang diberikan dalam pertanyaan dapat berkorelasi kuat dengan masalah yang lebih spesifik ini:
Ada beberapa cara untuk menyelesaikannya, salah satunya adalah menambahkan hostname Anda sebagai host lokal
/etc/hosts
(seperti yang ditunjukkan dalam beberapa jawaban lain). Ini mungkin hal yang benar untuk dilakukan secara umum, tetapi itu bukan satu-satunya resolusi yang mungkin."Nama domain yang sepenuhnya memenuhi syarat" dapat diberikan oleh server DNS eksternal atau serupa (jika tersedia di jaringan Anda). Dalam hal ini,
sudo
tidak akan mengeluh, meskipun ada entri yang hilang/etc/hosts
.Catatan:
sudo
mencoba untuk men-dereference nama host, walaupun itu tidak diharuskan, karena kemampuan opsional dalam file sudoers. Lihat perintah sudo yang mencoba mencari nama host .Selama penundaan tidak terlalu lama, pesan kesalahan ini biasanya tidak berbahaya.
sumber
sudo --host=localhost
Saya menemukan pesan kesalahan yang sama ini. Saya pikir utas diskusi ini di Forum Pengembang AWS adalah solusi yang lebih baik:
"Pergi ke konsol manajemen VPC, pilih VPC, klik Actions, pilih Edit DNS Hostnames dan pilih Yes."
https://forums.aws.amazon.com/thread.jspa?messageID=699718
sumber
Beberapa emulator terminal tidak akan memperbarui prompt dengan nama host yang benar sampai Anda menutup dan memulai kembali emulator (lxterminal, saya berbicara dengan Anda).
Saya menghabiskan 30 menit berjuang dengan kesalahan ini setelah mengedit nama host saya dan file host dan berjalan
sudo service hostname restart
sampai saya berlarisudo hostname
dan melihat bahwa nama host adalah nilai baru, meskipun prompt menunjukkan nilai lama.sumber
Dalam kasus saya itu masalahnya, saya mengubah
hostname
keman
karena saya ingin tahu apakah ada beberapa parameter yang dapat Anda gunakanhostname
. Alih-alih itu mengubah sayahostname
menjadiman
dan saya selalu mendapat pesan yang sama seperti Andasetelah mengubah nama host kembali ke `localhost semuanya bekerja dengan baik lagi
sumber
Semua orang menyarankan untuk memodifikasi
/etc/hosts
. Tetapi dalam beberapa kasus ini mungkin tidak mungkin (misalnya di dalam wadah buruh pelabuhan). Jadi, saya harus menemukan cara yang lebih baik dan saya datang dengan ini:Alias tidak berfungsi dalam skrip bash, tetapi kita dapat menggunakan variabel:
sudo='sudo -h 127.0.0.1'
sumber
Maaf saya tidak bisa banyak membantu Anda tetapi, karena dikatakan "tidak dapat menyelesaikan host" coba jalankan:
Dan lihat apakah outputnya adalah nama host dari mesin tersebut. Jika tidak, masalahnya adalah konfigurasi host, bukan sudo.
sumber
OP menulis:
sumber
Anda mungkin mendapatkan kesalahan jika file host atau nama host mengandung karakter ilegal. Hanya simbol-simbol ini yang diizinkan: az, AZ, 0-9
sumber
Saya punya masalah yang sama! Saya mengubah nama VPS saya melalui panel kontrol admin online yang tidak mengubah nama mesin di file hosts Yang saya lakukan adalah menjalankan:
Kemudian saya mengeditnya dari ini:
Untuk ini:
dan itu memperbaiki kesalahan saya! Semoga ini bisa membantu!
sumber
Saya memiliki masalah yang sama. Saya menyelesaikannya dengan mengedit file / etc / hosts dan / etc / hostname ... pada file / etc / hosts, cukup edit bagian atas seperti yang ditunjukkan di bawah ini.
sumber
127.0.1.1 localhost myhostname
atau127.0.1.1 myhostname
?/etc/hosts
tanpasudo
.sudo
tidak berfungsisudo: unable to resolve host ...
jika Anda tidak bisa sudo Anda BISA login sebagai root via su. IE: su root (dalam x-term). lalu berikan kata sandi root saat diminta, maka Anda dapat mengedit file dengan nano. Kata sandi root di 'buntu sama dengan kata sandi yang akan Anda gunakan untuk sudo.
sumber
sudo
.root
adalah akunnya sendiri, yang tidak memiliki kata sandi yang ditetapkan secara default.Jika Anda menggunakan Vagrant, maka login ke tamu dan jalankan
apt-get --no-install-recommends install virtualbox-guest-utils
sumber
Jika masalah Anda adalah
/etc/hostname
file itu dan/etc/hosts
, kedua file memiliki nama host yang Anda inginkan dan masih mesin Anda menunjukkan kesalahanCoba, paksakan nama host
Anda mungkin masih akan mendapatkan kesalahan yang sama, tetapi cobalah keluar dan masuk kembali. Ini berhasil untuk saya.
sumber