วิธีการเปลี่ยนเจ้าของไดเรกทอรี


14

แก้ไข : ปัญหาคือแอปเปิ้ลใช้สิทธิ์ในการทำเครื่องหมายสำรองข้อมูลและป้องกันไม่ให้คุณแก้ไขพวกเขา (อาจเป็นคุณลักษณะด้านความปลอดภัย) โดยใช้chmod -RN <dir>ฉันลบข้อมูล ACL จากโฟลเดอร์ทั้งหมดที่มีข้อมูลสำคัญและนั่นทำให้ฉันสามารถทำให้ตัวเองเป็นเจ้าของและใช้สิทธิ์ที่เหมาะสม

คำถามเดิม
ฉันมีการสำรองข้อมูลที่มีขนาดใหญ่มาก (> 700GB) ที่ตอนนี้มีการอนุญาตที่ไม่ถูกต้อง (UID ของฉันเปลี่ยนไประหว่างการติดตั้งใหม่ทั้งหมด) และฉันต้องเปลี่ยนพวกเขา ตัวเลือกที่ใช้เวลานานคือการผ่านแต่ละโฟลเดอร์ด้วยตนเองและเปลี่ยนการอนุญาต แต่จะใช้เวลานาน

ฉันต้องการใช้chownเพื่อทำให้ตัวเองเป็นเจ้าของข้อมูลสำคัญทั้งหมดของฉันแล้วใช้chmod 700ในโฟลเดอร์เหล่านั้นทั้งหมดเพื่อให้rwxสิทธิ์แก่ฉันเท่านั้น

ทางออกที่ดีที่สุดคือวิธีการใช้findเพื่อค้นหาโฟลเดอร์ที่ตรงกับ regex ซ้ำ (อันปัจจุบันของฉัน.*/[DCV].*|Pictures|M[ou].*) แล้วทำให้ UID ของฉันเป็นเจ้าของและตั้งค่าการอนุญาตเป็น 700

บิตที่สำคัญที่ฉันไม่สามารถเข้าใจ:
แต่เมื่อฉันพยายามที่จะเรียกฉันได้รับchown Me DirectoryNamechown: DirectoryName: Operation not permitted

ทุกสิ่งที่ฉันค้นหาเกี่ยวข้องกับการเปลี่ยนการอนุญาตของไฟล์ไม่ใช่ไดเรกทอรี บางทีฉันอาจจะมองผิดวิธีนี้?
มีบางอย่างบอกฉันว่าไม่มีวิธีให้ UID ของฉันrwxและ---แก่คนอื่น

ฉันจะบรรลุสิ่งนี้ได้อย่างไร ฉันใช้ Mac OS X 10.10.3

ฉันรู้ว่านี้เป็นฟอรั่ม Unix / Linux (และผมใช้ Mac) แต่คำถามนี้เป็นมากขึ้นเกี่ยวกับการใช้เปลือกchown, chmodและสิทธิ์และการแก้ปัญหาใด ๆ ที่โพสต์ที่นี่จะใช้บังคับกับการใด ๆ ระบบปฏิบัติการ UNIX-based มันจะดีกว่าถ้าโซลูชั่นที่โพสต์จะทำให้การสำรองข้อมูลเก่าของฉันปรากฏขึ้นอีกครั้งใน Time Machine

ขอบคุณทุกคนที่ตอบกลับโดยทันที แต่chownดูเหมือนจะไม่ทำงานในไดเรกทอรีด้วยเหตุผลบางอย่าง ความจริงที่ว่านี่เป็น.sparsebundleภาพดิสก์บนไดรฟ์เครือข่ายที่เกี่ยวข้องหรือไม่ ฉันคิดว่ามันจะเหมือนกับไดรฟ์ภายนอก


ไดรฟ์เครือข่ายชนิดใด หากเป็น NFS มีโอกาสที่ดีที่จะถูกส่งออกโดยroot_squashเปิดใช้งานดังนั้นคุณจะไม่สามารถดำเนินการแบบรูทเท่านั้นเช่นchownจากไคลเอนต์
Toby Speight

มันเป็น HDD ภายใน Apple Time Capsule โดยพื้นฐานแล้วมันเป็นดิสก์ที่มีการป้องกันด้วยรหัสผ่านภายในสถานีฐาน WiFi ข้อแตกต่างคือ HDD เชื่อมต่อกับคอมพิวเตอร์ของคุณผ่านทางอีเธอร์เน็ต มีจริงเป็นพอร์ต USB แต่ฉันไม่เคยใช้มัน
Arc676

มิฉะนั้นมาตรฐานfind . -user $other_uid -print0 | sudo xargs chown $USERควรทำงาน
Toby Speight

ระบบไฟล์เครือข่ายใด df -hT <dirname>ควรบอกคุณ
Toby Speight

@TobySpeight df -hT <dir>จะช่วยให้การส่งออกไม่เป็น) ไดเรกทอรีรากของเครือข่าย HDD ข) ภาพดิสก์ภายในเครือข่าย HDD c) โฟลเดอร์บนฮาร์ดดิสก์เครือข่าย บางทีพฤติกรรมที่คุณตั้งใจจะนำไปใช้นั้นแตกต่างกันใน Mac และบน Linux?
Arc676

คำตอบ:


23

ฉันอาจเข้าใจผิด แต่คุณสามารถใช้ chmod ซ้ำและ chown เช่น

chown -R username:username /path/directory

หากต้องการใช้สิทธิ์ 700 ซ้ำคุณสามารถใช้:

chmod -r 700 /path/directory

แน่นอนข้างต้นสำหรับ Linux ดังนั้นไม่แน่ใจว่า mac osx เหมือนกัน

แก้ไข: ใช่ขออภัยลืมที่จะพูดถึงคุณจะต้องเป็นรากที่จะ chown บางสิ่งบางอย่างฉันแค่คิดว่าคุณรู้เรื่องนี้ ... ฉันไม่ดี


1
Mac OS ใช้ไวยากรณ์เดียวกัน ในการรันคำสั่งในฐานะรูทวิธีที่ง่ายที่สุดใน Mac คือการใส่คำนำหน้าด้วยsudoดังนั้นsudo chmod(คุณจะถูกถามรหัสผ่านพร้อมสิทธิ์การเข้าถึงของ Adminstrator)
mjturner

2

ลองใช้ราก

 find wherever -type d -name ... -exec chown Me {} \;

ที่ไหน

  • -type d ใช้กับ dir เท่านั้น
  • -name ... regexp ของคุณ
  • -exec chown Me {} \; ใช้ chown ในการค้นหา dir

คุณจะต้องรูทเพื่อ chown

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