Mengapa sudo terlalu lama?

13

Saya baru-baru ini memperbarui ke macOS Sierra 10.12.4 Beta (16E144f) dan mungkin itulah yang menyebabkan sudopenundaan hingga 10 menit karena ini adalah perubahan terbaru yang saya ingat sejak masalah ini terjadi. Saya tidak pernah harus menunggu begitu lama untuk program dasar dan ada sesuatu yang jelas salah. Perintah akhirnya berhasil, tetapi setelah menunggu terlalu lama.

Saya telah menggunakan pertanyaan ini sebagai referensi. Sejauh ini, saya juga telah mencoba menambahkan nama host saya ke akhir 127.0.0.1baris /etc/hosts. Saya memeriksa /etc/resolv.confdan saya memang memiliki beberapa entri tambahan ketika saya berada di jaringan yang membutuhkan entri DNS manual, tetapi saya menghapusnya dan tidak ada perbedaan. Saya menggunakan networksetup -setdnsserversperintah untuk mengembalikan nilai-nilai asli. Internet masih berfungsi dengan baik tetapi masih sangat lambat sudo.

Saya mencoba logger 'test'perintah berpikir itu akan menulis /var/log/system.log, tetapi sepertinya itu benar-benar menghapus file itu meskipun segera dibuat lagi.

Saya berharap untuk menggunakan straceperintah untuk melihat apa yang terjadi saat sudoberlari tetapi perintah itu tidak tersedia pada OS X. Apakah ada yang mengalami masalah ini pada sistem operasi ini sebelumnya?

/var/log/system.log memiliki pesan berikut yang mungkin relevan. Sekali lagi perintah itu akhirnya berhasil seperti biasa:

Feb  1 00:07:39 mycomputer com.apple.xpc.launchd[1] (com.apple.imfoundation.IMRemoteURLConnectionAgent): Unknown key for integer: _DirtyJetsamMemoryLimit
Feb  1 00:07:56 mycomputer com.apple.xpc.launchd[1] (com.apple.quicklook[2355]): Endpoint has been activated through legacy launch(3) APIs. Please switch to XPC or bootstrap_check_in(): com.apple.quicklook
Feb  1 00:08:16 mycomputer System Preferences[1886]: I can not do what i want
Feb  1 00:11:23 mycomputer com.apple.xpc.launchd[1] (com.apple.opendirectoryd[2335]): Service exited with abnormal code: 70
Feb  1 00:12:07 mycomputer syslogd[54]: ASL Sender Statistics
Feb  1 00:16:35 mycomputer com.apple.xpc.launchd[1] (com.apple.opendirectoryd[2395]): Service exited with abnormal code: 70

Bantuan apa pun akan dihargai.

Spencer Williams
sumber
Apakah penting perintah yang Anda jalankan melalui sudo? Bagaimana stempel waktu dalam log terkait dengan tindakan Anda mengeksekusi sudo dan pada sudo yang sedang berjalan? Saya melihat opendirectoryd di sana, apakah Anda bekerja dengan akun lokal atau akun jaringan? Apa yang terjadi jika Anda mengganti pengguna (atau mengatur yang baru secara lokal), apakah sudo lambat di sana juga?
nohillside
Saya menjalankan beta yang sama dan sudo cepat seperti biasanya.
nohillside
1
@ patrix Ah oke. Ya itu sangat baik bisa menjadi sesuatu yang lain. Ya itu terjadi tidak peduli apa perintah yang saya gunakan dengan sudo, penundaannya konsisten. Pada dasarnya, perintah dimulai di sekitar baris log itu com.apple.quicklookdan akhirnya selesai di akhir, jadi dalam contoh itu sekitar 8 menit dengan semua pesan di antaranya. Pesan opendirectoryd tampaknya terjadi kapan pun akhirnya berjalan sudo lsdi direktori home lokal saya. Saat ini saya hanya bekerja dengan folder lokal. Saya hanya memiliki satu pengguna di komputer ini walaupun saya dapat melihat apa yang terjadi dengan akun baru ...
Spencer Williams
@patrix Saya baru saja membuat pengguna lain dengan hak istimewa admin. Sayangnya, akun itu mengalami masalah yang sama.
Spencer Williams

