ไม่สามารถย้ายไฟล์ด้วยรูทบน OS X


53

ฉันพยายามย้ายไฟล์บางไฟล์ไปยังโฟลเดอร์ย่อยใน OS X หนึ่งไม่ยอมย้าย Operation not permittedมันบอกว่า ฉันลองอีกครั้งในฐานะรูท:

$ sudo mv file subfolder/
mv: rename file to subfolder/file: Operation not permitted
$ sudo mv file filex
mv: rename file to filex: Operation not permitted
$ lsattr file
lsattr: Inappropriate ioctl for device While reading flags on file

ฉันลองlsattrไฟล์อื่น ไฟล์ทั้งหมดที่ฉันพยายามให้ฉันข้อความเดียวกัน:Inappropriate ioctl for device While reading...

มาจาก Linux ฉันไม่รู้เกี่ยวกับค่าสถานะดังนั้นนี่คือผลลัพธ์ของls -leO@ file:

$ ls -leO@ file otherfile
-rwxrwxrwx  1 eeytan  staff  uchg 79549 Nov 11  2010 file
-rw-r--r--  1 eeytan  staff  -     5071 Sep  7 02:37 otherfile

ฉันลองใช้ OS X Disk Utility มันบอกว่าไม่มีข้อผิดพลาดในดิสก์ของฉัน เกิดอะไรขึ้นที่นี่?


1
lsattrไม่ใช่คำสั่ง OS X มาตรฐาน ลองls -leO@แทน นอกจากนี้ยังมีไฟล์บนไดรฟ์อะไร ลองmountดูว่ามีการติดตั้งแอตทริบิวต์ใดบ้าง
Gordon Davisson

1
@GordonDavisson ดูเหมือนว่าคุณกำลังอยู่ในเส้นทางที่ถูกต้อง ls -leo @ กล่าวว่าไฟล์ดังกล่าวเป็นไฟล์เดียวที่มีแอตทริบิวต์ "uchg" ซึ่งฟังดูคล้ายกับ "ไม่เปลี่ยนแปลง" สำหรับฉัน
eje211

ยินดีต้อนรับสู่ถามที่แตกต่างกัน! ฉันจะลบแก้ไขและทำให้คำถามนี้และปล่อยให้คำตอบส่วนคำตอบ ...
bmike

คำตอบ:


30

เสียงเหมือนไฟล์ถูกล็อคไว้กับฉันซึ่งเป็นสาเหตุที่แอตทริบิวต์ uchg ปรากฏ คุณควรใช้คำสั่งต่อไปนี้เพื่อลบแอตทริบิวต์ที่ถูกล็อค:

chflags nouchg file

หรือคลิกขวาที่ไฟล์ใน Finder คลิก "รับข้อมูล" จากนั้นยกเลิกการเลือกช่องทำเครื่องหมาย "ล็อค"


1
ฮา! ดูเหมือนว่าคุณจะตอบคำถามของคุณเองเหมือนกับที่ฉันโพสต์คำตอบนี้!
binarybob

84

สำหรับคนที่สะดุดในยุค OS X 10.11+ (El Capitan หรือใหม่กว่า): แอปเปิ้ลได้เพิ่มชั้นใหม่ของการรักษาความปลอดภัยใน OS X พวกเขาได้นำสิทธิพิเศษบางอย่างไปจากรูท ไฟล์ที่คุณพยายามแก้ไขมีการrestrictedตั้งค่าสถานะ เพียง แต่restrictedกระบวนการที่มีการลงนามโดยแอปเปิ้ลจะสามารถแก้ไขไฟล์เหล่านี้ csrutil disableอย่างไรก็ตามคุณสามารถปิดการใช้งานระบบรักษาความปลอดภัยนี้โดยการบูตในโหมดการกู้คืนและปิดการใช้งานในเทอร์มิด้วยการทำ:

หรือคุณเพียงแค่เริ่มต้น Terminal ในโหมดการกู้คืนและลบไฟล์ที่นั่น หรือแม้แต่ลองบูทในสภาพแวดล้อม Linux ด้วยการรองรับ HFS ​​+ (อย่างน้อยถ้าคุณยังไม่ได้ใช้ APFS) เพื่อเปลี่ยนไฟล์


