Sudo neden bu kadar uzun sürüyor?


13

Geçenlerde macOS Sierra 10.12.4 Beta'ya (16E144f) güncelledim ve sudobu sorun oluştuğundan beri hatırladığım en son değişiklik olduğu için 10 dakikaya kadar gecikmeye neden olabilir . Temel bir program için bu kadar uzun süre beklemek zorunda kalmadım ve bir şeyler açıkça yanlış. Komut sonunda başarılı olur, ancak çok uzun bir süre bekledikten sonra.

Bu soruyu referans olarak kullanıyorum . Şimdiye kadar, ana bilgisayar adımı 127.0.0.1satırın sonuna da eklemeyi denedim /etc/hosts. Kontrol ettim /etc/resolv.confve manuel DNS girişlerine ihtiyaç duyan bir ağdayken bazı ekstra girişler yaptım, ancak bunları kaldırdım ve hiçbir fark yoktu. networksetup -setdnsserversOrijinal değerleri geri yüklemek için komutu kullandım . İnternet hala iyi çalışıyor ama yine de çok yavaş sudo.

logger 'test'Komutu yazmayı düşünerek denedim /var/log/system.log, ancak kısa süre içinde yeniden yapılmasına rağmen bu dosyayı tamamen silmiş gibi görünüyor.

straceÇalışırken ne olduğunu görmek için komutu kullanmayı umuyordum sudoama bu komut OS X'te mevcut değil. Daha önce bu işletim sisteminde bu sorunla karşılaşan var mı?

/var/log/system.log, ilgili olabilecek aşağıdaki iletilere sahiptir. Komut yine normal şekilde başarılı olur:

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

Herhangi bir yardım mutluluk duyacağız.


Sudo ile hangi komutu çalıştırdığınız önemli mi? Günlükteki zaman damgaları sudo ve sudo yürütme eyleminizle nasıl ilişkilidir? Orada opendirectoryd görüyorum, yerel bir hesapla mı yoksa bir ağ hesabıyla mı çalışıyorsunuz? Kullanıcıları değiştirirseniz (veya yerel olarak yeni bir tane ayarlarsanız), sudo da orada yavaşlar mı?
nohillside

Aynı beta çalıştırıyorum ve sudo her zamanki gibi hızlı.
nohillside

1
@patrix Ah tamam. Evet, başka bir şey olabilir. Evet, sudo ile hangi komutu kullanırsam kullanın, gecikme tutarlıdır. Temel olarak, komut bu günlük satırının etrafında başlar com.apple.quicklookve son olarak sonda biter, bu nedenle bu örnekte aradaki tüm mesajlarla yaklaşık 8 dakikadır. Opendirectoryd iletisi, nihayet sudo lsyerel ana dizinimde çalıştığında gerçekleşiyor gibi görünüyor . Şu anda sadece yerel klasörlerle çalışıyorum. Yeni bir hesapla ne olduğunu görebilsem de bu bilgisayarda sadece bir kullanıcı var ...
Spencer Williams

@patrix Yönetici ayrıcalıklarına sahip başka bir kullanıcı yaptım. Ne yazık ki, bu hesap aynı sorunu yaşıyor.
Spencer Williams

Yanıtlar:


11

ErikMH'nin cevabı bana önce tüm sistemimi geri döndürmeden / yükseltmeden sudoers dosyasını geri döndürmeye çalışmamı sağladı. Kısacası:

  1. Bir kök kabuk almak için bunu çalıştırın: sudo -s
  2. Kopyasını oluştur /private/etc/sudoers
  3. Çalıştırmak: cp /private/etc/sudoers\~orig /private/etc/sudoers
  4. İzinleri çalıştırarak düzeltin: chmod 440 /private/etc/sudoers ; chown root:wheel /private/etc/sudoers
  5. Dosyaları /private/etc/sudoers.d/oradan uzağa taşıyın
  6. sudoBaşka bir terminalde test edin
  7. Komutları istemeden kök olarak yanlışlıkla çalıştırmayı önlemek için bu kabuktan çıkmayı unutmayın.

Şimdi koşmak sudotekrar çalışmalı.

Bir sonraki adım, eski sudoers dosyası (2. adımda kopyaladınız) ve geçerli dosya arasındaki farkları kontrol etmek ve bu değişiklikleri adım adım /private/etc/sudoersveya seçeneğine /private/etc/sudoers.d/, her seferinde sudodeğişikliğin bozup kırılmadığını kontrol etmek için kullanarak komut eklemektir .

Benim durumumda, sudoers dosyasında var olmayan bir grup belirtmiştim. Bunu düzeltmek sorunumu çözdü.


macOS 10.13 üzerinde çalıştı!
Nisba

Benim için de çalıştı (OSX 10.13). Aynı sorun vardı - sudoer dosyasında varolmayan bir grup.
Petr Cibulka

Hmm ... Bu sorun yaşadığım makinedeki sudoers dosyasını değiştirdiğimi hatırlamıyorum, ancak keşke sistemimi geri yüklemek yerine önerdiğiniz şeyi denemiş olsaydım.
Spencer Williams

Devam ettim ve cevabınızı kabul ettim, çünkü insanlar bunun yardımcı olduğunu onaylıyor gibi görünüyor ve eminim önce bunu denemiş olsaydım, ne de genel olarak tüm sisteminizi geri yüklemenizi önermem.
Spencer Williams

2

Bu, / private / etc / sudoers dosyasını daha önce düzenlediyseniz 10.12.4'e yükseltirken ortaya çıkabilir.

En kolay çözüm:

  1. Sistemin önceki bir sürümüne geri dönün (güncellemeden önce her zaman sisteminizi kopyalarsınız, değil mi?)
  2. / Private / etc / sudoers dosyasını sil
  3. / Private / etc / sudoers ~ orijinallerini sudoers'a kopyala
  4. Sudo kullanıcılarının sahipliğini sistem / kök olarak sıfırlayın - salt okunur
  5. Sistemi 10.12.4'e yükseltin

"Bu, / private / etc / sudoers dosyasını daha önce düzenlediyseniz 10.12.4'e yükseltirken oluşabilir." Buna neyin sebep olduğunu biliyor muyuz?
Wowfunhappy

1

Keşke bunun asıl nedenini bulabilseydim, ancak sorunu ancak sistem yazılımını geri yükledikten sonra çözebilseydim. Daha önce macOS Sierra'nın Kamu Beta'sıydım ama şimdi ana olandayım.

Yavaş yavaş tüm programlarımı yüklüyorum ve sudotekrar bir gecikme yaşayıp yaşamadığımı göreceğim .


0

/etc/sudoers.d/İçinde kaldırdığım bir dosya vardı . Voila - sudoyine hızlı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.