Langsung ke konten
Linux

Setting ACL di Samba: Cara Pakai setfacl untuk Permission Lebih Detail dari chmod Biasa

September 11, 2026 · 12 menit baca · Walid Umar

Kalau kamu pernah mengelola file server kantor pakai Samba, kamu pasti pernah mengalami momen ini: ada satu folder yang harus bisa diakses tim Finance sebagai read-write, tim Marketing hanya read-only, satu orang manajer butuh akses penuh, tapi semuanya tetap harus dibatasi dari user lain di jaringan. Lalu kamu buka terminal, ketik chmod 750, dan baru sadar: permission Linux standar cuma punya tiga slot — owner, group, dan other. Tidak ada tempat untuk kombinasi akses yang lebih kompleks itu.

Di sinilah banyak sysadmin pemula terjebak. Mereka memaksakan struktur folder yang rumit, membuat banyak grup Linux baru, atau bahkan mengorbankan keamanan demi kepraktisan — misalnya dengan memberi izin 777 supaya semua orang bisa akses tanpa drama. Padahal ada solusi yang jauh lebih elegan dan sudah lama tersedia di dunia Linux: Access Control List (ACL), yang bisa diaktifkan lewat perintah setfacl dan diintegrasikan langsung dengan Samba.

Artikel ini akan membahas tuntas kenapa permission standar Linux sering tidak cukup untuk kebutuhan file sharing kantor, bagaimana cara kerja ACL, cara setup setfacl step-by-step, integrasinya dengan Samba, sampai kesalahan umum yang sering bikin ACL “kelihatan aktif tapi tidak berfungsi”. Cocok buat kamu yang mengelola server Linux, jaringan kantor, atau infrastruktur berbasis Samba dan Windows file sharing.

Kenapa Permission Linux Standar (chmod) Sering Tidak Cukup

Sistem permission Linux klasik menggunakan model UGO (User, Group, Other) dengan tiga jenis akses: read, write, execute. Modelnya sederhana dan sangat efisien untuk kebutuhan dasar, tapi punya keterbatasan struktural yang nyata ketika dihadapkan pada skenario kantor yang realistis.

1. Hanya Ada Satu Owner dan Satu Group

Setiap file di Linux cuma bisa punya satu owner dan satu group. Kalau file itu perlu diakses oleh tiga divisi berbeda dengan level izin berbeda-beda, model UGO langsung kewalahan. Solusi yang biasa dipakai — membuat grup gabungan atau menumpuk user ke satu grup besar — justru menghilangkan granularitas. Semua anggota grup itu akan mendapat hak akses yang sama persis, padahal kebutuhannya berbeda.

2. Tidak Ada Kontrol per Individu di Luar Owner

Bayangkan folder proyek yang dimiliki oleh user budi. Kalau siti butuh akses read-write ke folder itu tapi tidak ingin dijadikan co-owner atau dimasukkan ke grup baru, chmod standar tidak punya jalan keluar tanpa mengubah kepemilikan file secara keseluruhan.

3. Warisan Permission (Inheritance) yang Tidak Fleksibel

Di lingkungan kantor, folder baru dan file baru yang dibuat di dalam sebuah direktori idealnya otomatis mewarisi aturan akses direktori induknya. chmod standar tidak menyediakan mekanisme inheritance semacam ini. Kamu harus menjalankan chmod ulang setiap kali ada file baru — sangat tidak praktis untuk folder yang aktif dipakai puluhan karyawan setiap hari.

4. Konflik saat Sinkron dengan Permission Windows

Samba pada dasarnya menjembatani dua dunia: filesystem Linux (POSIX) dan client Windows yang terbiasa dengan ACL bergaya NTFS — sistem yang jauh lebih granular, mendukung banyak entri izin per file, dan mendukung inheritance otomatis. Kalau Samba hanya mengandalkan permission UGO di sisi Linux, banyak fitur “Properties → Security” di Windows Explorer tidak akan berfungsi sebagaimana mestinya, dan admin akan kesulitan menyamakan ekspektasi user Windows dengan kenyataan di server Linux.

Kombinasi empat masalah ini adalah alasan utama kenapa banyak file share kantor berakhir dengan permission yang “asal jalan” — biasanya terlalu longgar demi menghindari komplain user, yang justru membuka risiko keamanan.

Apa Itu POSIX ACL dan Kenapa Ini Solusinya

Access Control List (ACL) adalah lapisan tambahan di atas permission UGO klasik. Alih-alih dibatasi tiga slot izin, ACL memungkinkan kamu menambahkan entri akses spesifik untuk user atau grup mana pun, sebanyak yang dibutuhkan, pada satu file atau folder yang sama.

