Potong / rekatkan file di antara folder tidak lagi mempertahankan izin folder asli

3

Dalam drive NTFS, tingkah lakunya adalah ketika file dipindahkan, file tersebut akan tetap memiliki izin dari file asli, jika perpindahan tersebut dilakukan ke folder dengan volume yang sama.

Saya tahu ini berdasarkan pengalaman dan bisa dilihat di sini: https://support.microsoft.com/en-us/kb/310316

Tetapi saya berusaha menunjukkan perilaku ini hari ini kepada seorang kolega dan itu tidak berhasil. Setiap kali file itu hanya memiliki izin dari folder baru yang terkait dengannya.

Saya sudah mencoba di 3 mesin yang berbeda dan tidak lagi berfungsi seperti itu. Kapan itu berubah? Dan tidak, pengaturan registri yang disebutkan sebelumnya tidak diatur.

Adakah yang tahu kapan ini berubah?

[Sunting]

Hanya sebuah contoh untuk membuatnya lebih jelas

Misalkan saya punya folder ini, di drive C saya.

  • C: \ Dibagi-pakai
    • \Kerja
    • \Terakhir

Dan saya memiliki empat grup: - Magang - Karyawan - Manajer - Staf (yang sebelumnya memiliki 3 anggota).

Sekarang, mari pertimbangkan izin (disederhanakan).

  • C: \ Dibagi-pakai
    • Tidak mewarisi
    • Secara eksplisit memungkinkan Kontrol Total untuk Admin
    • Secara eksplisit memungkinkan Modifikasi ke Manajer
  • C: \ Shared \ Working
    • Warisan dari Dibagikan
    • Secara eksplisit memungkinkan Ubah ke Karyawan
  • C: \ Shared \ Final
    • Warisan dari Dibagikan
    • Secara eksplisit memungkinkan Baca untuk Staf

Sekarang, anggap saja saya memiliki file di folder Bekerja, yang disebut Bullshit.doc.

Sebelumnya, jika file dipindahkan (dipotong / disisipkan) dari folder Bekerja ke Final, itu akan mempertahankan izin asli, yaitu, Manajer dan Staf dapat Memodifikasi dan Interns tidak akan memiliki izin.

Sekarang, ketika saya mencoba memindahkan Bullshit.doc, ketika dipindahkan, hanya akan mewarisi izin dari folder Final, yaitu, itu hanya memaafkan bahwa Interns seharusnya tidak memiliki akses.

Pertanyaan saya adalah: ini berubah, bukan? Atau saya menjadi gila? Saya 99% yakin itu berfungsi seperti yang dijelaskan dalam KB.

Saya tahu saya punya masalah yang mirip dengan ini di masa lalu, ketika pengguna tingkat atas memindahkan file di antara folder (dengan set izin yang berbeda) dan kemudian mengeluh bahwa karyawan magang tidak bisa membaca file. Saya harus menjelaskan lebih dari sekali bahwa cut / paste tidak berfungsi, bahwa mereka perlu menyalin / menempel / menghapus. Itu kembali pada Windows 2003 pasti, tetapi saya bisa setidaknya 2008 R2.

[Sunting 2] Sekarang dengan gambar !!!

Ok, jadi saya memutuskan untuk mencoba dan meniru. Dengan file aktual dan bukan contoh sederhana. Ini dia...

Jadi ini folder sumber. Lihat semua izin implisit dan satu izin eksplisit. Beberapa folder

Sekarang, mari kita buat file di sana. Dan periksa izinnya.Hanya dokumen acak

Saatnya memindahkan file ke tujuan. Folder asli hanyalah folder temp. Mari kita periksa izin folder tujuan. Izin cara yang kurang berbelit-belit

Setelah memindahkan folder, mari kita periksa izinnya ... WTAF !!!

Hum ... tidak seperti yang kuharapkan. Bahkan jika itu hanya sebuah file, dari apa yang saya kumpulkan di KB di atas, itu harus menjaga izin. Dan itulah yang saya ingat berperilaku.

