GNU/Linux >> Belajar Linux >  >> Linux

Daftar Kontrol Akses di Linux Dijelaskan

Tutorial ini merinci daftar kontrol akses di Linux, kegunaannya, dan cara mengelolanya.

Sebagai administrator sistem, Anda mungkin menghabiskan cukup banyak waktu mengonfigurasi izin untuk pengguna dan grup di sistem Anda.

Izin file sudah cukup berguna untuk memberikan izin baca, tulis, atau eksekusi ke direktori atau file.

Tetapi bagaimana jika kita membutuhkan cara yang lebih tepat untuk memberikan izin ke folder atau file?

Bagaimana jika saya ingin memberikan akses ke file ke pengguna tertentu atau grup tertentu, yang bukan pemilik file saat ini?

Inilah tepatnya daftar kontrol akses, yang juga disingkat ACL , sedang diselesaikan pada sistem Linux.

Dalam tutorial hari ini, kita akan melihat lebih dekat daftar kontrol akses, apa itu dan bagaimana mereka digunakan untuk mengonfigurasi sistem Linux dengan benar.

Siap?

Yang Akan Anda Pelajari

Jika Anda mengikuti tutorial ini sampai akhir, Anda akan mempelajari mata pelajaran berikut:

  • Apa daftar kontrol akses dan bagaimana mereka dapat dibaca dari perintah ls;
  • Cara menyetel izin dasar pada file menggunakan setfacl perintah:
  • Cara membaca daftar kontrol akses menggunakan getfacl perintah;
  • Apa yang dimaksud dengan topeng daftar kontrol akses dan cara membacanya;
  • Apa daftar kontrol akses default dan bagaimana mereka dapat digunakan secara efektif

Itu adalah program yang cukup panjang, jadi tanpa basa-basi lagi, mari kita mulai dengan definisi singkat tentang apa itu daftar kontrol akses.

Dasar-Dasar Daftar Kontrol Akses di Linux

Di Linux, ada dua cara menyetel izin untuk pengguna dan grup :dengan izin file biasa atau dengan daftar kontrol akses.

Definisi Daftar Kontrol Akses

Daftar kontrol akses digunakan pada sistem file Linux untuk mengatur izin khusus dan lebih personal pada file dan folder. ACL memungkinkan pemilik file atau pengguna istimewa untuk memberikan hak kepada pengguna tertentu atau grup tertentu.

Di Linux, seperti yang mungkin Anda ketahui, izin dibagi menjadi tiga kategori:satu untuk pemilik file, satu untuk grup, dan satu untuk yang lain.

Namun, dalam beberapa kasus, Anda mungkin ingin memberikan akses ke direktori (misalnya, izin eksekusi) kepada pengguna tertentu tanpa harus memasukkan pengguna ini ke dalam grup file.

Inilah mengapa daftar kontrol akses pertama kali ditemukan.

Mencantumkan Daftar Kontrol Akses

Di Linux, daftar kontrol akses tidak diaktifkan saat Anda membuat file atau direktori baru di host Anda (kecuali jika direktori induk memiliki beberapa ACL yang telah ditentukan sebelumnya).

Untuk melihat apakah daftar kontrol akses ditentukan untuk file atau direktori, jalankan perintah ls dan cari “+ ” karakter di akhir baris izin.

$ ls -l

Untuk menunjukkan perbedaannya, berikut perbedaannya saat membuat daftar file pada instance minimal.

Sekarang setelah Anda memiliki beberapa dasar tentang daftar kontrol akses, mari kita lihat bagaimana Anda dapat mulai membuat ACL dasar untuk file dan direktori Anda.

Membuat daftar kontrol akses di Linux

Sebelum memulai dengan perintah ACL, penting untuk menginstal paket di host Anda.

Memeriksa instalasi paket ACL

Mungkin tidak demikian jika Anda memilih untuk menjalankan server minimal.

Mulailah dengan memeriksa bantuan yang terkait dengan setfacl dengan menjalankan perintah berikut

$ setfacl --help

Jika host Anda tidak dapat menemukan perintah setfacl, pastikan untuk menginstal paket yang diperlukan untuk manajemen ACL.

$ sudo apt-get install acl -y

Perhatikan bahwa Anda memerlukan hak sudo di Debian 10 untuk menjalankan perintah ini.

Jalankan perintah setfacl dan pastikan Anda dapat melihat perintah bantuan kali ini.

