ไม่สามารถเขียนไดเรกทอรี / tmp ใน macOS ไม่สามารถแก้ไขการอนุญาต:“ ไม่อนุญาตการดำเนินการ”


13

macOS El Capitan (10.11) ไม่สามารถติดตั้งการอัปเดตซอฟต์แวร์ใด ๆ หรือติดตั้งซอฟต์แวร์ใด ๆ เพราะ/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 ก่อนหรือไม่ จากการกู้คืน; Terminalcsrutil disable
Tetsujin

2
ผมมีปัญหาเดียวกัน. คำแนะนำตาม Tetsujin csrutil disableของการเริ่มต้นใหม่ในโหมดการกู้คืนและวิ่ง หลังจากนั้นฉันก็สามารถดำเนินการได้repair_packagesสำเร็จและสามารถเข้าถึง / tmp ได้ตามปกติ อย่างไรก็ตามหลังจากกลับไปที่โหมดการกู้คืนและการดำเนินการcsrutil enableระบบของฉันมีปัญหาเดียวกัน ดูเหมือนว่าวิธีเดียวที่ฉันสามารถเข้าถึง / tmp ได้คือการปิดใช้งานการป้องกันความสมบูรณ์ของระบบ
Andrew Ferk

4
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, สร้าง symlink: sudo ln -s /private/tmp /tmpและรันrepair_pacakgesอีกครั้ง หลังจากกลับไปที่โหมดการกู้คืนและการใช้งานcsrutil enableทั้งหมดจะทำงานอีกครั้ง! แต่สิทธิ์ของ / 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

อีกที่เรียบง่าย, การแก้ปัญหา : เห็นได้ชัดsudo mkdir /private/tmpตามด้วยsudo chmod +t /private/tmpเป็นพอ
Clément

คำตอบ:


22
  1. รีบูตเครื่อง Mac ของคุณเข้าสู่โหมดการกู้คืน
  2. เปิดเมนู Utilities ในแถบด้านบน> เปิด Terminal

    csrutil disable
    
  3. Reboot

  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. สร้าง symlink

    sudo ln -s /private/tmp /tmp
    
  7. เรียกใช้repair_packages(คุณอาจไม่จำเป็นต้องทำเช่นนี้)

    sudo /usr/libexec/repair_packages --repair --standard-pkgs --volume /
    
  8. รีบูตกลับไปที่โหมดการกู้คืนและเรียกใช้

    csrutil enable
    
  9. Reboot


อุปกรณ์ประกอบฉากเพื่อ Andrew Ferk สำหรับการแก้ไขปัญหา ดึงความคิดเห็นของคุณออกเป็นคำตอบของวิกิชุมชนจึงอ่านได้ง่ายขึ้น


2
ขอบคุณ!!! ฉันใช้เวลา 3 วันดึงผมออกมา ไม่ทราบเลยว่าสิทธิ์ได้รับการเมาแล้วตั้งแต่แรก แต่วันหนึ่งฉันเปิด Mac เพื่อเลือกคำเตือนโปรแกรมไม่ทำงานและไม่สามารถติดตั้งอะไรได้ ปัญหานี้ได้รับการแก้ไข
johngeorgewright

ทำไมคุณทำ CW นี้
Revetahw พูดว่า Reinstate Monica

1
เพราะฉันไม่ต้องการได้รับเครดิตสำหรับคำตอบที่ฉันเพิ่งเปลี่ยนใจจากความคิดเห็นของคนอื่น
ento

เอาล่ะเจ๋งดี BTW ฉันไม่เห็นความคิดเห็นของคุณจนกระทั่งตอนนี้เนื่องจากไม่มี @Fiksdal
Revetahw พูดว่า Reinstate Monica

10.13: sudo: / usr / libexec / repair_packages: ไม่พบคำสั่ง
ДаниилПронин


0

ฉันแก้ไขได้โดยกู้คืนระบบของฉันจากการสำรองข้อมูล Time Machine แต่ข้อเสนอแนะอื่น ๆ ในความคิดเห็นก็ควรลองเช่นกัน


0

หากคุณได้รับข้อความนี้ใน terminal (หรือ iTerm) โดยใช้ maxOS Mojave

ไม่อนุญาตให้ใช้งาน

มันกลับกลายเป็นว่าฉันต้องเพิ่มแอพเทอร์มินัลของฉันไปที่ Settings.app "ความปลอดภัยและความเป็นส่วนตัว"> "การเข้าถึงดิสก์เต็มรูปแบบ"
(ฉันเพิ่มทั้งสองterminal.appและiTerm.app)


-1

พยายามที่จะสร้างและปรับเปลี่ยนสิทธิ์บนโฟลเดอร์โดยไม่ต้องทำงาน/private/tmp csrutil disableสิ่งนี้ใช้งานได้สำหรับฉันหลังจากพยายามลบไม่สำเร็จและข้อความแสดงข้อผิดพลาดขณะบู๊ตหายไป


ยินดีต้อนรับสู่ Super User โปรดอย่าโพสต์คำตอบเพื่อยืนยันว่าคำตอบอื่นใช้งานได้ รูปแบบคำถาม & คำตอบของเว็บไซต์สำรองคำตอบสำหรับการแก้ปัญหาสำหรับคำถามและคำตอบแต่ละข้อควรมีส่วนร่วมในการแก้ปัญหาอื่น วิธีที่จะบ่งบอกว่าคำตอบมีประโยชน์คือการลงทุนในไซต์เพียงเล็กน้อยและคุณจะได้รับสิทธิพิเศษที่เพียงพอในการตอบคำถามที่คุณต้องการ
fixer1234
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.