Tapi sepertinya itu berubah. Dan saya tidak dapat menemukan sumber resmi ketika itu terjadi.

Ini membuat saya meragukan kewarasan saya.

Luiz Angelo
sumber
Warisan Izin dapat mengesampingkan perilaku ini. Jika folder baru mewarisi, konten tidak secara eksplisit memotong warisan, dan wadah sumber dan tujuan tidak mewarisi dari daftar ACL yang sama, akan ada perbedaan dalam izin yang dihasilkan. Juga perhatikan bahwa Perlindungan Sumber Daya Windows (mekanisme yang memungkinkan UAC untuk meminta bersamaan dengan izin) memerlukan lebih banyak variasi dalam ACL izin di seluruh sistem file (misalnya, file program dan direktori windows tidak diwarisi dari C, dan rumah pengguna semuanya memiliki perbedaan izin yang tidak diwariskan).
Frank Thomas
Saya menambahkan contoh, untuk menjelaskan. Saya benar-benar tidak berpikir bahwa itu ada hubungannya dengan warisan Izin.
Luiz Angelo

Jawaban:

2

NTFS masih terus berevolusi dan berubah. Saya percaya bahwa perubahan dalam penanganan izin yang diwarisi pertama kali muncul di Vista dan telah berkembang lebih lanjut di Windows 7. Pengaturan registri pada tanggal tautan Anda dari XP, sejauh yang saya tahu diabaikan dalam versi yang lebih baru.

Untuk memahami apa yang terjadi ketika seseorang menyalin / memindahkan file, kita harus terlebih dahulu memahami perbedaan antara izin implisit dan eksplisit.

Izin implisit diwarisi dari folder induk, jadi disimpan dengan folder induk. Mereka tidak disimpan bersama anak-anak dan karenanya tidak dapat digerakkan / disalin. Dengan kata lain, izin ini hanya berlaku saat anak berada di folder induknya, karena izin tersebut berasal dari induknya.

Izin eksplisit diberikan secara manual ke folder / file dan disimpan di Access Control Lists (ACL) sebagai atribut NTFS. Mereka dapat dianggap sebagai milik item dan dalam beberapa kasus dapat dipindahkan dengan itu jika sistem file target juga NTFS.

Beberapa konsekuensi dari arsitektur NTFS ini adalah:

  • Ketika folder / file disalin , entri target baru dibuat dalam tabel NTFS dari folder target. Oleh karena itu file yang disalin akan kehilangan semua izin eksplisit, dan hanya akan mewarisi dari folder induk yang baru.
  • Ketika file / folder dipindahkan di dalam volume yang sama , entri NTFS-nya dipindahkan, lengkap dengan semua atribut dan izin yang terkandung. Oleh karena itu ia akan mempertahankan semua izin eksplisit, tetapi akan kehilangan izin lama yang diwarisi, sebagai gantinya mendapatkan dari folder induk baru.
  • Ketika folder / file dipindahkan di antara volume yang berbeda , langkah tersebut diperlakukan sebagai salinan dan tidak akan mempertahankan hak akses aslinya. Satu-satunya perbedaan dari salinan adalah oleh sumber yang dihapus ketika salinan selesai.
  • File / folder yang hanya memiliki izin yang diwarisi, tidak memiliki izin untuk dipindahkan. Item seperti itu akan selalu mewarisi izinnya dari folder induk.
  • Folder / file dapat ditandai sebagai izin tidak mewarisi dari induknya. Dalam hal ini, semua izin disimpan dengan ACL, yang berarti izin eksplisit.

Ini bertentangan dengan sebagian besar dokumentasi yang sudah ada, di mana biasanya diklaim bahwa ketika suatu folder / file dipindahkan dalam volume yang sama, itu akan mempertahankan izin NTFS aslinya, baik implisit maupun eksplisit. Ini mungkin pernah benar di versi Windows yang lebih lama, tetapi telah diverifikasi oleh saya sendiri dan oleh poster karena tidak lagi menjadi kasus untuk izin implisit di Windows 7 dan Windows 10.