Analogikan seperti ini: permission UGO itu seperti kunci rumah dengan tiga anak kunci — satu untuk pemilik, satu untuk keluarga (group), satu untuk tamu umum (other). ACL itu seperti sistem kartu akses digital di kantor modern, di mana admin bisa menambahkan kartu akses baru untuk siapa saja, kapan saja, dengan level akses berbeda-beda, tanpa harus mengganti seluruh sistem kunci.

Di Linux, ACL jenis ini disebut POSIX ACL, dan alat utamanya adalah dua perintah:

  • getfacl — untuk melihat daftar ACL yang sedang aktif di sebuah file atau direktori
  • setfacl — untuk menambah, mengubah, atau menghapus entri ACL

Persiapan: Memastikan Filesystem Mendukung ACL

Sebelum mulai, pastikan tiga hal berikut sudah terpenuhi.

Filesystem harus mendukung ACL. Mayoritas filesystem modern seperti ext4, XFS, dan Btrfs sudah mendukung ACL secara default di kernel Linux terbaru. Namun pada beberapa distribusi lama atau konfigurasi khusus, dukungan ini masih perlu diaktifkan lewat opsi mount acl di /etc/fstab, contohnya:

/dev/sdb1  /srv/samba/data  ext4  defaults,acl  0  2

Paket acl harus terpasang. Di distribusi berbasis Debian/Ubuntu:

sudo apt install acl

Di distribusi berbasis RHEL/CentOS/Fedora:

sudo dnf install acl

Cek dukungan ACL sudah aktif dengan menjalankan:

tune2fs -l /dev/sdb1 | grep "Default mount options"

Kalau hasilnya sudah mencantumkan acl, artinya sistem siap digunakan.

Cara Pakai setfacl: Tutorial Step-by-Step

Langkah 1: Cek ACL yang Sedang Berlaku

Gunakan getfacl untuk melihat kondisi izin saat ini sebelum diubah.

getfacl /srv/samba/data/finance

Perintah ini akan menampilkan owner, group, dan entri ACL yang sudah ada (jika ada), sebagai baseline sebelum kamu melakukan perubahan.

Langkah 2: Memberi Izin ke User Tertentu

Misalnya kamu ingin memberi user siti akses read-write ke folder finance tanpa menjadikannya owner atau anggota grup:

sudo setfacl -m u:siti:rwx /srv/samba/data/finance

Penjelasan singkat: -m berarti modify (menambahkan entri), u:siti:rwx berarti user bernama siti diberi izin read, write, execute.

Langkah 3: Memberi Izin ke Grup Tertentu

Untuk grup, formatnya mirip, hanya menukar u: dengan g::

sudo setfacl -m g:marketing:r-x /srv/samba/data/finance

Tim marketing di sini hanya diberi izin baca dan eksekusi (masuk direktori), tanpa hak menulis.

Langkah 4: Mengatur Default ACL untuk Inheritance

Ini bagian yang paling sering diabaikan padahal paling penting untuk folder kantor. ACL biasa (-m) hanya berlaku untuk file yang sudah ada. Supaya file dan subfolder baru otomatis mewarisi aturan yang sama, gunakan default ACL dengan menambahkan d: di depan entri:

sudo setfacl -m d:u:siti:rwx /srv/samba/data/finance
sudo setfacl -m d:g:marketing:r-x /srv/samba/data/finance

Setelah ini, setiap file atau folder baru yang dibuat di dalam finance otomatis mendapat ACL yang sama, tanpa perlu diatur ulang manual setiap saat.

Langkah 5: Verifikasi Hasil

getfacl /srv/samba/data/finance

Kamu akan melihat baris tambahan seperti:

user:siti:rwx
group:marketing:r-x
default:user:siti:rwx
default:group:marketing:r-x

Langkah 6: Menghapus Entri ACL

Kalau suatu saat akses perlu dicabut:

sudo setfacl -x u:siti /srv/samba/data/finance

Atau untuk membersihkan seluruh ACL tambahan dan kembali ke permission UGO standar:

sudo setfacl -b /srv/samba/data/finance

Langkah 7: Menerapkan ke Seluruh Isi Folder (Rekursif)

Untuk folder yang sudah berisi banyak file lama, tambahkan flag -R:

sudo setfacl -R -m g:marketing:r-x /srv/samba/data/finance

Integrasi ACL dengan Samba

Mengaktifkan ACL di level Linux saja belum cukup kalau folder tersebut diakses lewat Samba, karena Samba punya lapisan translasi sendiri antara permission POSIX dan ACL gaya Windows (NTFS-style). Berikut konfigurasi dasar di smb.conf supaya ACL benar-benar diteruskan dengan baik ke client Windows.

[global]
   vfs objects = acl_xattr
   map acl inherit = yes
   store dos attributes = yes

[finance]

path = /srv/samba/data/finance valid users = @finance, siti read only = no

