Belajar Samba - Filesystem: Permission ACL & Quota
Episode 11 of 23

Belajar Samba - Filesystem: Permission ACL & Quota

Episode ini membahas kontrol akses presisi Windows di Linux: nt acl support, POSIX ACL dengan modul acl_xattr untuk menyimpan permission NTFS di extended attributes, serta quota per-user dan per-group melalui modul VFS quota. Kalian memahami bagaimana permission Windows diterjemahkan menjadi setfacl dan sebaliknya.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Pendahuluan

Sampai episode 10, kontrol akses kalian masih "kasar": valid users, group, dan bit permission sederhana. Di dunia Windows, admin terbiasa membuka Properties → Security dan mengatur ACL (Access Control List) per-user per-folder — izinkan si A membaca, larang si B menghapus, dan seterusnya. Di episode 11 kita mewujudkan presisi itu di atas Linux: POSIX ACL + xattr, dan menutup dengan quota per-user/group. Hasilnya: klien Windows mengedit permission di share Samba sama seperti di fileshare Windows.

Konsep: ACL Windows vs POSIX

Dua Dunia ACL

Windows NTFS menyimpan ACL dengan granularity tinggi: read, write, execute, delete, change permissions, take ownership, dan kombinasi Allow/Deny. POSIX ACL Linux memiliki tiga entitas (owner, group, other) plus extended entries — hingga 32 user/group tambahan. Keduanya tidak identik, dan Samba harus menerjemahkan. Di sinilah dua konsep bekerja:

  • nt acl support = yes (default): Samba menerima dan menerapkan perubahan ACL yang dilakukan klien Windows melalui protocol SMB.
  • Modul VFS acl_xattr: menyimpan ACL gaya NTFS secara penuh di extended attributes (system.ntfs_acl), bukan hanya menerjemahkan sebagian. Ini yang membuat permission Windows bertahan bulat.

Konfigurasi ACL

Mengaktifkan acl_xattr

/etc/samba/smb.conf — share dengan ACL NTFS
[data]
   path = /srv/data
   nt acl support = yes
   vfs objects = acl_xattr
   inherit permissions = yes
  • nt acl support = yes: izinkan klien Windows membaca/mengubah ACL via SMB.
  • vfs objects = acl_xattr: simpan ACL NTFS penuh di xattr, tanpa kehilangan informasi saat diterjemahkan bolak-balik.
  • inherit permissions = yes: folder/file baru mewarisi permission induk — mencegah file baru "keluar jalur" dari kebijakan folder.

Prasyarat Filesystem

acl_xattr butuh filesystem yang mendukung POSIX ACL dan xattr — ext4, XFS, Btrfs memenuhi (centang acl dan user_xattr di mount option bila perlu). Verifikasi dukungan:

Cek dukungan ACL di mount
tune2fs -l /dev/sda1 | grep -i "default mount"
mount | grep /srv

Untuk share, matikan opsi yang mengganggu ACL: jangan pakai force user pada share ACL (menimpa identitas yang sedang di-ACL-kan), dan biarkan force group jika benar-benar diperlukan saja.

Important

force user dan ACL NTFS adalah kombinasi bermasalah: ACL menyimpan kepemilikan per-identity, sedangkan force user mengesampingkan identitas penulis. Pada share dengan acl_xattr, hindari force user — biarkan identitas asli mengalir sehingga ACL bekerja sesuai harapan. Jika terpaksa, putar ke force user hanya pada share tanpa ACL granular.

Mengedit ACL dari Sisi Linux

Admin Linux juga bisa mengatur ACL langsung dengan setfacl/getfacl — Samba akan membaca hasilnya:

Berikan akses tambahan via setfacl
sudo setfacl -m u:budi:rwx /srv/data
sudo getfacl /srv/data

setfacl -m u:budi:rwx menambah entri ACL user budi. Dari sisi Windows, folder tersebut sekarang menampilkan budi di tab Security dengan permission yang sesuai — bukti dua dunia bertemu.

Quota Per-User dan Per-Group

Konsep Quota Filesystem

Quota membatasi pemakaian disk: user tidak bisa mengisi share hingga disk penuh dan mengganggu semua orang. Quota dikelola filesystem (bukan Samba) — Samba hanya meneruskan query dan enforcement lewat modul VFS quota.

Menyalakan Quota di Filesystem

Untuk XFS:

Aktifkan quota XFS
sudo mount -o remount,pquota /srv
sudo xfs_quota -x -c 'limit bsoft=90g bhard=100g budi' /srv

Untuk ext4:

Aktifkan quota ext4
sudo tune2fs -O quota /dev/sda1
sudo setquota -u budi 90G 100G 0 0 /srv

setquota -u budi 90G 100G menetapkan soft limit 90 GB dan hard limit 100 GB untuk user budi. Analog untuk group: -g.

Menghubungkan Samba ke Quota

/etc/samba/smb.conf — share dengan quota
[data]
   path = /srv/data
   vfs objects = quota acl_xattr

Dengan vfs objects = quota, klien Windows yang membuka Properties → Quota (atau melihat info volume) akan mendapat data quota nyata, dan penulisan yang melampaui hard limit ditolak filesystem — user tidak bisa menambah satu byte pun melewati batas.

Tip

Nilai apa yang wajar? Ukur dulu, bukan tebak. du -sh /srv/data/* | sort -h memberi gambaran pemakaian riil per folder; tetapkan soft limit sedikit di atas rata-rata dan hard limit sebagai pengaman. Soft limit yang tertutup (bisa dilampaui sementara) memberi ruang kerja, hard limit yang kaku melindungi disk dari satu user yang kalap.

Pitfall Umum

  • Permission Windows tidak bertahan setelah reboot: filesystem tidak me-mount dengan opsi acl/user_xattr — periksa /etc/fstab.
  • getfacl di sisi Windows menampilkan nama aneh: winbind belum terpasang/aktif (episode 10) — Samba butuh resolusi SID → nama.
  • Quota tidak aktif meski setquota berhasil: pastikan filesystem di-mount dengan opsi quota (pquota/usrquota) — Samba hanya meneruskan, enforcement tetap di filesystem.
  • xattr tidak tersimpan: filesystem tidak mendukung (misal tmpfs/VFAT) — gunakan ext4/XFS/Btrfs untuk share ACL.

Penutup

Inti yang harus dibawa pulang:

  • nt acl support = yes membuat Samba menghormati perubahan ACL dari klien Windows.
  • vfs objects = acl_xattr menyimpan ACL NTFS penuh di extended attributes.
  • inherit permissions = yes memastikan file baru mewarisi kebijakan folder.
  • Quota adalah tanggung jawab filesystem; Samba meneruskannya via modul VFS quota.
  • Hindari force user pada share dengan ACL granular.

Di episode 12 selanjutnya kita akan membahas recycle bin & shadow copies — modul VFS recycle sebagai trash bin pelindung hapus, snapshot filesystem (Btrfs/LVM) dengan shadow_copy2, dan fitur "Previous Versions" di Windows. Kalian akan melindungi data dari kesalahan manusia dan menghapus panik!

Belajar Samba - Filesystem: Permission ACL & Quota | Belajar Samba