Setelah host Anda dikonfigurasi dengan benar, mari kita lihat cara kerja perintah setfacl.

Menyetel daftar kontrol akses menggunakan setfacl

Dengan daftar kontrol akses, ada dua perintah utama yang perlu Anda ingat:setfacl dan getfacl.

Dalam bab ini, kita akan melihat setfacl perintah sebagai getfacl cukup jelas.

Perintah setfacl digunakan di Linux untuk membuat, memodifikasi, dan menghapus daftar kontrol akses pada file atau direktori.

setfacl memiliki sintaks berikut

$ setfacl {-m, -x}  {u, g}:<name>:[r, w, x] <file, directory>

Di mana tanda kurung kurawal berarti salah satu opsi berikut dan tanda kurung biasa berarti satu atau beberapa item.

  • -m :berarti Anda ingin memodifikasi satu atau beberapa entri ACL pada file atau direktori.
  • -x :berarti Anda ingin menghapus satu atau beberapa entri ACL pada file atau direktori.
  • {u, g} :jika Anda ingin mengubah ACL untuk pengguna atau grup.
  • nama :ini adalah parameter opsional, ini dapat dihilangkan jika Anda ingin menyetel entri ACL untuk setiap pengguna atau untuk setiap grup di host Anda.
  • [r, w, x] :untuk menyetel izin baca, tulis, atau eksekusi pada file atau direktori.

Misalnya, untuk mengatur izin menulis khusus untuk pengguna pada file, Anda akan menulis perintah berikut

$ setfacl -m u:user:w <file, directory>

Untuk mengatur izin eksekusi untuk semua pengguna di host Anda, Anda harus menulis perintah berikut

$ setfacl -m u::x <file, directory>

Untuk mengatur izin penuh untuk grup tertentu di host Anda, Anda akan menulis setfacl dengan cara ini

$ setfacl -m g:group:rwx <file, directory>

Sekarang katakanlah Anda ingin menghapus entri ACL dari sebuah file.

Untuk menghapus entri khusus pengguna dari file, Anda harus menentukan opsi x.

Catatan :Anda tidak dapat hak tertentu dari satu entri ACL, artinya Anda tidak dapat menghapus izin menulis, menjaga izin baca ACL tetap aktif.

$ setfacl -x u:<user> <file, directory>

Demikian pula, untuk menghapus ACL yang terkait dengan grup di host Anda, Anda harus menulis perintah berikut

$ setfacl -x g:<group> <file, directory>

Sekarang Anda telah melihat bagaimana Anda dapat membuat daftar kontrol akses dengan mudah di Linux, sekarang saatnya untuk melihat bagaimana Anda dapat memeriksa daftar kontrol akses yang ada pada file dan direktori.

Mendaftarkan daftar kontrol akses menggunakan getfacl

Perintah getfacl digunakan di Linux untuk mencetak daftar lengkap semua izin reguler dan izin daftar kontrol akses pada file atau direktori.

getfacl dapat digunakan dengan sintaks berikut

$ getfacl <file, directory>

Perintah getfacl dibagi menjadi beberapa kategori :

  • Nama file, pemilik, dan grup :informasi tentang pengguna dan kepemilikan grup ditampilkan di bagian atas;
  • Izin pengguna :pertama, Anda akan menemukan izin pengguna biasa, juga disebut pengguna pemilik, diikuti oleh entri ACL khusus pengguna (disebut pengguna bernama)
  • Izin grup :grup pemilik disajikan diikuti oleh entri ACL khusus grup, juga disebut grup bernama
  • Masker :yang membatasi izin yang diberikan ke entri ACL, topeng akan dirinci di bagian berikutnya;
  • Izin lain :izin tersebut selalu aktif dan ini adalah kategori terakhir yang dieksplorasi saat tidak ada izin lain yang cocok dengan pengguna atau grup saat ini.

Bekerja dengan topeng daftar kontrol akses

Seperti yang mungkin Anda lihat dari tangkapan layar terakhir, ada entri topeng antara grup bernama dan izin lainnya.

Tapi untuk apa topeng ini?

Masker ACL berbeda dari masker pembuatan file (umask) dan digunakan untuk membatasi entri ACL yang ada pada file atau direktori.

Masker ACL digunakan sebagai kumpulan izin ACL maksimum terlepas dari izin yang ada yang melebihi topeng ACL.

Seperti biasa, diagram berbicara seratus kata.

