Seri RHCSA: Menggunakan ACL (Daftar Kontrol Akses) dan Memasang Saham Samba/NFS - Bagian 7


Pada artikel terakhir (seri RHCSA Bagian 6) kami mulai menjelaskan cara menyiapkan dan mengonfigurasi penyimpanan sistem lokal menggunakan parted dan ssm.

Kami juga membahas cara membuat dan memasang volume terenkripsi dengan kata sandi selama boot sistem. Selain itu, kami memperingatkan Anda untuk menghindari melakukan operasi manajemen penyimpanan penting pada sistem file yang terpasang. Dengan mengingat hal tersebut, sekarang kami akan meninjau format sistem file yang paling sering digunakan di Red Hat Enterprise Linux 7 dan kemudian melanjutkan untuk membahas topik pemasangan, penggunaan, dan pelepasan keduanya secara manual dan sistem file jaringan secara otomatis (CIFS dan NFS), bersama dengan penerapan daftar kontrol akses untuk sistem Anda.

Prasyarat

Sebelum melanjutkan lebih jauh, pastikan Anda memiliki server Samba dan server NFS yang tersedia (perhatikan bahwa NFSv2 tidak lagi didukung di RHEL 7).

Selama panduan ini kita akan menggunakan mesin dengan IP 192.168.0.10 dengan kedua layanan berjalan di dalamnya sebagai server, dan kotak RHEL 7 sebagai klien dengan alamat IP 192.168 .0.18. Nanti di artikel ini kami akan memberi tahu Anda paket mana yang perlu Anda instal pada klien.

Format Sistem File di RHEL 7

Dimulai dengan RHEL 7, XFS telah diperkenalkan sebagai sistem file default untuk semua arsitektur karena kinerja dan skalabilitasnya yang tinggi. Saat ini mendukung ukuran sistem file maksimum 500 TB sesuai dengan pengujian terbaru yang dilakukan oleh Red Hat dan mitranya untuk perangkat keras mainstream.

Selain itu, XFS mengaktifkan user_xattr (atribut pengguna tambahan) dan acl (daftar kontrol akses POSIX) sebagai opsi pemasangan default, tidak seperti ext3 atau ext4 (ext2 dianggap tidak digunakan lagi sejak RHEL 7), yang berarti Anda tidak perlu menentukan opsi tersebut secara eksplisit baik di baris perintah atau di /etc/fstab saat memasang sistem file XFS (jika Anda ingin menonaktifkan opsi tersebut dalam kasus terakhir ini, Anda harus menggunakan no_acl dan no_user_xattr secara eksplisit).

Ingatlah bahwa atribut pengguna yang diperluas dapat ditetapkan ke file dan direktori untuk menyimpan informasi tambahan sewenang-wenang seperti tipe mime, kumpulan karakter, atau pengkodean file, sedangkan izin akses untuk atribut pengguna ditentukan oleh bit izin file biasa.

Daftar Kontrol Akses

Karena setiap administrator sistem, baik pemula maupun ahli, mengetahui dengan baik izin akses reguler pada file dan direktori, yang menentukan hak istimewa tertentu (baca, tulis, dan eksekusi). ) untuk pemilik, grup, dan “dunia ” (orang lain). Namun, silakan merujuk ke Bagian 3 dari seri RHCSA jika Anda perlu sedikit menyegarkan ingatan Anda.

Namun, karena kumpulan ugo/rwx standar tidak mengizinkan konfigurasi izin yang berbeda untuk pengguna yang berbeda, ACL diperkenalkan untuk menentukan hak akses yang lebih rinci untuk file dan direktori daripada yang ditentukan oleh izin reguler.

Faktanya, izin yang ditentukan ACL adalah superset dari izin yang ditentukan oleh bit izin file. Mari kita lihat bagaimana semua terjemahan ini diterapkan di dunia nyata.