Penjelasan tiap parameter:

  • vfs objects = acl_xattr mengaktifkan modul VFS yang memetakan ACL gaya Windows (NT ACL) ke extended attribute di filesystem Linux, sehingga permission yang diatur lewat tab Security di Windows Explorer benar-benar tersimpan dan konsisten.
  • map acl inherit = yes memastikan aturan inheritance ACL diteruskan dengan benar ke file dan folder baru, sejalan dengan default ACL yang sudah kamu atur lewat setfacl -m d:....
  • store dos attributes = yes diperlukan pada Samba versi lama (di bawah 4.9) supaya atribut file gaya DOS/Windows (hidden, read-only, archive) tersimpan konsisten.

Setelah mengubah smb.conf, restart service Samba dan validasi konfigurasi:

sudo testparm
sudo systemctl restart smbd

testparm penting dijalankan lebih dulu karena akan memberi tahu kalau ada typo atau parameter yang salah sebelum kamu merestart service dan berpotensi memutus akses user yang sedang aktif.

Studi Kasus Sederhana

Skenario: kantor punya folder bersama /srv/samba/data/proyek-2026 yang perlu diakses tiga pihak berbeda.

  • Tim Development (grup dev): read-write penuh
  • Tim QA (grup qa): read-only
  • Manajer proyek (user andi): read-write penuh plus hak menghapus file siapa pun (butuh sticky bit tambahan)

Langkah implementasinya:

sudo setfacl -R -m g:dev:rwx /srv/samba/data/proyek-2026
sudo setfacl -R -m g:qa:r-x /srv/samba/data/proyek-2026
sudo setfacl -R -m u:andi:rwx /srv/samba/data/proyek-2026

sudo setfacl -m d:g:dev:rwx /srv/samba/data/proyek-2026
sudo setfacl -m d:g:qa:r-x /srv/samba/data/proyek-2026
sudo setfacl -m d:u:andi:rwx /srv/samba/data/proyek-2026

sudo chmod g+s /srv/samba/data/proyek-2026

Baris chmod g+s (setgid) ditambahkan supaya file baru yang dibuat di dalam folder otomatis mewarisi grup folder induknya, melengkapi mekanisme default ACL yang sudah diatur lewat setfacl.

Kesalahan yang Sering Terjadi

1. Lupa Mengatur Default ACL

Penyebab: hanya menjalankan setfacl -m tanpa d: di depannya. Dampak: file lama sudah punya ACL yang benar, tapi file baru yang dibuat setelahnya kembali ke permission default folder induk, sehingga user yang seharusnya punya akses jadi tidak bisa membuka file baru. Cara mengatasi: selalu pasangkan -m dengan -m d: untuk setiap entri, terutama di folder yang aktif dipakai untuk kolaborasi.

2. Filesystem Tidak Mount dengan Opsi ACL

Penyebab: partisi tidak di-mount dengan opsi acl, atau lupa update /etc/fstab setelah server reboot. Dampak: perintah setfacl akan gagal dengan pesan error Operation not supported. Cara mengatasi: cek ulang opsi mount dengan mount | grep nama_partisi, tambahkan acl di /etc/fstab, lalu remount tanpa perlu reboot penuh:

sudo mount -o remount /srv/samba/data

3. Konflik antara ACL Linux dan Permission Samba di smb.conf

Penyebab: parameter seperti force create mode, create mask, atau directory mask di smb.conf menimpa ACL yang sudah diatur lewat setfacl. Dampak: ACL terlihat benar lewat getfacl, tapi akses lewat Windows Explorer tetap tidak sesuai harapan. Cara mengatasi: kalau sudah mengandalkan ACL sepenuhnya, sebaiknya hapus atau netralkan parameter mask/mode manual di smb.conf, karena vfs objects = acl_xattr dan map acl inherit = yes sudah cukup mengatur inheritance-nya.

4. Salah Urutan Prioritas ACL (Mask Terlalu Ketat)

Penyebab: entri mask:: pada ACL secara otomatis membatasi izin efektif maksimum untuk semua entri named user/group, meskipun entri individualnya mengizinkan akses lebih luas. Dampak: user merasa sudah diberi akses rwx tapi tetap tidak bisa menulis file. Cara mengatasi: selalu cek baris mask:: di output getfacl, dan sesuaikan dengan setfacl -m m::rwx jika diperlukan.

5. Tidak Melakukan Rekursif pada Folder Lama

Penyebab: menjalankan setfacl tanpa -R pada folder yang sudah berisi ratusan file lama. Dampak: hanya folder induk yang berubah, file dan subfolder di dalamnya tetap memakai permission lama. Cara mengatasi: selalu tambahkan -R saat menerapkan ACL ke struktur folder yang sudah eksis, dan gunakan default ACL untuk file-file yang akan dibuat setelahnya.

