Cara mengatur daftar kontrol akses (ACL) dan kuota disk untuk pengguna dan grup
- 3206
- 1030
- Dr. Travis Bahringer
Daftar Kontrol Akses (juga dikenal sebagai ACLS) adalah fitur kernel Linux yang memungkinkan untuk mendefinisikan lebih banyak hak akses berbutir halus untuk file dan direktori daripada yang ditentukan oleh reguler UGO/RWX izin.
Misalnya, standar UGO/RWX Izin tidak memungkinkan untuk menetapkan izin yang berbeda untuk pengguna atau grup individu yang berbeda. Dengan ACL ini relatif mudah dilakukan, seperti yang akan kita lihat di artikel ini.
Memeriksa kompatibilitas sistem file dengan ACLS
Untuk memastikan bahwa sistem file Anda saat ini mendukung ACL, Anda harus memeriksa apakah mereka telah dipasang menggunakan opsi ACL. Untuk melakukan itu, kami akan menggunakan tune2fs untuk sistem file ext2/3/4 seperti yang ditunjukkan di bawah ini. Mengganti /dev/sda1 dengan perangkat atau sistem file yang ingin Anda periksa:
# tune2fs -l /dev /sda1 | grep "opsi pemasangan default:"
Catatan: Dengan Xfs, Daftar kontrol akses didukung di luar kotak.
Berikut ini ext4 sistem file, kita dapat melihat bahwa ACL telah diaktifkan /dev/xvda2:
# tune2fs -l /dev /xvda2 | grep "opsi pemasangan default:"Periksa ACL diaktifkan pada sistem file linux
Jika perintah di atas tidak menunjukkan bahwa sistem file telah dipasang dengan dukungan untuk ACLS, kemungkinan besar karena itu noacl opsi hadir /etc/fstab.
Dalam hal ini, hapus, lepaskan sistem file, lalu pasang lagi, atau cukup reboot sistem Anda setelah menyimpan perubahan ke /etc/fstab.
Memperkenalkan ACL di Linux
Untuk mengilustrasikan cara kerja ACLS, kami akan menggunakan grup bernama pengembang dan tambahkan pengguna Walterwhite Dan Saulgoodman (Ya, saya penggemar berat yang buruk!) untuk itu.:
# GroupAdd Developers # useradd walterwhite # useradd saulgoodman # usermod -a -g pengembang walterwhite # usermod -a -g pengembang saulgoodman
Sebelum kita melanjutkan, mari kita verifikasi bahwa kedua pengguna telah ditambahkan ke grup pengembang:
# id walterwhite # id saulgoodmanTemukan ID Pengguna di Linux
Sekarang mari kita buat direktori yang dipanggil tes di dalam /mnt, dan file bernama ACL.txt di dalam (/mnt/test/acl.txt).
Kemudian kami akan menetapkan pemilik grup pengembang dan mengubah defaultnya UGO/RWX Izin secara rekursif 770 (Dengan demikian memberikan izin baca, tulis, dan jalankan yang diberikan kepada pemilik dan pemilik grup file):
# mkdir/mnt/test # touch/mnt/test/acl.txt # chgrp -r pengembang /mnt /tes # chmod -r 770 /mnt /test
Seperti yang diharapkan, Anda dapat menulis ke /mnt/test/acl.txt sebagai Walterwhite atau Saulgoodman:
# su - walterwhite # echo "name my walter white">/mnt/test/acl.txt # Exit # su - Saulgoodman # echo "My Name Is Saul Goodman" >>/mnt/test/acl.TXT # EXITVerifikasi aturan ACL tentang pengguna
Sejauh ini bagus. Namun, kita akan segera melihat masalah ketika kita perlu memberikan akses menulis /mnt/test/acl.txt untuk pengguna lain yang tidak ada dalam grup pengembang.
Standar UGO/RWX Izin akan mengharuskan pengguna baru ditambahkan ke grup pengembang, tetapi itu akan memberinya izin yang sama atas semua objek yang dimiliki oleh grup. Di situlah ACLS menjadi berguna.
Mengatur ACL di Linux
Ada dua jenis ACL: akses ACLS adalah (yang diterapkan pada file atau direktori), dan Default (opsional) ACLS, yang hanya dapat diterapkan ke direktori.
Jika file di dalam direktori di mana a ACL default telah ditetapkan tidak memiliki ACL sendiri, mereka mewarisi ACL default dari direktori induk mereka.
Mari Beri Pengguna Gacanepa Baca dan tulis akses ke /mnt/test/acl.txt. Sebelum melakukan itu, mari kita lihat pengaturan ACL saat ini di direktori itu dengan:
# getfacl/mnt/test/acl.txt
Kemudian ubah ACL pada file, gunakan U:
diikuti dengan nama pengguna dan : rw
untuk menunjukkan izin baca / tulis:
# setfacl -m u: gacanepa: rw/mnt/test/acl.txt
Dan lari getfacl pada file lagi untuk membandingkan. Gambar berikut menunjukkan "Sebelum" Dan "Setelah":
# getfacl/mnt/test/acl.txtAtur ACL pada pengguna Linux
Selanjutnya, kita perlu memberi orang lain mengeksekusi izin pada /mnt/tes direktori:
# chmod +x /mnt /tes
Perlu diingat bahwa untuk mengakses konten direktori, pengguna biasa perlu menjalankan izin pada direktori itu.
Pengguna Gacanepa sekarang harus dapat menulis ke file. Beralih ke akun pengguna itu dan jalankan perintah berikut untuk mengonfirmasi:
# echo "Nama saya Gabriel Cánepa" >>/mnt/test/acl.txt
Untuk mengatur ACL default ke direktori (yang isinya akan mewarisi kecuali ditimpa sebaliknya), tambahkan D:
Sebelum aturan dan tentukan direktori alih -alih nama file:
# setfacl -m d: o: r/mnt/test # getfacl/mnt/test/
ACL di atas akan memungkinkan pengguna tidak ada di grup pemilik untuk membaca akses ke konten masa depan dari /mnt/tes direktori. Perhatikan perbedaan output getfacl /mnt /tes sebelum dan sesudah perubahan:
Atur Direktori ACL Default ke LinuxUntuk menghapus ACL tertentu, ganti -M
dalam perintah di atas dengan -X
. Misalnya,
# setfacl -x d: o /mnt /tes
Atau, Anda juga dapat menggunakan -B
Opsi untuk menghapus semua ACL dalam satu langkah:
# setfacl -b /mnt /tes
Untuk informasi lebih lanjut dan contoh tentang penggunaan ACL, silakan merujuk ke Bab 10, seksi 2, Panduan Keamanan OpenSUSE (juga tersedia untuk diunduh tanpa biaya dalam format PDF).
Atur kuota disk Linux pada pengguna dan sistem file
Ruang penyimpanan adalah sumber lain yang harus digunakan dan dipantau dengan cermat. Untuk melakukan itu, kuota dapat diatur berdasarkan sistem file, baik untuk pengguna individu atau untuk grup.
Dengan demikian, batas ditempatkan pada penggunaan disk yang diizinkan untuk pengguna yang diberikan atau grup tertentu, dan Anda dapat yakin bahwa disk Anda tidak akan diisi dengan kapasitas oleh pengguna yang ceroboh (atau tidak disengaja).
Hal pertama yang harus Anda lakukan untuk mengaktifkan kuota pada sistem file adalah memasangnya dengan opsi USRQUOTA atau GRPQUOTA (untuk kuota pengguna dan grup, masing -masing) /etc/fstab.
Misalnya, mari kita aktifkan kuota berbasis pengguna /dev/vg00/vol_backups dan kuota berbasis grup di /dev/vg00/vol_projects.
Perhatikan bahwa UUID digunakan untuk mengidentifikasi setiap sistem file.
UUID = F6D1EBA2-9AED-40EA-99AC-75F4BE05C05A /HOME /Proyek Ext4 Default, Grpquota 0 0 UUID = E1929239-5087-44B1-9396-53E09DB6EB9E /HOME /HOME /HOME, EXTRQUS4S4S4S4S4S4S4S4S4S4S4S4B1,
Unmount dan remount kedua sistem file:
# Umount /Home /Projects # Umount /Home /Backups # Mount -o Remount /Home /Projects # Mount -o Remount /Home /Backups
Kemudian periksa apakah opsi USRQUOTA dan GRPQUOTA hadir di output mount (lihat disorot di bawah):
# mount | Grep VG00Periksa kuota pengguna Linux dan kuota grup
Akhirnya, jalankan perintah berikut untuk menginisialisasi dan mengaktifkan kuota:
# QuotaCheck -avugc # kuota -vu /home /cadangan # quaon -vg /home /proyek
Yang mengatakan, mari kita berikan kuota ke nama pengguna dan kelompok yang kami sebutkan sebelumnya. Anda nanti dapat menonaktifkan kuota dengan kuota.
Mengatur Kuota Disk Linux
Mari kita mulai dengan mengatur ACL /rumah/cadangan untuk pengguna Gacanepa, yang akan memberinya baca, tulis, dan menjalankan izin pada direktori itu:
# setfacl -m u: gacanepa: rwx/home/cadangan/
Lalu dengan,
# edquota -u gacanepa
Kami akan membuat yang lembut batas = 900 Dan yang sulit batas = 1000 blok (1024 byte/blok * 1000 blok = 1024000 byte = 1 mb) penggunaan ruang disk.
Kami juga dapat menempatkan batas 20 Dan 25 sebagai terbatas dan keras pada jumlah file yang dapat dibuat oleh pengguna ini.
Perintah di atas akan meluncurkan editor teks ($ Editor) Dengan file sementara di mana kami dapat menetapkan batas yang disebutkan sebelumnya:
Kuota Disk Linux untuk PenggunaPengaturan ini akan menyebabkan peringatan ditunjukkan kepada pengguna Gacanepa ketika dia telah mencapai 900 blok atau 20-inode Batas untuk masa tenggang default 7 hari.
Jika melebihi kuota Situasi belum dihilangkan pada saat itu (misalnya, dengan menghapus file), batas lunak akan menjadi batas keras dan pengguna ini akan dicegah menggunakan lebih banyak ruang penyimpanan atau membuat lebih banyak file.
Untuk menguji, mari kita minta pengguna gacanepa mencoba membuat kosong 2 MB file bernama test1 di dalam /rumah/cadangan:
# dd if =/dev/nol dari =/home/cadangan/test1 bs = 2m jumlah = 1 # ls -lh/home/cadangan/test1Verifikasi Kuota Pengguna Linux di Disk
Seperti yang Anda lihat, file operasi tulis gagal karena kuota disk telah terlampaui. Karena hanya yang pertama 1000 kb ditulis ke disk, hasil dalam kasus ini kemungkinan besar akan menjadi file yang korup.
Demikian pula, Anda dapat membuat ACL untuk grup pengembang untuk memberi anggota grup itu akses RWX /rumah/proyek:
# setfacl -m G: Pengembang: rwx/home/proyek/
Dan atur batas kuota dengan:
# edquota -g pengembang
Seperti yang kami lakukan dengan pengguna Gacanepa lebih awal.
Masa tenggang dapat ditentukan untuk sejumlah detik, menit, jam, hari, minggu, atau bulan dengan mengeksekusi.
# Edquota -t
dan memperbarui nilai di bawah Blokir masa tenggang dan masa tenggang inode.
Berbeda dengan penggunaan atau penggunaan inode (yang ditetapkan pada pengguna atau grup-basis), masa tenggang diatur di seluruh sistem.
Untuk melaporkan kuota, Anda dapat menggunakan kuota -u [pengguna]
atau kuota -g [grup]
untuk daftar cepat atau repquota -v [/path/to/filesystem]
untuk laporan yang lebih rinci (verbose) dan diformat dengan baik.
Tentu saja, Anda ingin mengganti [pengguna]
, [kelompok]
, Dan [/path/to/filesystem]
dengan nama pengguna / grup tertentu dan sistem file yang ingin Anda periksa.
Ringkasan
Dalam artikel ini kami telah menjelaskan cara mengatur Daftar Kontrol Akses dan kuota disk untuk pengguna dan grup. Menggunakan keduanya, Anda akan dapat mengelola izin dan penggunaan disk secara lebih efektif.
Jika Anda ingin mempelajari lebih lanjut tentang kuota, Anda dapat merujuk ke kuota mini-howto di proyek dokumentasi Linux.
Tak perlu dikatakan, Anda juga dapat mengandalkan kami untuk menjawab pertanyaan. Kirimkan saja menggunakan formulir komentar di bawah ini dan kami akan lebih dari senang untuk melihatnya.
Menjadi Administrator Sistem Bersertifikat Linux- « Cara Menginstal Cygwin, lingkungan CommandLine seperti Linux untuk Windows
- Cara Mengubah Parameter Runtime Kernel dengan cara yang persisten dan tidak ada »