TextEdit menunjukkan dialog tentang tidak memiliki izin untuk membuka file apa pun

8

Sekitar sekali per hari, TextEdit mulai menampilkan dialog seperti ini ketika saya mencoba membuka file apa pun:

Dokumen "test.txt" tidak dapat dibuka. Kamu tidak memiliki izin

Untuk melihat atau mengubah izin, pilih item di Finder dan pilih File> Get Info.

Biasanya ada pesan seperti ini di system.log:

9/13/12 10:41:42.952 PM sandboxd[21081]: ([357]) TextEdit(357) deny file-read-data /Users/lauri/Desktop/test.txt
9/13/12 10:41:55.118 PM TextEdit[357]: NSFileVersion tried to tried to add a new generation and failed. Versioned file URL: file://localhost/Users/lauri/Notes/temp.txt, contents URL: file://localhost/Users/lauri/Notes/temp.txt.sb-de6477ff-BhVNrq, error: Error Domain=GSLibraryErrorDomain Code=1 "The operation couldn’t be completed. (GSLibraryErrorDomain error 1.)"
9/13/12 10:41:55.118 PM TextEdit[357]: NSDocument failed to preserve the old version of a document. Here's the error:
Error Domain=GSLibraryErrorDomain Code=1 "The operation couldn’t be completed. (GSLibraryErrorDomain error 1.)"
9/13/12 10:41:55.119 PM TextEdit[357]: <Document: 0x7f971d00a510>: An error occurred while attempting to preserve the backup file at file://localhost/Users/lauri/Notes/temp.txt.sb-de6477ff-BhVNrq: Error Domain=GSLibraryErrorDomain Code=1 "The operation couldn’t be completed. (GSLibraryErrorDomain error 1.)"

Saya tidak dapat membuka file apa pun hingga saya keluar dan membuka kembali TextEdit. Saya juga harus menghapus file cadangan (seperti temp.txt.sb-de6477ff-BhVNrq) secara manual.

Saya mengalami masalah pada dua instalasi berbeda. Saya telah mencoba menghapus wadah sandbox dan memperbaiki izin dari partisi pemulihan. Adakah yang tahu apa yang terjadi?

Lri
sumber
Apakah Anda membuka file dame di TextEdit dan WriteRoom secara bersamaan?
Markus
Bisakah Anda membuka terminal.app dan memberi tahu kami output dari ls -lt?
paulgrav
@Mark Terkadang, tapi saya rasa itu tidak dimulai karena itu. Saya mungkin harus mencoba menghapus WriteRoom sementara.
Lri
@ paulgrav Masalahnya memengaruhi semua file, dan tidak ada yang tidak biasa dengan izin saya (atau izin file yang sudah saya buka saat sudah dimulai).
Lri
Sangat aneh. Namun, mungkin tidak akan ada ruginya mencoba untuk memperbaiki izin pengguna. Mungkin ada beberapa atribut tambahan yang menyebabkan masalah. Versi OS X apa yang Anda jalankan? Juga, apakah ada kesalahan kotak pasir di log Anda? Direktori rumah Anda tidak di-host pada pemasangan jaringan, bukan?
paulgrav

Jawaban:

2

Saya akhirnya mengganti tanda tangan kode TextEdit dengan tanda tangan ad-hoc:

sudo codesign -f -s - /Applications/TextEdit.app/

Ini menonaktifkan kotak pasir, jadi misalnya file preferensi di ~/Library/Preferences/bukan wadah kotak pasir.

Sunting: Dialog kembali setelah saya menginstal ulang OS X, dan sekarang saya mendapatkan kesalahan seperti ini untuk codesign -f -s -:

$ sudo codesign -f -s - /Applications/TextEdit.app/
/Applications/TextEdit.app/: replacing existing signature
/Applications/TextEdit.app/: object file format unrecognized, invalid, or unsuitable

Saya menggunakan https://github.com/jjgod/TextEditPlus untuk saat ini. Ini didasarkan pada versi TextEdit yang datang dengan 10.7, tetapi berfungsi dengan 10.8.2.

Lri
sumber
0

Coba perbaiki izin pengguna .