Tips dan Rekomendasi Best Practice

  • Gunakan ACL berbasis grup, bukan user individual, sebanyak mungkin. Ini memudahkan maintenance ketika ada karyawan baru atau resign — cukup ubah keanggotaan grup, tidak perlu mengubah ACL di setiap file.
  • Selalu pasangkan setiap perubahan ACL biasa dengan default ACL (d:) di level folder, bukan file individual, supaya inheritance berjalan otomatis.
  • Audit ACL secara berkala dengan getfacl -R pada folder-folder sensitif, terutama folder finance, HR, atau data pelanggan.
  • Dokumentasikan setiap perubahan ACL penting di catatan internal tim IT, karena getfacl tidak menyimpan riwayat siapa yang mengubah izin dan kapan.
  • Hindari kombinasi ACL manual dan parameter mask Samba yang terlalu banyak dalam satu share — pilih salah satu pendekatan agar mudah di-debug.
  • Selalu jalankan testparm setelah mengubah smb.conf, sebelum restart service, untuk menghindari downtime akibat typo konfigurasi.

Kesimpulan

Permission Linux standar (chmod) memang cukup untuk kebutuhan dasar, tapi begitu masuk ke skenario kantor yang melibatkan banyak divisi, kebutuhan akses granular, dan integrasi dengan client Windows lewat Samba, keterbatasannya jadi jelas terasa. ACL lewat setfacl mengisi celah ini dengan memungkinkan kontrol akses per user dan per grup secara detail, lengkap dengan mekanisme inheritance otomatis untuk file dan folder baru.

Poin penting yang perlu diingat:

  • ACL adalah lapisan tambahan di atas permission UGO klasik, bukan pengganti.
  • setfacl -m mengatur ACL untuk file yang sudah ada; setfacl -m d: mengatur default ACL untuk file baru.
  • Integrasi dengan Samba memerlukan konfigurasi tambahan di smb.conf, terutama vfs objects = acl_xattr dan map acl inherit = yes.
  • Selalu verifikasi hasil dengan getfacl dan testparm sebelum menganggap konfigurasi selesai.

Dengan pemahaman dan implementasi yang tepat, file sharing kantor jadi lebih rapi, lebih aman, dan jauh lebih mudah dikelola dalam jangka panjang.

Kalau kamu punya pengalaman atau kendala lain seputar setting ACL di Samba, tulis di kolom komentar ya!

Diskusi seperti ini sering membantu sysadmin lain yang mengalami masalah serupa. Jangan lupa bagikan artikel ini ke rekan tim IT kamu, dan jelajahi juga artikel-artikel lain seputar Linux, networking, dan cybersecurity di blog ini untuk memperdalam skill infrastruktur kamu.

Frequently Asked Questions (FAQ)

Pertanyaan: Apa perbedaan utama antara chmod dan setfacl? Jawaban: chmod hanya mendukung tiga kategori izin (owner, group, other), sedangkan setfacl memungkinkan penambahan izin spesifik untuk banyak user dan grup sekaligus pada file yang sama.

Pertanyaan: Apakah ACL bisa dipakai tanpa Samba? Jawaban: Bisa. ACL adalah fitur filesystem Linux yang berdiri sendiri dan bermanfaat untuk kontrol akses lokal, terlepas dari apakah server digunakan untuk file sharing lewat Samba atau tidak.

Pertanyaan: Kenapa perintah setfacl gagal dengan pesan “Operation not supported”? Jawaban: Biasanya karena partisi belum di-mount dengan opsi acl. Tambahkan opsi tersebut di /etc/fstab, lalu remount partisi terkait.

Pertanyaan: Apakah ACL memperlambat performa filesystem? Jawaban: Dampaknya sangat kecil pada penggunaan normal kantor. ACL menambah sedikit overhead saat pengecekan izin, tapi tidak signifikan dibanding manfaat kontrol akses yang didapat.

Pertanyaan: Bagaimana cara memastikan ACL sudah diteruskan dengan benar ke client Windows lewat Samba? Jawaban: Pastikan vfs objects = acl_xattr dan map acl inherit = yes sudah aktif di smb.conf, lalu cek tab Security di Windows Explorer untuk memverifikasi entri izin muncul sesuai konfigurasi ACL di server.

Punya pertanyaan soal setting ACL di server Samba kamu? Tulis di kolom komentar, yuk diskusi bareng!

Bagikan artikel ini kalau menurutmu bermanfaat buat rekan sysadmin lain, dan terus ikuti blog ini untuk update artikel seputar Linux, networking, dan cybersecurity berikutnya.

Dukung kami dengan Subscribe & Join Membership channel YouTube | Walid Umar

Akses video pembelajaran eksklusif, materi persiapan UKK (Uji Kompetensi Siswa) dan Penyelesaian Soal LKS ITNSA

Tinggalkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Protected By
Shield Security