Sesekali cygwin tampaknya membuat file yang sepertinya tidak bisa dilepas sama sekali. Ketika menghapus dari cygwin itu tidak terjadi ( rm
mengatakan apa-apa, tetapi file tersebut masih ada). Ketika mencoba dari explorer dikatakan bahwa saya memerlukan izin dari administrator (dan saya adalah administrator, item hapus di menu drop-down memiliki perisai dan saya kira itu berarti bahwa saya mencoba ini dengan hak administrator). Ketika mencoba dari total komandan, saya pertama kali mendapatkan kesalahan dan ditanya apakah saya tidak mau mencoba lagi sebagai administrator dan kemudian saya masih tidak memiliki izin untuk menghapus file.
Saya mendapatkan masalah yang sama jika saya mencoba untuk melihat file. Masalah ketika saya mencoba untuk melihat properti keamanan - harus menekan tombol perisai untuk menjadi administrator dan kemudian diberi tahu bahwa saya tidak diizinkan untuk melihatnya kecuali saya mengambil kepemilikan (yang saya tidak boleh melakukannya).
Menggunakan shell cygwin saya diizinkan untuk melihat, tetapi tidak memodifikasi ACL (bahkan jika shell dijalankan sebagai administrator):
$ getfacl makefile.wine
# file: makefile.wine
# owner: Unknown+User
# group: Unknown+Group
user::rw-
group::r--
other:---
$ setfacl -b makefile.wine
setfacl: Permission denied
Namun ketika restart windows tidak ada masalah hanya dengan menghapus file.
Mengapa / bagaimana cygwin membuat file-file ini (saya tahu bahwa itu dibuat saat dijalankan sed -i
)? Bagaimana saya bisa menghindari ini? Dan akhirnya adakah cara yang waras untuk menghapus file?
sumber
Jawaban:
cygwin seharusnya tidak membuat file yang tidak terhapus, setidaknya tidak lagi. Dengan asumsi Anda memiliki instalasi yang diperbarui (cygwin 2.5.1): periksa file ACL dengan: getfacl "nama file" Anda dapat membersihkan izin ACL dengan: setfacl -b "filename" Lihat manual getfacl dan setfacl untuk detailnya. Bacaan tambahan https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-files
Seperti yang Anda miliki dari getfacl
pemilik: Tidak Diketahui + Pengguna
grup: Tidak Diketahui + Grup
Itu berarti cygwin tidak mengenali pemiliknya. Dua kemungkinan:
1) pemilik tidak lagi berlaku di mesin windows
2) Anda menggunakan beberapa jenis koneksi VPN atau Domain dan pengguna basis data windows tidak dapat diakses dalam kondisi tertentu.
Sebagai admin windows Anda harus dapat mengubah pemilik, juga dari cygwin.
sumber
Silakan coba dengan
takeown
perintah. Dalam shell CMD hak istimewa admin, keluarkan perintah berikut,takeown /F makefile.wine
dan lihat sekarang jika Anda dapat menghapusnya,
rm makefile.wine
Pembaruan: Terima kasih telah melaporkan dan itu adalah kekeliruan saya. Setelah
takeown
perintah, dapatkah Anda melakukan klik kanan pada file itu di explorer untuk melihat tentang informasi kepemilikan dan melakukan penyesuaian dari sana?sumber
Saya akhirnya memecahkan ini, gunakan Process Explorer (secara default di versi windows terbaru) mencari dalam menangani untuk setiap proses menggunakan nama file itu dan membunuh proses.
Saya sudah merinci semua ini di blog saya .
Jangan mencoba mengembalikan izin, itu tidak akan berhasil.
sumber
Saya memiliki masalah yang sama dengan Cygwin tetapi tidak memiliki admin yang benar. Saya memiliki folder dengan izin seperti ini:
Dalam kasus saya, saya memecahkan seperti ini:
Diuji pada Windows 7.
Semoga itu bisa membantu orang lain menghadapi masalah yang sama.
sumber