Mask ACL diperbarui setiap kali Anda menjalankan perintah setfacl kecuali jika Anda menentukan bahwa Anda tidak ingin memperbarui mask dengan flag -n.

Untuk mencegah mask diperbarui, jalankan setfacl dengan perintah berikut

$ setfacl -n -m u:antoine:rwx <file, directory>

Seperti yang Anda lihat dalam contoh ini, saya telah mengatur pengguna "antoine" untuk memiliki izin penuh pada file tersebut.

Mask diatur untuk membatasi izin untuk membaca dan menulis izin.

Akibatnya, "izin efektif" yang ditetapkan pada file ini untuk pengguna ini adalah yang membaca dan menulis, izin eksekusi tidak diberikan.

Catatan:jika set izin maksimum Anda berbeda dari entri mask, Anda akan disajikan dengan baris efektif yang menghitung set entri ACL "asli" yang digunakan.

Membuat daftar kontrol akses default pada direktori

Seperti yang telah disebutkan dalam artikel ini, entri ACL dapat dibuat pada direktori dan bekerja dengan cara yang sama seperti daftar kontrol akses file.

Namun, ada sedikit perbedaan dalam hal direktori:Anda harus memilih untuk membuat daftar kontrol akses default.

Default daftar kontrol akses digunakan untuk membuat entri ACL pada direktori yang akan diwarisi oleh objek dalam direktori ini seperti file atau subdirektori.

Saat membuat entri ACL default :

  • File yang dibuat di direktori ini mewarisi entri ACL yang ditentukan dalam direktori induk
  • Subdirektori yang dibuat dalam direktori ini mewarisi entri ACL serta entri ACL default dari direktori induk.

Untuk membuat entri ACL default, tentukan opsi -d saat menyetel ACL menggunakan perintah setfacl.

$ setfacl -d -m {u, g}:<name>:[r, w, x] <directory>

Misalnya, untuk menetapkan izin baca ke semua file yang dibuat dalam direktori, Anda akan menjalankan perintah berikut

$ setfacl -d -m u::r directory

Sekarang, ketika file dibuat di direktori acl ini, Anda dapat melihat bahwa entri ACL default diterapkan ke file tersebut.

Demikian pula, ketika sebuah direktori dibuat di direktori acl, itu akan mewarisi entri ACL default ditentukan dalam direktori induk.

Perhatikan bahwa disarankan untuk menentukan izin default untuk ketiga kategori (pengguna, grup, dan lainnya).

Bahkan, menentukan salah satu dari tiga entri akan membuat dua entri lainnya dengan izin yang terkait dengan topeng pembuatan file.

Menghapus daftar kontrol akses default pada direktori

Untuk menghapus daftar kontrol akses default yang ada pada direktori, gunakan tanda -k dengan perintah setfacl.

$ setfacl -k <directory>

Mengingat contoh yang kami tentukan sebelumnya, berikut adalah cara menghapus entri default

$ setfacl -k acl-directory

Perhatikan bahwa menghapus entri ACL dari direktori induk tidak menghapus entri ACL dalam file atau direktori yang terdapat dalam direktori induk.

Untuk menghapus entri ACL default di direktori dan semua subdirektori , Anda harus menggunakan rekursif opsi (-R)

$ setfacl -kR <directory>

Kesimpulan

Dalam tutorial ini, Anda mempelajari tentang daftar kontrol akses di Linux, getfacl dan perintah setfacl.

Anda telah mempelajari lebih lanjut tentang topeng daftar kontrol akses dan bagaimana ACL default digunakan untuk membuat entri ACL pada file dan subdirektori yang terdapat dalam direktori induk.

Jika Anda ingin tahu tentang administrasi sistem Linux, kami memiliki lebih banyak tutorial tentang masalah ini, pastikan untuk membacanya!


Linux
  1. Perintah Sejarah di Linux Dijelaskan Secara Mendalam

  2. Pemantauan Akses File Linux?

  3. Linux – Blokir Akses Jaringan Suatu Proses?

  1. Daftar kontrol akses dan drive eksternal di Linux:Apa yang perlu Anda ketahui

  2. UNIX/Linux :Dasar-dasar daftar kontrol akses (ACL)

  3. Cara Mengaudit Akses File di Linux

  1. Pengantar Daftar Kontrol Akses Linux (ACL)

  2. ls Perintah di Linux:17 Contoh yang Berguna Dijelaskan

  3. Cara Mengonfigurasi ACL (Access Control Lists) di Sistem File Linux