Apa perbedaan sistem privilege file Unix dengan Windows?

9

Pertanyaan terkait: Apa perbedaan sistem / organisasi file Linux dengan Windows?

Saya agak akrab dengan bagaimana hak istimewa bekerja ketika datang ke file dan direktori - setiap entri memiliki ownerdan groupproperti yang mewakili pemilik file dan grup milik pemilik (koreksi saya jika saya salah).

Bagaimana ini berbeda dari organisasi izin dalam sistem file NTFS pada Windows? Apa keuntungan yang dimiliki sistem izin Unix dibandingkan NTFS?

Nathan Osman
sumber

Jawaban:

16

NTFS memiliki ACE Windows. Unix menggunakan "mode bits" pada setiap file.

Pada NTFS, setiap file dapat memiliki pemilik, dan nol atau lebih entri kontrol akses Windows (ACE). ACE terdiri dari prinsipal (pengguna dan grup adalah prinsipal), sekumpulan operasi (Baca, Tulis, Jalankan, dll.) Dan apakah operasi itu diizinkan atau ditolak. File dapat memiliki banyak ACE. Objek lain di Windows selain file dapat memiliki ACE juga, seperti entri registri, objek printer, dan hal lainnya. Semua ACE diperhitungkan ketika operasi file terjadi. Deny lebih diutamakan daripada mengizinkan.

ACE Windows mendukung warisan di mana Anda dapat mengatur ACE untuk direktori dan memilikinya secara otomatis menyebar ke direktori level yang lebih rendah.

File di Unix memiliki pengguna yang memiliki (pemilik) dan grup yang memiliki (pemilik-grup). Ada tiga "pelaku" tetap yaitu pemilik, anggota kelompok pemilik, dan semua orang (alias dunia). Untuk setiap kepala sekolah ada tiga "bit" yang mencakup kemampuan membaca, menulis, dan mengeksekusi. (ini memiliki arti yang berbeda untuk direktori daripada file, lihat ini ). Bit-bit ini menentukan siapa yang dapat melakukan operasi apa. Ini disebut mode file dan dibangun ke dalam file (tidak ada ACE terpisah).

Sebagian besar waktu Anda berkaitan dengan izin "dunia", yaitu menetapkan ketiga bit menjadi 0 untuk "dunia" berarti tidak ada orang yang bukan pemilik atau pemilik grup yang dapat melakukan apa pun dengan file tersebut. Izin Unix hanya berfungsi pada sistem file, tetapi karena sebagian besar objek muncul sebagai file, Anda dapat menggunakan izin untuk membatasi akses ke disk, printer, dll. Izin Unix lebih sederhana tetapi lebih "kasar." Izin Unix tidak mendukung pewarisan dan tidak akan memengaruhi direktori tingkat bawah, dengan pengecualian mengeksekusi izin untuk direktori (saya pikir) yang menyebabkan file yang baru dibuat untuk mengambil izin direktori (tetapi tidak memengaruhi file yang saat ini dibuat).

Secara tradisional file Unix memiliki satu pemilik dan satu kelompok pemilik tunggal. Ada ekstensi ke Linux yang menambahkan ACE ke file dengan cara yang mirip dengan Windows.

Keuntungan Unix hanya bahwa sistem yang lebih sederhana biasanya lebih mudah dipahami dan diamankan, dan lebih cepat karena sistem file tidak harus mengambil ACE selain inode saat membuka file.

LawrenceC
sumber
4
Itu setgid izin untuk direktori, dan itu membuat file mewarisi grup pemilik, bukan izin.
Random832
3
@ George: Satu hal yang perlu Anda ingat adalah grup itu BUKAN grup pemilik, itu terpisah. Lihat chgrp (1).
Hello71
@ Random832: Terima kasih atas klarifikasi.
LawrenceC
3
Sebagian besar distribusi saat ini menyertakan dukungan untuk Daftar Kontrol Akses yang diperluas (ACL) yang dikompilasi ke berbagai sistem file yang tersedia secara default. Nama paket perangkat lunak yang diperlukan untuk mengakses dan memodifikasi ini secara umum disebut aclatau faclatau yang serupa, dengan dua program yang dinamai setfacldan getfacluntuk memodifikasi atau mengambil pengaturan daftar kontrol akses.
Shadur
7

Satu hal yang sangat berbeda adalah bahwa "executable" adalah izin di Linux / Unix, bukan berdasarkan nama atau ekstensi file.

Ini merupakan keunggulan dibandingkan Windows, karena di Linux Anda dapat memastikan sesuatu tidak dieksekusi dengan menghapus izin yang dapat dieksekusi. Tidak ada ekstensi sihir yang berarti sama sekali. Ini mungkin salah satu alasan mengapa virus file tradisional tidak mendapatkan tempat di Unix dan Linux.

Bruce Ediger
sumber
2
Windows sebenarnya memiliki izin yang dapat dieksekusi, meskipun mereka mengalahkan tujuan dengan menetapkannya secara default.
Tambalan
1
Ekstensi juga tidak masalah di windows.
Logan Capaldo
1
@ Logo: Sebenarnya, mereka memiliki arti penting di Windows. Ekstensi file menentukan program apa yang dapat digunakan untuk membukanya serta menunjukkan kepada penjelajah jenis file apa itu sehingga thumbnail dapat dihasilkan. Dalam kasus terakhir, yang berpotensi mengeksploitasi bug yang ada di thumbnail generator dan karenanya dapat membahayakan sistem.
Nathan Osman
1
@ George Hal yang sama berlaku untuk manajer file grafis dengan pratinjau kuku ibu jari buggy pada sistem operasi apa pun. Maksud saya adalah CreateProcess tidak memberikan dua hoots jika program Anda berakhir dengan .exe (dan ini mudah dilihat dengan menjalankan program dari cmd.exe), tetapi memang peduli dengan bit eksekusi.
Logan Capaldo
2
@ George, tepat seperti Unix (kecuali jika Anda ingin mulai berdebat tentang apakah mencari shebang adalah "maju" atau tidak). Saya hanya ingin menjelaskan bahwa ekstensi file tidak ada hubungannya dengan model keamanan. Jika Anda menandai executable non-executable pada Windows, ia memiliki efek yang sama pada unix.
Logan Capaldo