1. Ada dua jenis ACL: ACL akses, yang dapat diterapkan ke file atau direktori tertentu), dan ACL default, yang hanya dapat diterapkan pada direktori. Jika file yang ada di dalamnya tidak memiliki set ACL, maka file tersebut mewarisi ACL default dari direktori induknya.

2. Untuk memulai, ACL dapat dikonfigurasi per pengguna, per grup, atau per pengguna yang tidak termasuk dalam grup pemilik file.

3. ACL disetel (dan dihapus) menggunakan setfacl, dengan -m atau - x opsi, masing-masing.

Misalnya, mari kita membuat grup bernama tecmint dan menambahkan pengguna johndoe dan davenull ke dalamnya:

groupadd tecmint
useradd johndoe
useradd davenull
usermod -a -G tecmint johndoe
usermod -a -G tecmint davenull

Dan mari kita verifikasi bahwa kedua pengguna termasuk dalam grup tambahan tecmint:

id johndoe
id davenull

Sekarang mari kita buat sebuah direktori bernama taman bermain di dalam /mnt, dan sebuah file bernama testfile.txt di dalamnya. Kami akan menetapkan pemilik grup ke tecmint dan mengubah izin default ugo/rwx menjadi 770 (izin baca, tulis, dan jalankan yang diberikan kepada keduanya pemilik dan grup pemilik file):

mkdir /mnt/playground
touch /mnt/playground/testfile.txt
chmod 770 /mnt/playground/testfile.txt

Kemudian alihkan pengguna ke johndoe dan davenull, dalam urutan itu, dan tulis ke file:

echo "My name is John Doe" > /mnt/playground/testfile.txt
echo "My name is Dave Null" >> /mnt/playground/testfile.txt

Sejauh ini bagus. Sekarang mari kita minta pengguna gacanepa menulis ke file – dan operasi penulisan akan gagal, dan ini memang sudah diduga.

Namun bagaimana jika kita benar-benar membutuhkan pengguna gacanepa (yang bukan anggota grup tecmint) untuk memiliki izin menulis di /mnt/playground/testfile.txt?< Hal pertama yang mungkin terlintas di benak Anda adalah menambahkan akun pengguna tersebut ke grup tecmint. Tapi itu akan memberinya izin menulis pada SEMUA file jika bit tulis disetel untuk grup, dan kami tidak menginginkannya. Kami hanya ingin dia dapat menulis ke /mnt/playground/testfile.txt.

touch /mnt/playground/testfile.txt
chown :tecmint /mnt/playground/testfile.txt
chmod 777 /mnt/playground/testfile.txt
su johndoe
echo "My name is John Doe" > /mnt/playground/testfile.txt
su davenull
echo "My name is Dave Null" >> /mnt/playground/testfile.txt
su gacanepa
echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt

Mari beri pengguna gacanepa akses baca dan tulis ke /mnt/playground/testfile.txt.

Jalankan sebagai root,

setfacl -R -m u:gacanepa:rwx /mnt/playground

dan Anda telah berhasil menambahkan ACL yang memungkinkan gacanepa menulis ke file pengujian. Kemudian beralih ke pengguna gacanepa dan coba tulis lagi ke file tersebut:

echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt

Untuk melihat ACL file atau direktori tertentu, gunakan getfacl:

getfacl /mnt/playground/testfile.txt

Untuk menyetel ACL default ke direktori (yang akan diwarisi isinya kecuali ditimpa sebaliknya), tambahkan d: sebelum aturan dan tentukan direktori, bukan nama file:

setfacl -m d:o:r /mnt/playground

ACL di atas akan memungkinkan pengguna yang bukan anggota grup pemilik untuk memiliki akses baca ke konten direktori /mnt/playground di masa mendatang. Perhatikan perbedaan keluaran getfacl /mnt/playground sebelum dan sesudah perubahan:

Bab 20 dalam Panduan Administrasi Penyimpanan RHEL 7 resmi memberikan lebih banyak contoh ACL, dan saya sangat menyarankan Anda melihatnya dan menggunakannya sebagai referensi.