http://www.ernieflores.net/mac-os-x-10-7-lion/repair-user-permissions-in-mac-os-x-lion/

Di Lion, ada utilitas aplikasi Perbaikan Izin tambahan yang disembunyikan. Alat ini terletak di dalam Utilitas Perbaikan boot. Berikut cara mengaksesnya.

  1. Mulai ulang Lion dan tahan tombol Command dan R.
  2. Anda akan boot ke layar Perbaikan Utilitas. Di atas, di Bilah Menu klik item Utilitas kemudian pilih Terminal.
  3. Di jendela Terminal, ketik atur ulang kata sandi dan tekan Return.
  4. Utilitas Reset Kata Sandi diluncurkan, tetapi Anda tidak akan mengatur ulang kata sandi. Sebagai gantinya, klik ikon untuk hard drive Mac Anda di bagian atas. Dari tarik-turun di bawahnya, pilih akun pengguna tempat Anda mengalami masalah.
  5. Di bagian bawah jendela, Anda akan melihat area berlabel 'Reset Izin Direktori Rumah dan ACL'. Klik tombolReset di sana.

Proses reset memakan waktu beberapa menit. Setelah selesai, keluar dari program yang telah Anda buka dan mulai ulang Mac Anda. Perhatikan bahwa 'Spotlight' segera mulai mengindeks ulang

paulgrav
sumber
Jika izin pengguna kacau, bukankah aplikasi akan gagal setiap kali dengan kesalahan yang sama dan tidak dapat membuat file baru?
bmike
Mungkin. Memperbaiki perm pengguna tidak ada salahnya.
paulgrav
Tampaknya lebih merupakan komentar untuk mencoba sesuatu tetapi bukan jawaban yang sebenarnya untuk pertanyaan itu. Kita akan lihat berdasarkan OP - saya yakin itu sudah dicoba atau bisa dikesampingkan dalam waktu singkat.
bmike
Saya mencobanya kemarin, tapi saya mendapatkan dialog itu lagi, jadi mungkin tidak membantu.
Lri
Kesalahan izin menyebabkan kesalahan akses yang dapat direproduksi. Bukan itu yang terjadi di sini.
dan
0

Kemungkinan terkait http://forums.macrumors.com/showthread.php?t=798825 .

Coba hapus ~/Library/Autosave Informationsfolder (itu akan dibuat ulang secara otomatis).

mecano
sumber
Saya mencobanya - pada kenyataannya, jika Anda melakukannya, Anda harus (juga) menghapus yang ada di wadah sandbox TextEdit (yang saya temukan menggunakan alat pencarian seperti Find Any File), tetapi itu tidak membantu (pada OSX) 10.10.4).
Thomas Tempelmann
0

Solusi saya, ketik: chmod o+w ~/.CFUserTextEncoding

Inilah alasannya:

Saya memiliki masalah yang sama, menemukan utas ini, kemudian menemukan jawabannya. Saya masih menggunakan El Capitan, tetapi mungkin masalah yang sama di versi lain.

Masalahnya adalah bahwa Apple tampaknya telah menambahkan tautan lunak dalam direktori: ~ / Library / Containers / com.apple.TextEdit / Data

Seperti: .CFUserTextEncoding @ -> ../../../../.CFUserTextEncoding Tapi, tidak ada pemeriksaan pada izin, atau bahkan keberadaan, dari tempat yang mereka tuju.

Saya memperbaikinya dari direktori ~ / Library / Containers / com.apple.TextEdit / Data dengan mengubah izin pada: ../../../../.CFUserTextEncoding:

chmod 644 ../../../../.CFUserTextEncoding

Singkatnya, solusinya adalah memastikan bahwa file: ~ / .CFUserTextEncoding memiliki izin yang tepat. Milik saya tidak, tetapi sekarang:

Singkatnya: Anda dapat melakukan ini dengan perintah:

chmod o+w ~/.CFUserTextEncoding

Dan kemudian lihat izin dengan:

ls -la ~/.CFUserTextEncoding

Anda mungkin perlu terus melihat izin, karena saya menemukan itu berubah pada saya nanti. Saya tidak yakin mengapa.

Jonathan
sumber