Pada beberapa workstation pengembang kami, kami telah mendapatkan yang ditakuti "Daftar kontrol akses ini tidak dalam bentuk kanonik dan karena itu tidak dapat dimodifikasi." kesalahan saat kami mencoba dan mengatur izin pada folder tertentu. Kami belum dapat menemukan apa yang merusak ACL ini.
Saat ini, satu-satunya cara saya tahu untuk memperbaikinya adalah dengan mengklik kanan folder / file yang rusak, pilih Properties dan klik tab Security. Windows kemudian akan melihat korupsi dan menawarkan untuk memperbaikinya. Saya tidak suka ini karena ini manual dan mengharuskan pengguna untuk melakukan investigasi untuk mengetahui folder / file apa yang rusak.
Apakah ada skrip atau program di suatu tempat yang akan melakukan ini secara otomatis? Saya melihat bahwa icacls
memiliki /verify
parameter, tetapi itu hanya menunjukkan kepada saya bahwa ACL pada file / folder rusak. Itu tidak menawarkan untuk memperbaiki apa pun.
sumber
get-acl path_to_corrupt_file | set-acl -path ptah_to_corrupt_file
.Saya akhirnya dapat menemukan perbaikan otomatis untuk ini. Ketika Anda memanggil
Set-Acl
cmdlet PowerShell , itu akan memesan ulang ACL dengan benar:Tentu saja, ini bisa menjadi induk dari direktori yang kacau, jadi Anda harus melakukan beberapa lintasan untuk menemukan pelakunya. Gunakan
icacls C:\Path\To\Item\With\Suspect\CL /verify
untuk mencari tahu apakah ada sesuatu yang perlu diperbaiki.Di lingkungan kita, Cygwin adalah penyebabnya: ketika membuat direktori, ia suka memberikan izin gaya POSIX pada mereka, alih-alih mengandalkan Windows untuk mengelola keamanan sistem file.
sumber
Bagi saya ada masalah ganda: ACL + aturan kan-kanonik non-kanonik dideklarasikan untuk NULL SID (WTH?). Saya menyarankan itu disebabkan oleh versi cygwin dari git.
Bagaimanapun, dalam kasus saya menerapkan kembali ACL yang sama tidak masuk akal:
Jadi saya harus secara eksplisit menerapkan ACL dari file yang memiliki yang benar, seperti yang disebutkan oleh @mschneider
sumber
icacls juga dapat memperbaikinya:
Perintah praktis lainnya, setara dengan chmod 0777 FILE, chown root FILE
sumber
Masalah ini muncul saat menggunakan Cygwin. Ia mencoba untuk meniru izin file POSIX di atas ACL Windows. Ini sering mengarah pada ACL non-kanonik, yang legal tetapi tidak dapat ditangani dengan benar oleh explorer.exe .
Anda dapat mematikan emulasi yang bermasalah ini dengan memasang dengan opsi "noacl", misalnya di
/etc/fstab
:sumber
sumber