Чому судо проходить занадто довго?


13

Я нещодавно оновив до macOS Sierra 10.12.4 Beta (16E144f), і це може спричинити sudoзатримку до 10 хвилин, оскільки це остання зміна, яку я пам'ятаю з моменту виникнення цієї проблеми. Мені ніколи не довелося так довго чекати основної програми, і щось явно не так. Команда врешті-решт досягає успіху, але після занадто довгого очікування.

Я використовую це питання як орієнтир. Поки я намагався додати своє ім’я хоста до кінця 127.0.0.1рядка /etc/hostsтакож. Я перевірив, /etc/resolv.confі у мене були додаткові записи, коли я був у мережі, яка потребувала ручних записів DNS, але я їх видалив, і різниці не було. Я використовував networksetup -setdnsserversкоманду для відновлення вихідних значень. Інтернет все ще працює чудово, але все ще дуже повільно sudo.

Я спробував logger 'test'команду, думаючи, що вона запише /var/log/system.log, але схоже, що цей файл повністю видалили, хоча це було скоро створено заново.

Я сподівався використати straceкоманду, щоб побачити, що відбувається під час sudoзапуску, але ця команда недоступна в OS X. Хтось раніше стикався з цією проблемою в цій операційній системі?

/var/log/system.log містить такі повідомлення, які можуть бути релевантними. Знову команда в кінцевому рахунку досягає успіху як звичайна:

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

Будь-яка допомога буде вдячна.


Чи має значення, яку команду ви пробіжете через sudo? Як часові позначки в журналі відносяться до вашої дії по виконанню судо і про перебігу судо? Я бачу opendirectoryd там, ви працюєте з локальним або мережевим обліковим записом? Що станеться, якщо ви переключите користувачів (або налаштуєте нового на місцевому рівні), і там sudo повільно?
nohillside

Я запускаю ту саму бета-версію, і судо швидко, як завжди насправді.
nohillside

1
@patrix Ага гаразд. Так, це дуже добре може бути чимось іншим. Так, це відбувається незалежно від того, яку команду я використовую з sudo, затримка послідовна. В основному команда починається навколо цього рядка журналу про com.apple.quicklookі, нарешті, закінчується в кінці, тому в цьому прикладі було близько 8 хвилин з усіма цими повідомленнями між ними. Здається, повідомлення opendirectoryd виникає всякий раз, коли воно нарешті запускається sudo lsв моєму локальному домашньому каталозі. Зараз я працюю лише з локальними папками. У мене на цьому комп’ютері є лише один користувач, хоча я бачу, що відбувається з новим обліковим записом ...
Спенсер Вільямс

@patrix Я щойно створив іншого користувача з правами адміністратора. На жаль, з цим рахунком виникає та сама проблема.
Спенсер Вільямс

Відповіді:


11

Відповідь ErikMH дала мені думку спершу просто спробувати відновити файл sudoers, не повертаючи / модернізуючи всю свою систему знову. Отже коротко:

  1. Запустіть це, щоб отримати кореневу оболонку: sudo -s
  2. Зробіть копію /private/etc/sudoers
  3. Виконати: cp /private/etc/sudoers\~orig /private/etc/sudoers
  4. Виправте дозволи, запустивши: chmod 440 /private/etc/sudoers ; chown root:wheel /private/etc/sudoers
  5. Перемістіть /private/etc/sudoers.d/звідти будь-які файли
  6. Тестуйте sudoв іншому терміналі
  7. Не забудьте вийти з цієї оболонки, щоб запобігти ненавмисному виконанню команд як корінь, коли цього не маєте на увазі

Тепер біг sudoповинен працювати знову.

Наступним кроком є ​​перевірка відмінностей між старим файлом sudoers (ви скопіювали його на кроці 2) та поточним, і додайте ці зміни крок за кроком до /private/etc/sudoersабо /private/etc/sudoers.d/, щоразу виконуючи команду, sudoщоб перевірити, чи змінює це зміна.

У моєму випадку я вказав неіснуючу групу у файлі sudoers. Виправлення, що вирішило мою проблему.


працював на macOS 10.13!
Нісба

Працював і для мене (OSX 10.13). Також була така ж проблема - неіснуюча група у файлі sudoer.
Петро Цибулька

Хм ... я не пам’ятаю, щоб змінити файл судорів на машині, де у мене була ця проблема, але хотілося б, щоб я спробував те, що ви запропонували, замість відновлення моєї системи.
Спенсер Вільямс

Я пішов вперед і прийняв вашу відповідь, тому що, схоже, люди підтверджують, що це допомагає, і я впевнений, що хотів би спробувати це в першу чергу, а також не рекомендую відновити всю вашу систему.
Спенсер Вільямс

2

Це може статися під час оновлення до 10.12.4, якщо ви коли-небудь редагували файл / private / etc / sudoers.

Найпростіше рішення:

  1. Поверніться до попередньої версії системи (ви завжди клонуєте свою систему перед оновленням, правда?)
  2. Видалити / приватне / тощо / sudoers
  3. Копіювати / приватно / тощо / sudoers ~ походить до sudoers
  4. Скиньте право власності на sudoers на систему / root - лише для читання
  5. Оновіть систему до 10.12.4

"Це може статися під час оновлення до 10.12.4, якщо ви коли-небудь редагували файл / private / etc / sudoers." Ми знаємо, що насправді це викликає?
Wowfunhappy

1

Я б хотів, щоб я міг знайти справжню причину цього, але вирішити проблему я міг лише після відновлення системного програмного забезпечення. Раніше я був публічною бета-версією macOS Sierra, але зараз я перебуваю на головній.

Я повільно завантажую всі свої програми, і зауважу, якщо sudoзнову відчуваю затримку .


0

У мене був файл, /etc/sudoers.d/який я видалив. Вуала - sudoзнову швидка.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.