1
csr ใน csrutil คืออะไร
Michael Terry

12
ฉันเชื่อว่าเป็นคนเบนจามินแฟรงคลินที่พูดว่า หรือบางสิ่งบางอย่าง.
dgig

5

ลอง:

chflags -f -R nouchg directory

ในไดเรกทอรีระดับสูงกว่าเพื่อหยุดปัญหานี้


FWIW: ฉันมีปัญหานี้zsh: locking failed for /Users/me/.zhistory: operation not permitted: reading anywayและการเรียกใช้คำสั่งนี้ในไดเรกทอรีบ้านของฉันแก้ไขมัน
raine

0

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


0

ฉันรู้ว่านี่เป็นหัวข้อที่เก่ามาก แต่ฉันไม่เห็นกระทู้นี้ที่แสดงอาการของฉันดังนั้นฉันคิดว่าฉันจะโพสต์ความคิดเห็นอื่น

ฉันเกิดสิ่งนี้ขึ้นกับไดรฟ์ภายนอกที่ทำงานได้อย่างสมบูรณ์บน Snow Leopard iMac ซึ่งได้รับการอัพเกรดเป็น El Capitan ไปพร้อมกัน เมื่อต้นปีที่ผ่านมาฉันเอาไดรฟ์นั้นไปใส่ในกล่อง Windows 10 ใหม่ซึ่งใช้ Paragon HFS สำหรับ Windows ฉันคัดลอกไฟล์หลายร้อย GB จาก Windows ไปยัง HFS + บนไดรฟ์นั้นและเสียบกลับเข้าไปใน iMac ทุกอย่างทำงานได้ดียกเว้นเชลล์สคริปต์หนึ่งตัวที่ฉันมีไฟล์ staged สำหรับการสำรองข้อมูลพบปัญหา uchg นี้

กล่าวโดยย่อ: ไฟล์และโฟลเดอร์ที่สร้างขึ้นภายใต้ El Capitan หรือ Windows 10 โดยใช้ Paragon HFS เมื่อย้ายกลับไปที่กล่อง Snow Leopard กล่องวิทยุ "ล็อค" จะไม่ถูกตรวจสอบเมื่อคุณเลือกGet Infoใน Finder อย่างไรก็ตามคำแนะนำของคนอื่นทำงานได้ดีสำหรับฉัน:

  • ตรวจสอบว่าเป็นปัญหาจากการเรียกใช้ls -leO@(นั่นคือทุนโอ้) ในไฟล์ต้องสงสัย
  • ในฐานะ root ให้รันchflags -R nouchgบนไดเรกทอรีหลัก (ไม่มี -f ใน Snow Leopard)

มันจะใช้งานได้ แต่อย่าคาดหวังว่าจะมีตัวชี้นำภาพเหมือนกันถ้าไดรฟ์ของคุณทำงานระหว่างระบบปฏิบัติการหรือถ้าคุณใช้ Paragon HFS


chflags -f -R ไดเรกทอรี nouchg ทำงานขอบคุณ
odjeezeus

0

ฉันมีไฟล์ฉันไม่สามารถลบใน terminal:

$ sudo ls -leO@ foo@example.com/Documents/.%cb_defense/cb.doc
-rw-rw-rw-  1 root  wheel  - 41984  1 Mar 11:20 foo@example.com/Documents/.%cb_defense/cb.doc

$ sudo rm -rf foo@example.com/Documents/.%cb_defense/cb.doc
rm: foo@example.com/Documents/.%cb_defense/cb.doc: Operation not permitted

สิ่งที่ใช้ได้ผลสำหรับฉันคือการเปิด Finder และลบไดเรกทอรีที่มีทั้งหมด วิธีที่ผมเข้าใจมัน Finder ลบไดเรกทอรีเป็นหน่วยทั้งหมดไม่คำนึงถึงเนื้อหาของพวกเขาดังนั้นจึงไม่อยู่ภายใต้ข้อ จำกัด rm -rfเช่นเดียวกับปกติ

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