GNU/Linux >> Belajar Linux >  >> Linux

Diutamakan Pengguna Dan Pemilik Grup Dalam Izin File?

Saya baru saja mengalami sesuatu yang tidak terduga (bagi saya) mengenai izin file di Linux (Arch Linux). Pada dasarnya saya punya:

  • userX di groupX
  • fileX userX:groupX ---rwx----

Yang membingungkan saya:Saya tidak dapat melakukan tindakan apa pun (rwx ) pada fileX . Apakah ini benar? Bisakah seseorang mengonfirmasi bahwa ini memang perilaku yang diharapkan?

Satu-satunya tindakan yang dapat saya lakukan adalah mv dan rm karena saya memiliki izin menulis di direktori induk.

Masalahnya, saya selalu berpikir izin ini runtuh satu sama lain, dimulai dengan yang paling umum (lainnya -> grup -> pengguna). Dengan kata lain, jika o=rwx siapa yang peduli apa izin untuk grup dan pengguna?
Rupanya ini bukan masalahnya, tetapi itu tidak masuk akal bagi saya; tampaknya berlawanan dengan intuisi. Satu-satunya hal yang tampaknya berguna dari pendekatan ini, adalah dengan mudah mengecualikan orang / kelompok yang sangat spesifik, yang sepertinya bukan cara cerdas untuk melakukannya (imho). Selain itu, pemilik (dan grup?) harus dapat chmod toh kan? Ada pendapat tentang masalah ini?

Jawaban yang Diterima:

Masalahnya, saya selalu berpikir bahwa izin ini runtuh satu sama lain, dimulai dengan yang paling umum (lainnya -> grup -> pengguna).

Jika demikian halnya, izin “lainnya” akan berlaku untuk semua orang.

Dengan kata lain, jika o=rwx siapa yang peduli apa izin untuk grup dan pengguna?

Itu berbeda dari kalimat Anda sebelumnya. Di sini Anda menyiratkan bahwa izin digabungkan, mis. bahwa userX memiliki izin baca jika userX memiliki file dan file dapat dibaca pengguna, atau jika grup milik userX memiliki file dan file dapat dibaca grup, atau jika file dapat dibaca orang lain. Tapi bukan itu cara kerjanya. Faktanya, o=rwx artinya rwx izin berlaku untuk orang lain, tetapi tidak mengatakan apa pun tentang entitas yang bukan orang lain.

Pertama, tidak masalah secara langsung grup mana yang dimiliki pengguna. Kernel tidak memiliki gagasan tentang pengguna yang termasuk dalam grup. Apa yang dipertahankan kernel adalah, untuk setiap proses, ID pengguna (UID efektif) dan daftar ID grup (GID efektif dan GID tambahan). Grup ditentukan pada waktu login, oleh proses login — proses login yang membaca database grup (mis. /etc/group ). ID pengguna dan grup diwarisi oleh proses turunan¹.

Saat sebuah proses mencoba membuka file, dengan izin Unix tradisional:

  • Jika pengguna pemilik file adalah UID proses yang efektif, maka bit izin pengguna akan digunakan.
  • Jika tidak, jika grup pemilik file adalah GID efektif proses atau salah satu ID grup tambahan proses, maka bit izin grup akan digunakan.
  • Jika tidak, bit izin lainnya akan digunakan.

Hanya satu set bit rwx yang pernah digunakan. Pengguna didahulukan daripada grup yang didahulukan dari yang lain. Ketika ada daftar kontrol akses, algoritma yang dijelaskan di atas digeneralisasikan:

  • Jika ada ACL pada file untuk UID proses yang efektif, maka itu digunakan untuk menentukan apakah akses diberikan.
  • Jika tidak, jika ada ACL pada file untuk GID efektif proses atau salah satu ID grup tambahan proses, maka bit izin grup akan digunakan.
  • Jika tidak, bit izin lainnya akan digunakan.
Terkait:Bagaimana perintah xdg-open mengetahui aplikasi mana yang digunakan untuk membuka file?

Jadi -rw----r-- alice interns menunjukkan file yang dapat dibaca dan ditulis oleh Alice, dan yang dapat dibaca oleh semua pengguna lain kecuali pekerja magang. File dengan izin dan kepemilikan ----rwx--- alice interns hanya dapat diakses oleh pekerja magang kecuali Alice (apakah dia magang atau bukan). Karena Alice dapat memanggil chmod untuk mengubah izin, ini tidak memberikan keamanan apa pun; ini adalah kasus tepi. Pada sistem dengan ACL, mekanisme umum memungkinkan penghapusan izin dari pengguna tertentu atau grup tertentu, yang terkadang berguna.

Menggunakan satu set bit, daripada meng-or-ing semua bit untuk setiap tindakan (baca, tulis, jalankan), memiliki beberapa keuntungan:

  • Ini memiliki efek berguna yang memungkinkan penghapusan izin dari sekumpulan pengguna atau grup, pada sistem dengan ACL. Pada sistem tanpa ACL, izin dapat dihapus dari satu grup.
  • Lebih mudah untuk diterapkan:periksa satu set bit, daripada menggabungkan beberapa set bit bersama-sama.
  • Lebih mudah untuk menganalisis izin file, karena lebih sedikit operasi yang terlibat.

Mereka dapat berubah ketika proses setuid atau setgid dijalankan. Ini tidak terkait dengan masalah yang dihadapi.


Linux
  1. Linux chmod and chown – Cara Mengubah Izin dan Kepemilikan File di Linux

  2. Cara membuat dan menghapus grup pengguna di Linux

  3. Kompresi / Pengarsipan Yang Menyimpan Izin Dan Pemilik File?

  1. Buat pengguna baru dan berikan izin di MySQL

  2. Cara mengelola Izin/Kepemilikan File dan Direktori di Linux

  3. Panduan Pemula untuk Administrasi Pengguna dan Grup di Linux

  1. Linux – Memahami Izin Unix Dan Jenis File?

  2. Bedakan setiap pengguna apache dan berikan izin

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