จะทราบได้อย่างไรว่าอะไรทำให้เจ้าของ / usr / local เปลี่ยนจากชื่อผู้ใช้ของฉันเป็นรูท


13

ฉันใช้homebrewเป็นผู้จัดการแพคเกจสำหรับแอปพัฒนาเว็บไซต์ เพื่อให้brewขึ้นไปวันที่ผมทำงานสองสามวันทุกวันและยังใช้update brew brew doctorปกติแล้วนี่เป็นเรื่องปกติและbrewบอกฉันว่าฉันพร้อมจะชงแล้ว

อย่างไรก็ตามทุกครั้งที่ฉันได้รับข้อผิดพลาดต่อไปนี้:

คำเตือน: / usr / local / etc ไม่สามารถเขียนได้

สิ่งนี้อาจเกิดขึ้นได้หากซอฟต์แวร์ "sudo ทำการติดตั้ง" ที่ไม่ได้จัดการโดย Homebrew หากสูตรพยายามเขียนไฟล์ไปยังไดเรกทอรีนี้การติดตั้งจะล้มเหลวระหว่างขั้นตอนการเชื่อมโยง

คุณควรchown/ usr / local / ฯลฯ

คำเตือน: ไดเร็กทอรี / usr / local ไม่สามารถเขียนได้ แม้ว่าไดเรกทอรีนี้จะสามารถเขียนได้เมื่อคุณติดตั้ง Homebrew ซอฟต์แวร์อื่น ๆ อาจเปลี่ยนสิทธิ์ในไดเรกทอรีนี้ ส่วนประกอบ "InstantOn" ของ Airfoil บางรุ่นเป็นที่รู้จักกันในการทำเช่นนี้

คุณควรเปลี่ยนความเป็นเจ้าของและสิทธิ์ของ / usr / local กลับไปเป็นบัญชีผู้ใช้ของคุณ

ง่ายพอที่จะรีเซ็ตสิทธิ์กลับไปเป็นชื่อผู้ใช้ของฉัน หลังจากนั้นbrewดูเหมือนว่าจะไม่เป็นไร

แต่สิ่งที่ทำให้สิ่งนี้เกิดขึ้น?

มีบันทึกที่แสดงว่าอะไรเป็นสาเหตุของการอนุญาตให้เปลี่ยนหรือไม่?


3
ไม่มีบันทึก แต่โปรดทราบว่าการมี / usr / local เป็นเจ้าของโดย rood เป็นมาตรฐาน Unix และดังนั้นการสร้างใด ๆ ในนั้นจะคาดหวังมัน โซลูชันไม่ได้ผสมไดเรกทอรีกับตัวจัดการแพคเกจ (Homebrew) และการรวบรวม Unix มาตรฐาน - ใช้ไดเรกทอรีอื่นสำหรับหนึ่งในนั้น
user151019

3
/usr/localการเพิ่มซอฟต์แวร์ไปยังสถานที่เช่นเดียวกับการใช้แพคเกจรางหญ้าเป็นความคิดที่ไม่ดีและเพื่อให้มีการเปลี่ยนแปลงเจ้าของและสิทธิ์ใน แต่ถ้าคุณยืนยันแล้วคุณสามารถทำได้make installโดยไม่ใช้sudoแพ็คเกจที่คุณติดตั้งเอง
fd0

1
โดยทั่วไปการอัปเกรด OS X จะรีเซ็ต / usr / เป็นเจ้าของและสิทธิ์
mspasov

1
@Others ah ฉันอ่านคำพูดจาก Homebrew มากกว่าคำถาม
user151019

1
คุณไม่อะไรอื่นติดตั้ง (ด้วยตนเองหรือผ่านผู้จัดการแพคเกจอื่น ๆ ) บน Mac ของคุณซึ่งมีการกำหนดค่าที่จะเริ่มต้นการติดตั้งใน/usr/local?
แดน

คำตอบ:


13

ฉันมีปัญหาเดียวกันนี้และปรากฎว่าการอัปเดตอัตโนมัติของ Sophos คือการตำหนิ ฉันคิดออกโดยใช้:sudo fs_usage | grep "usr/local"

ใช้เวลาสักครู่ แต่ในที่สุดฉันก็เห็น daemon ชื่อ "การติดตั้ง" ที่เป็นประโยชน์ของ messing กับสิทธิ์ของ / usr / local

ฉันยังคงพยายามหาวิธีการแก้ไขที่เหมาะสมสำหรับพฤติกรรมนี้

แก้ไข: ฉันเชื่อว่า Sophos ได้แก้ไขปัญหานี้แล้วให้ดูลิงก์ในความคิดเห็นของคำตอบนี้ ดูเหมือนว่าฉันจะได้รับการแก้ไขอย่างน้อย!


4
มีการสนทนาที่นี่: community.sophos.com/products/free-antivirus-tools-for-desktops/
......

@JoeZuntz ดีหา! ยอดเยี่ยมที่พวกเขากำลังผลักดันการแก้ไข
อื่น ๆ