Jawaban:

11

Jawaban ErikMH memberi saya ide untuk pertama hanya mencoba mengembalikan file sudoers, tanpa mengembalikan / memutakhirkan seluruh sistem saya lagi. Singkatnya:

  1. Jalankan ini untuk mendapatkan shell root: sudo -s
  2. Buat salinan /private/etc/sudoers
  3. Lari: cp /private/etc/sudoers\~orig /private/etc/sudoers
  4. Perbaiki izin dengan menjalankan: chmod 440 /private/etc/sudoers ; chown root:wheel /private/etc/sudoers
  5. Pindahkan semua file /private/etc/sudoers.d/dari sana
  6. Tes sudodi terminal lain
  7. Jangan lupa untuk keluar dari shell ini untuk mencegah secara tidak sengaja menjalankan perintah sebagai root ketika Anda tidak bermaksud melakukannya

Sekarang berlari sudoharus bekerja lagi.

Langkah selanjutnya adalah untuk memeriksa perbedaan antara file sudoers lama (Anda menyalinnya pada langkah 2) dan yang sekarang dan menambahkan perubahan itu langkah demi langkah kembali ke /private/etc/sudoersatau /private/etc/sudoers.d/, setiap kali menjalankan perintah menggunakan sudountuk memeriksa apakah perubahan itu rusak.

Dalam kasus saya, saya telah menentukan grup yang tidak ada di file sudoers. Memperbaiki itu memperbaiki masalah saya.

Cedric Dubois
sumber
bekerja pada macOS 10.13!
Nisba
Bekerja untuk saya juga (OSX 10.13). Juga memiliki masalah yang sama - tidak ada grup dalam file sudoer.
Petr Cibulka
Hmm ... Saya tidak ingat mengubah file sudoers pada mesin tempat saya mengalami masalah ini, tetapi saya berharap saya telah mencoba apa yang Anda sarankan daripada mengembalikan sistem saya.
Spencer Williams
Saya meneruskan dan menerima jawaban Anda karena sepertinya orang mengkonfirmasi bahwa itu membantu, dan saya yakin saya telah mencoba ini terlebih dahulu, saya juga umumnya tidak merekomendasikan memulihkan seluruh sistem Anda.
Spencer Williams
2

Ini dapat terjadi ketika memutakhirkan ke 10.12.4 jika Anda pernah mengedit file / private / etc / sudoers.

Solusi termudah adalah:

  1. Kembalikan ke versi sistem sebelumnya (Anda selalu mengkloning sistem Anda sebelum memperbarui, bukan?)
  2. Hapus / private / etc / sudoers
  3. Salin / pribadi / etc / sudoers ~ orig to sudoers
  4. Setel ulang kepemilikan sudoers ke sistem / root - read-only
  5. Tingkatkan sistem ke 10.12.4
ErikMH
sumber
"Ini bisa terjadi ketika meningkatkan ke 10.12.4 jika Anda pernah mengedit file / private / etc / sudoers." Apakah kita tahu apa yang sebenarnya menyebabkannya?
Wowfunhappy
1

Saya berharap saya bisa menemukan penyebab sebenarnya dari ini, tetapi saya hanya bisa menyelesaikan masalah setelah memulihkan perangkat lunak sistem. Saya sebelumnya di Beta Publik dari macOS Sierra tapi sekarang saya yang utama.

Saya perlahan-lahan memuat kembali semua program saya dan saya akan perhatikan jika saya mengalami penundaan sudolagi.

Spencer Williams
sumber
0

Saya memiliki file /etc/sudoers.d/yang saya hapus. Voila - sudocepat lagi.

vidstige
sumber