Yang pertama sudo
saya masukkan di server Ubuntu 14.04 saya selalu lambat. Prompt kata sandi ditampilkan segera, tetapi setelah saya menekan enter, dibutuhkan sekitar 10-15 detik hingga hasilnya dicetak. Semua perintah sudo setelah ini dijalankan secara instan.
Menjalankan sesuatu seperti sudo strace -S time -c sudo echo hi
tidak menunjukkan sesuatu yang berguna dalam kasus ini, karena sudo dari sudo echo hi
sudah sudo kedua dan dijalankan dengan cepat. Jika beberapa waktu berlalu dan saya harus memasukkan kembali kata sandi dalam sesi yang sedang berjalan, maka lambat lagi.
Semua solusi yang saya temukan adalah tentang menambahkan nama host Anda sebagai resolusi untuk 127.0.0.1 dalam /etc/hosts
file, yang saya lakukan tidak berhasil. su root
dijalankan secara instan. Satu-satunya hal yang saya ingat berubah pada hari-hari terakhir adalah netmask dari sebuah subnet yang dirute oleh server, menginstal samba, dnsutils, dan bind9. Tapi tidak satu pun dari proses tersebut yang berjalan dan masalahnya tetap, dalam akses fisik, sesi ssh serta sesi tmux.
EDIT: Pendekatan Baru
Saya mencoba menjalankan sudo tcpdump -vvvi any > tcpdump.log
sementara semua NIC terputus. Log menunjukkan banyak hal berikut:
18:35:09.453399 IP (tos 0x0, ttl 64, id 49112, offset 0, flags [DF], proto UDP (17), length 76)
localhost.38498 > localhost.domain: [bad udp cksum 0xfe4b -> 0x1050!] 58546+ SRV? _kerberos._udp.KF.OURLOCALDOMAIN.DE. (48)
18:35:09.457412 IP (tos 0x0, ttl 64, id 49113, offset 0, flags [none], proto UDP (17), length 76)
localhost.domain > localhost.38498: [bad udp cksum 0xfe4b -> 0x8fcd!] 58546 ServFail q: SRV? _kerberos._udp.KF.OURLOCALDOMAIN.DE. 0/0/0 (48)
Entri yang sama muncul dengan tcp instad udp. Saya mengganti nama domain universitas kami dengan OURLOCALDOMAIN.
Sekarang saya pikir kerberos mungkin ada hubungannya dengan itu, tapi saya menghapus /etc/krb5.conf dan reboot, masih tidak ada perubahan. Sepertinya saya, bahwa server mencoba untuk memvalidasi dirinya pada server pusat kerberos dari jaringan universitas kami. Saya tahu bahwa beberapa tahun sebelumnya, IP ini terdaftar ke server yang menjalankan samba untuk departemen kami. Mungkinkah ada koneksi? Saya mengubah nama host saya menjadi yang digunakan saat itu, tidak ada perubahan dalam perilaku sudo. Lmwangi menyarankan sesuatu tentang PAM, yang saya hanya memiliki sedikit pengetahuan tentangnya, jadi saya tidak tahu bagaimana cara mendekati ini. Saya juga ingat saya beralih dari Heimdal Kerberos ke MIT Kerberos ketika menginstal samba, karena saya mempunyai masalah selama instalasi samba. Saya juga akan mencoba ide-ide dari komentar di hari-hari berikutnya, tetapi saya akan bepergian selama beberapa hari sehingga mungkin perlu waktu.
EDIT 2: Dipecahkan
Ada entri warisan dns-pencarian di /etc/network/interfaces
yang mengacaukan semuanya. Saya merasa sangat bodoh. Semuanya berfungsi sekarang.
strace
memungkinkan Anda untuk menjalankannya tanpa yang pertamasudo
. Mungkin juga membantu menggunakan-o <file>
opsi untuk menyimpan output ke file untuk analisis.sudo -k
menghapus kredensial cache Anda. Saya menemukanstrace -Tro sudo.log sudo echo hi
berguna karena kolom terakhir menunjukkan waktu di setiap panggilan.grep
untukuname
dansocket
sebagai starter.-r
opsi (yang mungkin harus dihapus). Mulailah dengan mencari panggilan lama dari-T
opsi - mereka adalah orang-orang dalam<
dan>
- 0,000097 detik dalam kasus Anda.strace
akan membawa Anda ke sana pada akhirnya tetapi ini mungkin masalah konfigurasi tingkat yang lebih tinggi. Jeda paling lama selama autentikasi adalah karena gagal mengakses server jarak jauh dan harus menunggu waktu habis. Mungkin perubahan subnet menempatkan server otentikasi pada subnet yang berbeda seperti ini.sudo
sementara menyimpan catatan auth sukses di bawahnya/var
jadi ini mungkin mengapa doa selanjutnya melalui instan.Jawaban:
Saya menduga bahwa kotak Anda berusaha menghubungi layanan otentikasi eksternal (pikirkan NIS / LDAP) menggunakan PAM ...
Jika saya memahami PAM dengan benar, Anda tidak akan dapat melihat pencarian PAM di panggilan strace Anda. Saya sarankan Anda menjalankan tshark / tcpdump dan melihat apakah Anda dapat menghubungkan lalu lintas jaringan tertentu dengan upaya sudo Anda. Tersangka di sini adalah pencarian DNS & | Panggilan LDAP.
Jika Anda mengetahui apa yang menyebabkan pencarian, cari tahu modul PAM yang relevan untuk mengedit dan memperbaiki masalah tersebut. Atau, jika ini adalah pencarian DNS, cukup tambahkan entri / etc / hosts untuk memalsukan nama dan arahkan ke localhost. Ini akan membuat sudo Anda cepat karena pencarian akan cepat dan akan mengarahkan ulang ke localhost dan transaksi jaringan akan gagal dengan cepat karena tidak ada yang mendengarkan di localhost ...
sumber