OS and Apps, Wire and Wireless Network

Membuat access control list di Linux

ACL untuk sebuah berkas atau direktori bisa diganti dengan program setfacl. Sayangnya, penggunaan program ini sangat bergantung dari sistem yang digunakan. Untuk menambah kebingungan, paling tidak satu parameter (-d) memiliki arti yang berbeda pada sistem yang berbeda. Anda bisa berharap bahwa perintah ini akan mendapatkan standarisasi.

Operasi

Linux

Menentukan isi, menghapus semua isi lama –set
Memodifikasi isi -m
Memodifikasi isi ACL default -d
Menghapus isi -x
Menghapus semua isi ACL (kecuali tiga isi yang diperlukan). -b
Menghitung ulang mask Selalu dikalkulasi ulang, kecuali -n digunakan, atau isi mask ditentukan secara eksplisit.
Menggunakan spesifikasi ACL dari sebuah berkas -M (memodifikasi), -X (menghapus), atau –restore
Modifikasi rekursif ACL -R

Seperti yang sudah kita lihat pada bagian sebelumnya, isi bisa ditentukan untuk pengguna dan grup, dengan mengikuti sintaks: user/group:name:permissions. Hak akses bisa ditentukan sebagai triplet dengan menggunakan huruf r (read), w (write), atau x (execute). Karakter minus () digunakan untuk hak akses yang tidak ingin diberikan kepada pengguna atau grup, karena Solaris membutuhkan hal ini. Jika Anda menginginkan agar tidak ada hak akses sepenuhnya, Anda bisa menggunakan .

Spesifikasi untuk pengguna lain, dan mask mengikuti format berikut: other:r-x. Format yang lebih mudah ditebak juga bisa digunakan: other::r-x.

Memodifikasi isi ACL

Operasi paing sederhana adalah untuk memodifikasi sebuah isi ACL. Hal ini akan membuat sebuah isi baru jika isi belum ada sebelumnya. Isi bisa dimodifikasi dengan -m. Sebagai contoh, misalkan kita hendak memberikan grup friend akses baca dan tulis pada berkas report.txt. Hal ini bisa dilakukan dengan:

$ setfacl -m group:friends:rw- report.txt

Mask dari isian akan dikalkulasi ulang, melakukan setting menjadi gabungan dari semua isi grup, dan isi pengguna tambahan:

$ getfacl report.txt

# file: report.txt

# owner: daniel

# group: daniel

user::rw-

group::r–

group:friends:rw-

mask::rw-

other::r–

Anda bisa mengkombinasikan banyak isi ACL dengan memisahkannya dengan karakter koma. Sebagai contoh:

$ setfacl -m group:friends:rw-,group:foes:— report.txt

8.5.4.2.2. Menghapus Isi ACL

Sebuah isi dapat dihapus dengan opsi -x:

$ setfacl -x group:friends: report.txt

Karakter titik dua di akhir bisa diabaikan.

Membuat ACL Baru

Opsi –set digunakan untuk membuat sebuah ACL baru untuk sebuah berkas, menghapus isi ACL yang ada, kecuali isi yang benar-benar diperlukan. Isi untuk file pengguna, grup, dan lainnya juga ditentukan. Sebagai contoh:

$ setfacl –set user::rw-,group::r–,other:—,group:friends:rwx report.txt

Jika Anda tidak ingin membersihkan hak akses pengguna, grup, dan lainnya, tetapi Anda hendak menghapus isi ACL lain, Anda bisa menggunakan opsi -b. Contoh berikut menggunakanna dengan kombinasi dari opsi -m untuk menghapus semua isi ACL (kecuali untuk pengguna, grup, dan lainnya), dan menambahkan sebuah isi baru untuk grup friends:

$ setfacl -b -m group:friends:rw- report.txt

Mensetting ACL default

direktori bisa memiliki isi ACL default yang menentukan hak akses apa yang harus digunakan untuk berkas dan direktori yang dibuat pada direktori tersebut. Opsi -d digunakan untuk beroperasi pada isi default:

$ setfacl -d -m group:friends:rwx reports

$ getfacl reports

# file: reports

# owner: daniel

# group: daniel

user::rwx

group::r-x

other::r-x

default:user::rwx

default:group::r-x

default:group:friends:rwx

default:mask::rwx

default:other::r-x

Menggunakan ACL dari berkas referensi

Anda juga bisa menggunakan spesifikasi ACL dari berkas, dan bukan menentukannya dari perintah baris. Sebuah berkas masukan mengikuti sintaks yang sama dengan parameter pada setfacl, tetapi dipisahkan dengan baris baru dan bukan dengan koma. Hal ini berguna karena Anda bisa menggunakan ACL untuk berkas yang ada sebagai referensi:

$ getfacl report.txt > ref

Opsi -M disediakan untuk memodifikasi ACL untuk sebuah berkas dengan membaca isi dari berkas lain. Jadi, jika kita memiliki berkas bernama report2.txt, kita bisa memodifikasi ACL untuk berkas ini dengan isi dari ref dengan:

$ setfacl -M ref report2.txt

Jika Anda hendak memulai dengan ACL yang bersih, dan menambahkan isi dari ref, Anda bisa menambahkan tanda -b yang kita bahas sebelumnya:

$ setfacl -b -M ref report2.txt

Tentu saja, tidak diharuskan untuk menggunakan berkas ini. Kita bisa melakukan pipe dari getfacl ke setfacl, dengan menggunakan nama simbol dari masukan standar (), dan bukan menggunakan nama berkas:

$ getfacl report.txt | setfacl -b -M – report2.txt

Opsi -X menghapus isi ACL yang didefinisikan pada berkas. Hal ini menggunakan sintaks yang sama dengan -x, dengan koma digantikan dengan baris baru.