GNU/Linux >> Belajar Linux >  >> Linux

Apakah ada alasan mengapa ada izin 'pemilik'? Apakah izin grup tidak cukup?

Sejarah

Awalnya, Unix hanya memiliki izin untuk pengguna pemilik, dan untuk pengguna lain:tidak ada grup. Lihat dokumentasi Unix versi 1, khususnya chmod(1) . Jadi kompatibilitas mundur, jika tidak ada yang lain, memerlukan izin untuk pengguna pemilik.

Grup datang kemudian. ACL yang memungkinkan melibatkan lebih dari satu grup dalam izin file muncul belakangan.

Kekuatan ekspresif

Memiliki tiga izin untuk sebuah file memungkinkan izin yang lebih halus daripada hanya memiliki dua, dengan biaya yang sangat rendah (jauh lebih rendah daripada ACL). Misalnya, file dapat memiliki mode rw-r----- :hanya dapat ditulis oleh pengguna pemilik, dapat dibaca oleh grup.

Kasus penggunaan lainnya adalah setuid executable yang hanya dapat dieksekusi oleh satu grup. Misalnya program dengan mode rwsr-x--- dimiliki oleh root:admin hanya mengizinkan pengguna di admin grup untuk menjalankan program itu sebagai root.

"Ada izin yang tidak bisa diungkapkan oleh skema ini" adalah argumen yang buruk untuk menentangnya. Kriteria yang berlaku adalah, apakah ada cukup kasus umum yang dapat diekspresikan yang membenarkan biaya? Dalam hal ini, biayanya minimal, terutama mengingat alasan lain untuk pengguna/grup/triptych lainnya.

Kesederhanaan

Memiliki satu grup per pengguna memiliki overhead manajemen yang kecil tetapi tidak signifikan. Adalah baik bahwa kasus file pribadi yang sangat umum tidak bergantung pada ini. Aplikasi yang membuat file pribadi (misalnya program pengiriman email) tahu bahwa yang perlu dilakukan hanyalah memberikan file tersebut mode 600. Tidak perlu menjelajahi database grup untuk mencari grup yang hanya berisi pengguna — dan apa yang harus dilakukan jika tidak ada grup seperti itu atau lebih dari satu?

Datang dari arah lain, misalkan Anda melihat sebuah file dan Anda ingin mengaudit izinnya (mis. periksa apakah itu yang seharusnya). Ini jauh lebih mudah saat Anda bisa pergi "hanya dapat diakses oleh pengguna, baiklah, selanjutnya" daripada saat Anda perlu menelusuri melalui definisi grup. (Kerumitan seperti itu adalah kutukan dari sistem yang banyak menggunakan fitur canggih seperti ACL atau kemampuan.)

Ortogonalitas

Setiap proses melakukan akses sistem file sebagai pengguna tertentu dan grup tertentu (dengan aturan yang lebih rumit pada penyatuan modern, yang mendukung grup tambahan). Pengguna digunakan untuk banyak hal, termasuk pengujian untuk root (uid 0) dan izin pengiriman sinyal (berbasis pengguna). Ada simetri alami antara membedakan pengguna dan grup dalam izin proses dan membedakan pengguna dan grup dalam izin sistem file.


Apakah ini desain yang disengaja atau tambalan? Yaitu - apakah izin pemilik/grup dirancang dan dibuat bersama dengan beberapa alasan atau apakah mereka datang satu demi satu untuk menjawab kebutuhan?

Izin pengguna/grup/lainnya pada file adalah bagian dari desain Unix asli.

Apakah ada skenario di mana skema pengguna/grup/lainnya berguna tetapi skema grup/pemilik tidak akan cukup?

Ya, hampir setiap skenario yang dapat saya bayangkan di mana keamanan dan kontrol akses itu penting.

Contoh:Anda mungkin ingin memberikan beberapa binari/skrip pada sistem hanya akses eksekusi ke other , dan tetap membatasi akses baca/tulis ke root .

Saya tidak yakin apa yang Anda pikirkan untuk model izin sistem file yang hanya memiliki izin pemilik/grup. Saya tidak tahu bagaimana Anda bisa memiliki sistem operasi yang aman tanpa adanya other kategori.