Untuk contoh aturan pemindahan yang salah didokumentasikan, lihat artikel Bagaimana izin file dan folder ditangani saat memindahkan atau menyalin file pada Windows 2008 R2 dan Windows 7 . Artikel ini adalah sumber diskusi saya di bawah ini dengan poster, di mana kami menemukan bersama aturan yang mengatur copy dan move di NTFS.

harrymc
sumber
Hai Harry. Saya mencoba menerapkan aturan pada contoh yang saya berikan, dan itu berperilaku berbeda. Aturan yang disebutkan di atas adalah persis bagaimana saya pikir itu akan berperilaku. Tetapi ketika saya mencoba mereproduksi, akhirnya mengabaikan izin eksplisit. Sudahkah Anda mencoba menerapkan aturan pada contoh yang diberikan?
Luiz Angelo
Anda harus mendefinisikan case Anda dengan tepat. Tetapi seperti di atas, fakta bahwa suatu file ada di folder tidak berarti bahwa izin folder akan bergerak bersamanya - hanya izin yang diberikan secara eksplisit ke file itu sendiri , atau diberikan ke folder tetapi dengan propagasi kepada anak-anak (propagasi hanya berfungsi untuk file yang ada dan yang baru hanya akan diwarisi).
harrymc
Saya pikir contoh kasusnya cukup jelas. Bagaimanapun, saya mencoba dengan folder dan izin eksplisit. Saat dipindahkan, folder tidak mempertahankan izin asli. Saya kira saya akan mengedit pertanyaan nanti dengan gambar dan contoh.
Luiz Angelo
Apakah kasing Anda bergerak pada volume yang sama? Dan versi Windows yang mana? Ya - beberapa contoh izin yang tidak disimpan akan berguna.
harrymc
Dan apakah Anda memindahkan file atau folder?
harrymc
1

Ada detail penting tambahan untuk ditambahkan ke penjelasan harrymc yang sangat baik dan komprehensif, dan detail ini akhirnya menyebabkan perilaku split, di mana pemindahan file kadang-kadang berperilaku dalam gaya 2003 dan kadang-kadang dalam gaya 2008.

Cara perpindahan intra-volume NTFS telah diperbarui pada 2008 / Vista dan di atasnya bukan perombakan total, tetapi hanya menambahkan langkah kedua di latar belakang.

Langkah 1) MFT diperbarui; file dipindahkan dan mempertahankan izin asli
(Sama seperti pada 2003 / XP dan sebelumnya. Bergerak pada OS tersebut berhenti pada langkah ini.)

Langkah 2) ACL diperbarui untuk menjatuhkan izin yang diwarisi folder induk asli dan menerapkan izin warisan folder orangtua baru.
(Ini adalah langkah tambahan yang ditambahkan 2008 / Vista sehingga file akan memiliki izin folder target.)

Namun, jika pengguna yang melakukan pemindahan memiliki hak Ubah dan tidak secara eksplisit memiliki Hak Izin Ubah , langkah 2 akan gagal (tetapi tidak memberi tahu Anda), dan Anda akan berakhir dengan perilaku old-school sehingga sepertinya ada beberapa hal. kembali pada 2003 lagi.

Dalam skenario yang sama ini, jika seseorang menyalin file dan kemudian menghapus yang asli (cara yang sama sistem file menangani perpindahan antar volume), semuanya bekerja seperti yang Anda harapkan.

Tidak ada solusi yang bagus - Anda memberikan hak Ubah Izin kepada pengguna sehingga Langkah 2 dapat berhasil, atau file apa pun yang dipindahkan di antara folder izin berbeda pada volume server file yang sama akan mempertahankan izin asli mereka sampai diperbanyak secara paksa.

Conrad Schissler
sumber
Ini merupakan tambahan untuk jawaban yang ada dan bukan jawaban itu sendiri. Silakan kirim sebagai komentar.
wp78de