Tema ini menjelaskan cara mengonfigurasi Daftar Kontrol Akses (ACL) NFSv4 dan menggunakan ACL tersebut untuk mengontrol akses ke file dan direktori dalam sistem file NFSv4.
Prasyarat
Sistem file NFSv4 telah dipasang. Untuk informasi lebih lanjut, lihat Pasang Sistem File NFS pada Instance ECS Linux.
Informasi latar belakang
Anda dapat memasang sistem file NFSv4 pada Instance Elastic Compute Service (ECS) Linux dan menginstal alat khusus Linux nfs4-acl-tools pada instance tersebut. Setelah alat diinstal, Anda dapat menggunakan alat standar nfs4_getfacl dan nfs4_setfacl untuk mengonfigurasi NFSv4 ACL.
Deskripsi perintah
Sebelum mengonfigurasi NFSv4 ACL, kami sarankan Anda memahami perintah tertentu. Tabel berikut menjelaskan perintah-perintah tersebut.
Perintah | Deskripsi |
| Mengambil ACL yang berlaku untuk file tertentu. |
| Menambahkan entri kontrol akses (ACE) yang memberikan izin tulis pada file tertentu kepada prinsipal GROUP@. |
| Menambahkan ACE yang memberikan izin tulis pada file tertentu kepada prinsipal pengguna bernama 1000. |
| Menambahkan ACE yang memberikan izin tulis pada file tertentu kepada prinsipal pengguna bernama 10001. |
| Memodifikasi ACL dalam mode interaktif. |
| Menyimpan daftar izin pada file tertentu sebagai file TXT. |
| Mengonfigurasi izin pada file tertentu dengan menggunakan file TXT yang mencakup daftar izin. |
| Memodifikasi izin dari ACE yang berlaku untuk file file1. |
| Menyalin ACL untuk file file1 ke file file2. |
| Menghapus semua ACE yang berlaku untuk file file1, kecuali ACE yang mencakup prinsipal berikut: OWNER@, GROUP@, dan EVERYONE@. |
| Menambahkan ACE yang memberikan izin baca dan tulis pada file dan subdirektori dalam direktori dir kepada prinsipal grup bernama 10001. |
| Menghapus ACE yang memberikan izin pada file dalam direktori dir kepada prinsipal pengguna bernama 1005. |
| Menambahkan ACE yang memberikan izin baca dan tulis pada file baru dan subdirektori dalam direktori dir1 kepada prinsipal grup bernama 10001. |
| Menambahkan ACE yang memberikan izin baca, tulis, dan eksekusi pada semua file baru dalam direktori dir1 kepada prinsipal grup bernama 10001. |
Prosedur
Untuk mengontrol akses ke file dan direktori dengan mengonfigurasi NFSv4 ACL, lakukan langkah-langkah berikut:
Buat pengguna dan grup.
Dalam contoh ini, pengguna berikut dibuat: player, admini, dan anonym. Grup berikut dibuat: players dan adminis. Pengguna player ditambahkan ke grup players dan pengguna admini ditambahkan ke grup adminis.
sudo useradd player sudo groupadd players sudo usermod -g players player sudo useradd admini sudo groupadd adminis sudo usermod -g adminis admini sudo useradd anonymInstal alat yang diperlukan untuk mengonfigurasi NFSv4 ACL.
Jika Anda telah menginstal alat-alat ini, lewati langkah ini.
sudo yum -y install nfs4-acl-toolsDapatkan ID grup players dan adminis.
Buka file /etc/group. ID grup players dan adminis akan ditampilkan.
players:x:19064:player adminis:x:19065:adminiKonfigurasikan NFSv4 ACL untuk mengontrol akses ke file dan direktori.
Jalankan perintah berikut untuk menyelesaikan operasi: Buat direktori bernama dir0. Tambahkan ACE yang memberikan izin hanya-baca kepada grup players untuk semua file dalam direktori dir0, berikan izin baca, tulis, dan eksekusi kepada grup adminis, serta jangan berikan izin apa pun kepada pengguna lainnya.
sudo umask 777 sudo mkdir dir0 sudo nfs4_setfacl -a A:fdg:19064:RX dir0 sudo nfs4_setfacl -a A:fdg:19065:RWX dir0 sudo nfs4_setfacl -a A:fdg:OWNER@: dir0 sudo nfs4_setfacl -a A:fdg:GROUP@: dir0 sudo nfs4_setfacl -a A:fdg:EVERYONE@: dir0Jalankan perintah
sudo nfs4_getfacl dir0untuk memverifikasi konfigurasi.A::OWNER@:tTnNcCy A::GROUP@:tncy A::EVERYONE@:tncy A:fdi:EVERYONE@:tncy A:fdi:OWNER@:tTnNcCy A:fdi:GROUP@:tncy A:g:19064:rxtncy A:g:19065:rwaDxtTnNcCy A:fdig:19064:rxtncy A:fdig:19065:rwaDxtTnNcCyVerifikasi konfigurasi ACL.
Jalankan perintah berikut untuk memverifikasi bahwa pengguna admini memiliki izin baca dan tulis:
sudo su admini -c 'touch dir0/file'sudo su admini -c 'echo 123 > dir0/file'Verifikasi bahwa pengguna player memiliki izin hanya-baca.
Verifikasi bahwa pengguna player tidak memiliki izin untuk membuat file, misalnya file dir0/file.
Jalankan perintah berikut:
sudo su player -c 'touch dir0/file'Jika keluaran serupa dengan informasi berikut, pengguna player tidak memiliki izin untuk membuat file:
touch: cannot touch 'dir0/file': Permission denied
Verifikasi bahwa pengguna player tidak memiliki izin tulis, misalnya izin tulis pada file dir0/file.
Jalankan perintah berikut:
sudo su player -c 'echo 456 >> dir0/file'Jika keluaran serupa dengan informasi berikut, pengguna player tidak memiliki izin tulis:
bash: dir0/file: Permission denied
Verifikasi bahwa pengguna player memiliki izin baca.
Jalankan perintah berikut:
sudo su player -c 'cat dir0/file'Jika keluaran serupa dengan informasi berikut, pengguna player memiliki izin baca:
123
Anda juga dapat menjalankan perintah
sudo su player -c 'nfs4_getfacl dir0/file'untuk melihat izin yang dimiliki pengguna player pada file dir0/file.A::OWNER@:tTnNcCy A::GROUP@:tncy A::EVERYONE@:tncy A:g:19064:rxtncy A:g:19065:rwaxtTnNcCy
Verifikasi bahwa pengguna anonym tidak memiliki izin pada direktori dir0.
Verifikasi bahwa pengguna anonym tidak memiliki izin untuk melihat file dalam direktori dir0.
Jalankan perintah berikut:
sudo su anonym -c 'ls dir0'Jika keluaran serupa dengan informasi berikut, pengguna anonym tidak memiliki izin pada direktori dir0:
ls: cannot open directory dir0: Permission denied
Verifikasi bahwa pengguna anonym tidak memiliki izin untuk melihat isi file.
Jalankan perintah berikut:
sudo su anonym -c 'cat dir0/file'Jika keluaran serupa dengan informasi berikut, pengguna anonym tidak memiliki izin untuk melihat isi file:
cat: dir0/file: Permission denied
Verifikasi bahwa pengguna anonym tidak memiliki izin untuk mengakses file.
Jalankan perintah berikut:
sudo su anonym -c 'nfs4_getfacl dir0/file'Jika keluaran serupa dengan informasi berikut, pengguna anonym tidak memiliki izin untuk mengakses file.
Invalid filename: dir0/file
Apa yang harus dilakukan selanjutnya
Anda dapat menggunakan metode berikut untuk mencabut izin dari pengguna.
Jika Anda ingin menggunakan NFSv4 ACL, kami sarankan Anda menambahkan setiap pengguna ke grup. Ini memungkinkan Anda mengonfigurasi izin untuk grup pengguna daripada pengguna individu. Untuk mencabut izin pada objek dari pengguna, Anda dapat menghapus pengguna dari grup yang diberi izin pada objek tersebut. Sebagai contoh, Anda dapat menjalankan perintah berikut untuk menghapus pengguna admini dari grup adminis dan menambahkan pengguna tersebut ke grup adminis2.
Jalankan perintah berikut untuk membuat grup adminis2:
sudo groupadd adminis2Jalankan perintah berikut untuk menghapus pengguna admini dari grup adminis dan menambahkan pengguna tersebut ke grup adminis2:
sudo usermod -g adminis2 adminiKueri informasi ID tentang pengguna.
Jalankan perintah berikut:
id adminiInformasi berikut dikembalikan:
uid=1057(admini) gid=1057(admini) groups=1061(adminis2)
Verifikasi izin pengguna admini.
Verifikasi bahwa pengguna admini tidak memiliki izin untuk mengakses direktori dir0.
Jalankan perintah berikut:
sudo su admini -c 'ls dir0'Jika keluaran serupa dengan informasi berikut, pengguna admini tidak memiliki izin untuk mengakses direktori dir0:
ls: cannot open directory dir0: Permission denied
Verifikasi bahwa pengguna admini tidak memiliki izin untuk melihat isi file dir0/file.
Jalankan perintah berikut:
sudo su admini -c 'cat dir0/file'Jika keluaran serupa dengan informasi berikut, pengguna admini tidak memiliki izin untuk melihat isi file dir0/file:
cat: dir0/file: Permission denied
Verifikasi bahwa pengguna admini tidak memiliki izin untuk mengakses file dir0/file.
Jalankan perintah berikut:
sudo su admini -c 'getfacl dir0/file'Jika keluaran serupa dengan informasi berikut, pengguna admini tidak memiliki izin untuk mengakses file dir0/file:
getfacl: dir0/file: Permission denied