EDIT: Misalkan yang Anda maksud di sini group/other izin adalah semua yang diperlukan, maka saya sarankan merancang beberapa cara untuk mengelola kunci kriptografi atau cara yang hanya pengguna yang tepat dapat mengakses spool email mereka. Ada kasus di mana kunci pribadi mungkin hanya membutuhkan user:user kepemilikan tetapi kasus lain yang masuk akal untuk memberikannya user:group kepemilikan.

file pribadi - sangat mudah didapat dengan membuat grup per pengguna, sesuatu yang sering dilakukan seperti di banyak sistem.

Memang ini mudah dilakukan, tetapi juga mudah dilakukan dengan adanya other grup...

hanya mengizinkan pemilik (mis. layanan sistem) untuk menulis ke file, hanya mengizinkan grup tertentu untuk membaca, dan menolak semua akses lainnya - masalah dengan contoh ini adalah bahwa setelah persyaratan grup untuk memiliki akses tulis, pengguna/grup/lainnya gagal dengan itu. Jawaban untuk keduanya menggunakan ACL, dan tidak membenarkan, IMHO, keberadaan izin pemilik.

Saya telah menyoroti bagian dari pernyataan Anda yang tampaknya mengulangi poin saya tentang kebutuhan logis untuk sebuah other kategori dalam izin sistem file Unix.

Desain sistem file seperti yang Anda pikirkan (dari apa yang saya tahu) akan menjadi tidak aman atau berat. Unix dirancang oleh beberapa orang yang sangat cerdas, dan menurut saya model mereka memberikan keseimbangan terbaik antara keamanan dan fleksibilitas.


Apakah ini desain yang disengaja atau tambalan? Yaitu - apakah izin pemilik/grup dirancang dan dibuat bersama dengan beberapa alasan atau apakah mereka datang satu demi satu untuk menjawab kebutuhan?

Ya ini adalah desain yang disengaja yang telah hadir di UNIX sejak awal. Itu diimplementasikan pada sistem di mana memori diukur dalam KB dan CPU sangat lambat menurut standar saat ini. Ukuran dan kecepatan pencarian seperti itu penting. ACL akan membutuhkan lebih banyak ruang dan lebih lambat. Secara fungsional, everyone grup diwakili oleh bendera keamanan lainnya.

Apakah ada skenario di mana skema pengguna/grup/lainnya berguna tetapi skema grup/pemilik tidak akan cukup?

Izin yang biasa saya gunakan untuk akses file adalah:(Saya menggunakan nilai bit untuk kesederhanaan dan karena itulah cara saya biasanya menyetelnya.)

  • 600 atau 400 :Akses hanya pengguna (dan ya, saya memberikan akses hanya baca kepada pengguna).
  • 640 atau 660 :Akses pengguna dan grup.
  • 644 , 666 atau 664 :Pengguna, grup, dan akses lainnya. Skema izin dua tingkat apa pun hanya dapat menangani dua dari tiga kasus ini. Yang ketiga membutuhkan ACL.

Untuk direktori dan program yang biasa saya gunakan:

  • 700 atau 500 :Akses pengguna saja
  • 750 atau 710 :Akses hanya grup
  • 755 , 777 , 775 , atau 751 :Pengguna, grup, dan akses lainnya. Komentar yang sama berlaku untuk file.

Di atas adalah yang paling umum digunakan, tetapi bukan daftar lengkap pengaturan izin yang saya gunakan. Izin di atas digabungkan dengan grup (kadang-kadang dengan sedikit grup lengket pada direktori) sudah cukup dalam semua kasus di mana saya mungkin menggunakan ACL.

Seperti yang telah disebutkan di atas, sangat mudah untuk mencantumkan izin dalam daftar direktori. Jika ACL tidak digunakan, saya dapat mengaudit izin akses hanya dengan daftar direktori. Saat saya bekerja dengan sistem berbasis ACL, saya merasa sangat sulit untuk memverifikasi atau mengaudit izin.


Linux
  1. Pam_unix2 / Mengapa Tidak Ada Di Beberapa Distribusi?

  2. Mengapa Tidak Ada Lokal "Euro English"?

  3. Linux, Mengapa saya tidak bisa menulis meskipun saya memiliki izin grup?

  1. Ubah pemilik dan grup di C?

  2. Mengapa LXC ketika ada linux-vserver?

  3. Mengapa chmod -R 777 / merusak?

  1. Diutamakan Pengguna Dan Pemilik Grup Dalam Izin File?

  2. Memberikan Izin Grup ke File Pengguna Lain?

  3. Masalah perintah rsync, izin pemilik dan grup tidak berubah