Topik ini menjelaskan cara mengonfigurasi daftar kontrol akses (ACL) NFSv4 dan menggunakannya untuk mengontrol akses ke file dan direktori dalam sistem file NFSv4.
Prasyarat
Sistem file NFSv4 telah dimount. Untuk informasi selengkapnya, lihat Mount sistem file NFS pada instans ECS Linux.
NFS ACL diaktifkan untuk sistem file tersebut. Untuk mengaktifkannya, buka halaman detail sistem file di Konsol NAS, klik Access Control di panel navigasi kiri, lalu aktifkan toggle NFS ACL.
Informasi latar belakang
Anda dapat memasang sistem file NFSv4 pada instans Elastic Compute Service (ECS) Linux dan menginstal tool nfs4-acl-tools khusus Linux pada instans tersebut. Setelah tool terinstal, Anda dapat menggunakan tool standar nfs4_getfacl dan nfs4_setfacl untuk mengonfigurasi NFSv4 ACL.
Deskripsi perintah
Sebelum mengonfigurasi NFSv4 ACL, kami menyarankan Anda memahami perintah-perintah berikut. Tabel berikut menjelaskan masing-masing perintah tersebut.
|
Perintah |
Deskripsi |
|
|
Menampilkan ACL yang berlaku untuk file tertentu. |
|
|
Memberikan izin write kepada kelompok. |
|
|
Memberikan izin write kepada pengguna dengan ID 1000. |
|
|
Memberikan izin write kepada kelompok dengan ID 10001. |
|
|
Memodifikasi ACL dalam mode interaktif. |
|
|
Menyimpan daftar izin file tertentu ke dalam file teks. |
|
|
Memulihkan izin ACL dari file teks. |
|
|
Memodifikasi izin ACE yang berlaku untuk file file1. |
|
|
Menyalin ACL dari file file1 ke file file2. |
|
|
Menghapus ACE non-retained dari file file1. |
|
|
Menambahkan ACE yang memberikan izin read dan write pada semua file dan subdirektori dalam direktori dir kepada kelompok dengan ID 10001. |
|
|
Menghapus semua ACE yang mengandung ID 1005 dari seluruh file dalam struktur direktori dir. |
|
|
Menambahkan ACE yang memberikan izin read dan write pada file dan subdirektori baru dalam direktori dir1 kepada kelompok dengan ID 10001. |
|
|
Memberikan izin read dan execute kepada kelompok dengan ID 10001 pada file baru yang dibuat dalam direktori dir1. |
Prosedur
Untuk mengontrol akses ke file dan direktori dengan mengonfigurasi NFSv4 ACL, ikuti langkah-langkah berikut.
-
Buat pengguna dan kelompok.
Pada contoh ini, pengguna berikut dibuat: player, admini, dan anonym. Kelompok berikut dibuat: players dan adminis. Pengguna player ditambahkan ke kelompok players, sedangkan pengguna admini ditambahkan ke kelompok 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 anonym -
Instal tool yang diperlukan untuk mengonfigurasi NFSv4 ACL.
Jika tool ini sudah terinstal, lewati langkah ini.
# CentOS/RHEL/Alibaba Cloud Linux sudo yum -y install nfs4-acl-tools # Ubuntu/Debian sudo apt-get -y install nfs4-acl-tools -
Dapatkan ID kelompok players dan adminis.
Buka file /etc/group. ID kelompok players dan adminis akan ditampilkan.
players:x:19064:player adminis:x:19065:admini -
Konfigurasi NFSv4 ACL untuk mengontrol akses ke file dan direktori.
Jalankan perintah berikut untuk menyelesaikan operasi: Buat direktori bernama dir0. Tambahkan ACE yang memberikan izin read-only pada semua file dalam direktori dir0 kepada kelompok players, memberikan izin read, write, dan execute kepada kelompok adminis, serta tidak memberikan izin kepada pengguna lain.
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@: dir0Setelah konfigurasi selesai, jalankan
sudo nfs4_getfacl dir0untuk melihat hasilnya.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:rwaDxtTnNcCy -
Verifikasi konfigurasi ACL.
-
Verifikasi bahwa pengguna admin memiliki izin read dan write.
sudo su admini -c 'touch dir0/file'sudo su admini -c 'echo 123 > dir0/file' -
Verifikasi bahwa pengguna player memiliki izin read-only.
-
Verifikasi apakah Anda memiliki izin untuk membuat file (misalnya, dengan membuat dir0/file).
-
Jalankan perintah berikut:
sudo su player -c 'touch dir0/file' -
Jika outputnya mirip dengan informasi berikut, pengguna player tidak memiliki izin untuk membuat file:
touch: cannot touch ‘dir0/file’: Permission denied
-
-
Verifikasi apakah Anda memiliki izin write (misalnya, dengan menulis ke dir0/file).
-
Jalankan perintah berikut:
sudo su player -c 'echo 456 >> dir0/file' -
Jika outputnya mirip dengan informasi berikut, pengguna player tidak memiliki izin write:
bash: dir0/file: Permission denied
-
-
Pastikan Anda memiliki izin read.
-
Jalankan perintah berikut:
sudo su player -c 'cat dir0/file' -
Jika outputnya mirip dengan informasi berikut, pengguna player memiliki izin read:
123
Anda juga dapat menjalankan perintah
sudo su player -c 'nfs4_getfacl dir0/file'untuk melihat izin 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 apa pun.
-
Verifikasi bahwa pengguna anonym tidak memiliki izin untuk melihat file dalam direktori dir0.
-
Jalankan perintah berikut:
sudo su anonym -c 'ls dir0' -
Jika pesan berikut dikembalikan, artinya pengguna anonym tidak memiliki izin akses.
ls: cannot open directory dir0: Permission denied
-
-
Verifikasi bahwa Anda tidak dapat melihat konten file tersebut.
-
Jalankan perintah berikut:
sudo su anonym -c 'cat dir0/file' -
Jika outputnya mirip dengan informasi berikut, pengguna anonym tidak memiliki izin untuk mengakses file dalam direktori dir0. NFSv4 mengembalikan error ini ketika izin pencarian direktori (execute) ditolak:
cat: dir0/file: No such file or directory
-
-
Verifikasi bahwa Anda tidak memiliki izin untuk mengakses file 'file'.
-
Jalankan perintah berikut:
sudo su anonym -c 'nfs4_getfacl dir0/file' -
Jika outputnya mirip dengan informasi berikut, pengguna anonym tidak memiliki izin untuk mengakses file tersebut.
Invalid filename: dir0/file
-
-
-
Operasi terkait
Anda dapat menggunakan metode berikut untuk mencabut izin dari pengguna.
Jika Anda ingin menggunakan NFSv4 ACL, kami menyarankan agar setiap pengguna dimasukkan ke dalam kelompok. Hal ini memungkinkan Anda mengonfigurasi izin untuk kelompok pengguna, bukan untuk pengguna individu. Untuk mencabut izin pada objek dari pengguna, Anda dapat menghapus pengguna tersebut dari kelompok yang diberikan izin pada objek tersebut. Misalnya, Anda dapat menjalankan perintah berikut untuk menghapus pengguna admini dari kelompok adminis dan menambahkannya ke kelompok adminis2.
-
Buat kelompok adminis2.
sudo groupadd adminis2 -
Pindahkan pengguna admin dari kelompok admins ke kelompok admins2.
sudo usermod -g adminis2 admini -
Tanyakan izin untuk ID pengguna.
-
Jalankan perintah berikut:
id admini -
Informasi berikut dikembalikan:
uid=1057(admini) gid=1057(admini) groups=1061(adminis2)
-
-
Verifikasi izin pengguna admini.
-
Verifikasi bahwa Anda tidak dapat mengakses direktori dir0.
-
Jalankan perintah berikut:
sudo su admini -c 'ls dir0' -
Jika outputnya mirip 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 konten file dir0/file.
-
Jalankan perintah berikut:
sudo su admini -c 'cat dir0/file' -
Jika outputnya mirip dengan informasi berikut, pengguna admini tidak memiliki izin untuk mengakses file dalam direktori dir0. NFSv4 mengembalikan error ini ketika izin pencarian direktori (execute) ditolak:
cat: dir0/file: No such file or directory
-
-
Verifikasi bahwa pengguna admini tidak memiliki izin untuk mengakses file dir0/file.
-
Jalankan perintah berikut:
sudo su admini -c 'nfs4_getfacl dir0/file' -
Jika outputnya mirip dengan informasi berikut, pengguna admini tidak memiliki izin untuk mengakses file dalam direktori dir0. NFSv4 mengembalikan error ini ketika izin pencarian direktori (execute) ditolak:
Invalid filename: dir0/file
-
-