TDCTF Academy Logo TDCTF ACADEMY

ACL (Access Control Lists)

Konsep Dasar

Standard UNIX permission (rwx untuk owner/group/others) memiliki keterbatasan: tidak bisa memberikan izin berbeda kepada lebih dari satu user atau lebih dari satu group pada file yang sama.

Access Control List (ACL) mengatasi keterbatasan ini dengan memungkinkan penetapan izin untuk user dan group tertentu secara individual.

Tools ACL

getfacl file.txt # Lihat ACL file
setfacl -m u:alice:rx file.txt # Tambah ACL: user alice mendapat r-x
setfacl -m g:devs:rw file.txt # Tambah ACL: group devs mendapat rw-
setfacl -x u:alice file.txt # Hapus ACL untuk user alice

Output getfacl:

# file: file.txt
# owner: root
# group: root
user::rw-
user:alice:r-x
group::r--
group:devs:rw-
mask::rwx
other::---

Mask

Mask adalah batas maksimum izin yang bisa diberikan oleh ACL entries selain owner dan others. Jika mask adalah rw-, maka user alice dengan entry r-x secara efektif hanya mendapat r-- (karena x terpotong mask).

setfacl -m m::rx file.txt # Set mask menjadi r-x

Mask otomatis disesuaikan saat ACL diubah. Jika mask terlalu restriktif, ACL entries kehilangan izin yang seharusnya dimiliki.

Default ACL

Default ACL berlaku untuk direktori - file dan subdirektori yang baru dibuat akan mewarisi ACL tersebut.

setfacl -d -m u:alice:rwx /shared/project # Default ACL untuk file baru
setfacl -d -m g:devs:rx /shared/project

Cek default ACL:

getfacl /shared/project
# output: default:user:alice:rwx
# default:group:devs:r-x

Tanpa default ACL, file baru hanya mendapat izin standar umask.

ACL vs Unix Permission

Aspek Unix Permission ACL
Skalabilitas 3 entitas (u,g,o) Multi-user, multi-group
Izin spesifik Tidak bisa Bisa per user/group
Kompleksitas Sederhana Lebih kompleks
Performa Sangat cepat Overhead sedikit lebih besar
Tool chmod, chown setfacl, getfacl

ACL tidak menggantikan Unix permission - ACL adalah lapisan tambahan di atasnya. Unix permission tetap berlaku sebagai basis.

Backup dan Restore ACL

Backup ACL dari seluruh direktori:

getfacl -R /shared/project > acl-backup.txt

Restore:

setfacl --restore=acl-backup.txt

Atau untuk satu file:

getfacl file.txt > file.acl
setfacl --set-file=file.acl file.txt

Backup ACL penting saat migrasi data atau recovery disaster - tanpa backup, izin ACL hilang dan harus dikonfigurasi ulang manual.

Kasus Penggunaan

Shared Directory Multi-User

Direktori proyek dengan tiga tim: developer, designer, dan auditor.

mkdir -p /shared/project

# Izin dasar: owner root, group proyek
chown root:project /shared/project
chmod 2770 /shared/project # SGID + owner/group full, others none

# ACL spesifik
setfacl -m u:alice:rwx /shared/project # Developer lead
setfacl -m u:bob:rx /shared/project # Auditor (read-only)
setfacl -m g:design:rwx /shared/project # Tim design full access
setfacl -d -m u:alice:rwx /shared/project # Default ACL
setfacl -d -m g:design:rwx /shared/project

Web Server Multi-Site

Memberi akses terbatas ke konten web tanpa menambahkan user ke group www-data:

setfacl -m u:deployer:rwx /var/www/site1
setfacl -d -m u:deployer:rwx /var/www/site1

Verifikasi dan Troubleshooting

getfacl /shared/project | grep -E "^user:|^group:|^mask:"
# Cek efektifitas izin
getfacl -e file.txt # Tampilkan effective rights (terapkan mask)

ACL adalah fitur powerful yang wajib dipahami administrator Linux yang mengelola lingkungan multi-user. Gunakan secara bijak - terlalu banyak ACL entries menurunkan performa dan menyulitkan audit.

PADA HALAMAN INI