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.