File tidak dapat dipindahkan dengan root pada OS X

53

Saya mencoba memindahkan beberapa file ke subfolder di OS X. Satu menolak untuk pindah. Dikatakan Operation not permitted. Saya mencoba lagi sebagai root:

$ 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

Saya mencoba lsattrpada file lain; semua file yang saya coba memberi saya pesan yang sama:Inappropriate ioctl for device While reading...

Datang dari Linux, saya tidak tahu tentang flag jadi di sini adalah output dari 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

Saya mencoba OS X Disk Utility; katanya tidak ada kesalahan pada disk saya. Apa yang terjadi di sini?

eje211
sumber
1
lsattrbukan perintah OS X standar; coba ls -leO@saja. Juga, berapakah volume file itu? Cobalah mountuntuk melihat dengan atribut apa volume terpasang.
Gordon Davisson
1
@ LordonDavisson, sepertinya Anda berada di jalur yang benar. ls -leo @ mengatakan file itu adalah satu-satunya dengan atribut "uchg", yang kedengarannya seperti "tidak dapat diubah" bagi saya.
eje211
Selamat Datang di Tanya Berbeda! Saya akan menghapus suntingan dan membuat ini pertanyaan dan meninggalkan jawaban untuk bagian jawaban ...
bmike

Jawaban:

30

Kedengarannya seperti file itu terkunci kepada saya, itulah sebabnya atribut uchg muncul. Anda harus dapat menggunakan perintah berikut untuk menghapus atribut yang terkunci:

chflags nouchg file

atau klik kanan file di Finder, klik "Dapatkan Info" lalu hapus centang pada kotak "Terkunci"

binarybob
sumber
1
Ha! Sepertinya Anda menjawab pertanyaan Anda sendiri saat saya memposting jawaban ini!
binarybob
84

Bagi orang-orang tersandung atas ini di era OS X 10.11+ (El Capitan atau yang lebih baru): Apple telah menambahkan lapisan baru keamanan di OS X . Mereka telah mengambil beberapa hak istimewa dari root. File yang Anda coba modifikasi memiliki restrictedbendera. Hanya restrictedproses yang ditandatangani oleh Apple yang dapat memodifikasi file-file ini. Namun, Anda dapat menonaktifkan sistem keamanan ini dengan boot dalam modus pemulihan dan nonaktifkan dalam Terminal dengan melakukan: csrutil disable.

Atau, Anda juga dapat memulai Terminal dalam Mode Pemulihan dan menghapus file di sana. Atau bahkan coba booting di lingkungan Linux dengan dukungan HFS + (setidaknya jika Anda belum menggunakan APFS) untuk mengubah file.

Martijn Courteaux
sumber
1
Apa arti csr dalam csrutil?
Michael Terry
12
Saya percaya itu adalah Benjamin Franklin yang mengatakan "Mereka yang mengorbankan kemudahan penggunaan untuk penjaga keamanan juga". Atau sesuatu.
dgig
5

Mencoba:

chflags -f -R nouchg directory

pada direktori level yang lebih tinggi untuk menghentikan masalah ini.

dvand
sumber
FWIW: Saya punya masalah ini zsh: locking failed for /Users/me/.zhistory: operation not permitted: reading anywaydan menjalankan perintah ini di direktori rumah saya memperbaikinya
raine
1

Saya punya file yang tidak bisa saya hapus di terminal:

$ sudo ls -leO@ [email protected]/Documents/.%cb_defense/cb.doc
-rw-rw-rw-  1 root  wheel  - 41984  1 Mar 11:20 [email protected]/Documents/.%cb_defense/cb.doc

$ sudo rm -rf [email protected]/Documents/.%cb_defense/cb.doc
rm: [email protected]/Documents/.%cb_defense/cb.doc: Operation not permitted

Yang berhasil bagi saya adalah membuka Finder dan menghapus seluruh direktori yang berisi. Cara saya memahaminya, Finder menghapus direktori sebagai unit yang sepenuhnya mengabaikan kontennya, sehingga tidak tunduk pada batasan yang sama seperti biasa rm -rf.

Leons
sumber
0

Saya juga mengalami masalah ini, dan saya menemukan bahwa folder tempat file itu dikunci. Jadi pastikan itu tidak benar. Lakukan 'dapatkan info' pada folder di finder, dan pastikan kotak centang yang dikunci tidak dicentang.

abbaroo
sumber
0

Saya menyadari ini adalah topik yang sangat lama tetapi saya tidak melihat utas ini mengatasi gejala saya jadi saya pikir saya akan memposting pendapat lain.

Saya memiliki ini terjadi pada drive eksternal yang telah berfungsi dengan baik pada Snow Leopard iMac, yang ditingkatkan ke El Capitan di sepanjang jalan. Awal tahun ini, saya mengambil drive itu dan memasukkannya ke dalam kotak Windows 10 baru yang menjalankan Paragon HFS untuk Windows. Saya menyalin ratusan GB file DARI Windows KE HFS + pada drive itu dan memasangnya kembali ke iMac. Semuanya berfungsi dengan baik, kecuali satu skrip shell yang saya punya file bertahap untuk cadangan mengalami masalah uchg ini.

Singkatnya: file dan folder yang dibuat di bawah El Capitan atau Windows 10 menggunakan Paragon HFS, ketika dipindahkan kembali ke kotak Snow Leopard, kotak radio "terkunci" TIDAK akan diperiksa ketika Anda memilih Get Infodi Finder. Namun, saran orang lain bekerja dengan baik untuk saya:

  • verifikasi itu masalahnya dengan menjalankan ls -leO@(itu modal besar oh) pada file yang dicurigai
  • sebagai root, jalankan chflags -R nouchgdi direktori induk (tidak ada -f di Snow Leopard)

Ini akan bekerja, tapi jangan berharap isyarat visual yang sama persis jika drive Anda telah berpindah di antara sistem operasi atau jika Anda menggunakan Paragon HFS.

Mike Hockurtz
sumber
direktori chflags -f -R nouchg tidak berfungsi terima kasih
odjeezeus