Неможливо записати в / tmp OSX, не вдалося виправити дозволу Операція не дозволена


10

OSX (10.11 El Capitan) не може встановити будь-які оновлення програмного забезпечення або встановити будь-яке програмне забезпечення, оскільки /tmp і /private/tmp папки, здається, неможливо записати.

Біг sudo /usr/libexec/repair_packages --repair --standard-pkgs --volume /

дає unable to set owner and group on "tmp" Error 1 Operation not permitted unable to set permissions on "tmp" Error 1 Operation not permitted

Чи є спосіб вручну видалити папки tmp і відновити їх? Коли я спробував перейменування або видалення / tmp або / private / tmp, я продовжував отримувати операцію не дозволяється. sudo chmod 1777 також не пройшов так само в папках / tmp та / private / tmp

Програма Disk-Utility говорить про те, що диск здоровий, під час надання першої допомоги не виявлено жодних проблем.

Чи є спосіб перенаправити розташування TMP в іншу папку для запису?


1
Ви спочатку вимкнули SIP? Від відновлення; Термінал csrutil disable
Tetsujin

2
У мене така ж проблема. Слідом за порадою Тецужина, перезапустився в режимі відновлення і побіг csrutil disable. Після цього мені вдалося виконати repair_packages з успіхом і отримав доступ / tmp як завжди. Однак після повернення в режим відновлення і виконання csrutil enableу моїй системі є одна і та ж проблема. Здається, єдиним способом отримати доступ до / tmp є відключення захисту системної цілісності.
Andrew Ferk

3
Я закінчився тим, що повернувся до режиму відновлення і виконав csrutil disable. Після перезавантаження я видалив папку tmp: sudo rm /tmp; sudo rm /private/tmp, створена папка tmp sudo mkdir /private/tmp; sudo chown root:wheel /private/tmp; sudo chmod 1777 /private/tmp, створено символічне посилання: sudo ln -s /private/tmp /tmpі побіг repair_pacakges знову. Після повернення до режиму відновлення і запуску csrutil enable, все знову працює! Тим не менш, дозволи / private / tmp були раніше drwxrwxrwt@ і тепер вони є drwxrwxrwt. Я не впевнений, що @ це і якщо це призведе до проблем.
Andrew Ferk

1
@AndrewFerk: перегляньте ці повідомлення apple.stackexchange.com/questions/42177/… unix.stackexchange.com/questions/10/what-does-the-mean-in-ls-l для пояснення @ розширені дозволи маркер
Adam Michalik

Відповіді:


14
  1. Перезавантажте комп'ютер Mac режим відновлення
  2. Відкрийте меню утиліт у верхній панелі & gt; відкрити термінал

    csrutil disable
    
  3. Перезавантаження

  4. Видалити папку tmp

    sudo rm -i /tmp
    sudo rm -i /private/tmp
    
  5. Створіть папку tmp

    sudo mkdir /private/tmp
    sudo chown root:wheel /private/tmp
    sudo chmod 1777 /private/tmp
    
  6. Створіть символічну посилання

    sudo ln -s /private/tmp /tmp
    
  7. Запустити repair_packages (Вам не потрібно робити це)

    sudo /usr/libexec/repair_packages --repair --standard-pkgs --volume /
    
  8. Перезавантажте режим відновлення і запустіть

    csrutil enable
    
  9. Перезавантаження


Підставки для Ендрю Ферка для з'ясування виправлення; витягуючи ваш коментар як відповідь на вікі для спільноти, так це більш читабельно.


2
Дякую!!! Я витратив 3 дні тягнуче моє волосся над це. Не знаю, як дозволу отримали настільки загвинчені в першу чергу, але в один прекрасний день я включив Mac до вибору попереджень, програм не працює і неможливість встановити що-небудь. Це вирішило цю проблему.
johngeorgewright

Чому ви зробили це CW?
Revetahw

Тому що я не хотів отримати кредит за відповідь, яку я просто перетворив з чужого коментаря
ento

Добре, прохолодно. До речі, я не бачив вашого коментаря до цих пір, оскільки не було @Fiksdal.
Revetahw

10.13: sudo: / usr / libexec / repair_packages: команда не знайдена
Даниил Пронин

0

Я вирішив це, відновивши мою систему з резервної копії Time Machine. Але інші пропозиції в коментарях теж варто спробувати.


0

Спробуйте створити та змінити дозволи на /private/tmp без запуску csrutil disable. Це працювало для мене, після безуспішної спроби видалити і повідомлення про помилку при завантаженні зникло.


Ласкаво просимо до Суперкористувача. Будь ласка, не публікуйте відповідь, щоб підтвердити, що інша відповідь спрацювала. Формат Q & amp; A у форматі сайту забезпечує відповіді на вирішення питання, і кожна відповідь має сприяти іншому рішенню. Для того, щоб вказати, що відповідь була корисною, потрібно вкласти трохи часу на сайт, і ви отримаєте достатню кількість привілеїв відповіді, які вам подобаються.
fixer1234


0

Якщо ви отримали це повідомлення в терміналі (або iTerm) за допомогою maxOS Mojave

Операція не дозволена

Виявилося, що мені потрібно додати своє термінальне додаток до Settings.app "Безпека та конфіденційність" & gt; "Повний доступ до диска"
(Я додав обидва terminal.app і iTerm.app )

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