@others ขอบคุณสำหรับข้อมูลนี้ ฉันสามารถแก้ไขทุกอย่างหลังจากอัปเกรดเป็น 10.11.1 และทำให้ homebrew ทำงานอีกครั้ง แต่บ่อยกว่านั้นทุกครั้งที่ฉันไปอัปเกรดชงสิทธิ์ได้เปลี่ยนไปอีกครั้ง มันทำให้ฉันซอฟแวร์ยังคงเปลี่ยน perms บน / usr / local
ทิม X

@TimX ใช่มันแย่แล้ว ... โชคดีที่ดูเหมือนว่า Sophos กำลังจะทำการปรับปรุงในปลายสัปดาห์หน้านี้วันที่ 20 พฤศจิกายน
อื่น ๆ

4

ปรากฎว่า Filewave เป็นตัวการ Filewave เป็นซอฟต์แวร์การจัดการระบบที่โรงเรียนของเราใช้เพื่อผลักดันการอัปเดตซอฟต์แวร์ ขอบคุณสำหรับการป้อนข้อมูล


2

ฉันมีความคิดคร่าวๆว่าจะขโมยสิทธิ์อย่างไร นี่ไม่ใช่วิธีการแก้ปัญหาของคุณ แต่เพิ่มเติมวิธีแก้ปัญหาบางอย่าง

สิ่งที่เกี่ยวกับการเขียน watchdog ใน Automator หรือ Hazel (การกระทำของโฟลเดอร์) สำหรับการดูโฟลเดอร์นี้โดยเฉพาะ แต่แทนที่จะเพิ่มฟังก์ชั่นเช่นภาพขนาดคุณเพียงแค่ใช้ shellscript ซึ่งรันคำสั่งเชลล์หลายคำสั่ง:

  • ถ้าโฟลเดอร์ที่มีการเปลี่ยนแปลงในทางใด ๆ เพียงแค่ snapshot สิทธิ์และปัจจุบันการเข้าถึงกระบวนการ id fuser <foldername>กับ
  • จากนั้นคุณค้นหาในตารางกระบวนการ id กระบวนการ ( ps auxwwwwww | grep <process id>) และในที่สุด
  • เขียนอีเมลถึงตัวคุณเองพร้อมกับข้อมูลที่รวบรวมได้เหล่านี้

น่าเสียดายที่ฉันไม่ใช่ Automator sadhu แต่ฉันพบโดย Google มีวิธีแก้ปัญหาที่คล้ายกันมากมาย


0

หากคุณใช้ Time Machine คุณสามารถค้นหาเวลาโดยประมาณเมื่อสิทธิ์เปลี่ยนแปลงโดยสำรวจBackups.backupdbใน Terminal ใช้ls -ldในโฟลเดอร์บันทึกเวลาเช่น

ls -ld /Volumes/Backup/Backups.backupdb/Mac/2015-12-25-120000/Macintosh\ HD/usr/local 

ซึ่งจะแสดงข้อมูลเจ้าของและกลุ่ม

เมื่อคุณมีวันที่ที่การเปลี่ยนแปลงเกิดขึ้นคุณสามารถทราบได้ว่ามีอะไรเปลี่ยนแปลงอีกบ้างในระบบของคุณ เทคนิคง่ายๆคือการใช้ไฟล์ Finder's› ค้นหาและเพิ่มLast modified dateเกณฑ์ เครื่องมือที่ดีอื่น ๆ ที่มีfindและmdfindในเทอร์มิ


-1

นี่คือผลข้างเคียงของการอัพเดตระบบของคุณ OS X อาจทำการ "ซ่อมแซม" ได้ทั่วทั้งบอร์ดในระหว่างกระบวนการอัปเดตเนื่องจาก / usr / local ซ้อนอยู่ในโฟลเดอร์ที่เป็นเจ้าของรูท


AFAICT การอัปเกรดเป็น El Capitan เป็นสิ่งที่ทำให้เกิดปัญหากับฉัน
Giuseppe

-3

คุณใช้Disk Utilityselect Macintosh HDแล้วเรียกใช้Verify Disk Permissionแล้วRepair Disk Permissionถ้าจำเป็นแทนที่จะทำด้วยตนเอง?

ตอนนี้สิ่งนี้ไม่ควรแก้ไขปัญหาของคุณ แต่เป็นจุดเริ่มต้นที่ 'รู้จัก' ที่ดีเพื่อดูว่าผู้ผลิตเบียร์เปลี่ยนการอนุญาต มันสามารถแสดงปัญหาพื้นฐานหากคุณโชคดี

นอกจากนี้new update -vสำหรับการส่งออก verbose เพิ่มเติมรวมทั้งบันทึกเก่าอยู่ที่นี่~/Library/Logs/Homebrewต่อบันทึก homebrew ที่ไหน?


2
Disk Utilityจะไม่ยืนยันหรือซ่อมแซมสิทธิ์/usr/localเนื่องจากไดเรกทอรีนี้ไม่มีอยู่ในการติดตั้งใหม่ของ Yosemite
แดน

ฉัน checkd สมมติฐานนี้อย่างเต็มที่ในโยเซมิตีโดยการสร้างใหม่อยู่กับผมและทำงาน/usr/local DUไม่มี/usr/localอยู่ในDUบันทึก และ/usr/localยังคงเป็นของฉัน
แดน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.