Belajar Samba - Print Sharing
Episode 7 of 23

Belajar Samba - Print Sharing

Episode ini mengajarkan cara membagikan printer Linux ke jaringan Windows: bagian [printers] di smb.conf, backend CUPS, dan instalasi driver printer dari sisi Windows. Kalian juga memverifikasi seluruh alur dengan smbclient -L localhost dan melakukan test print nyata dari klien baris perintah.

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

Pendahuluan

Selama ini kita fokus pada file. Padahal Samba sejak awal dirancang untuk dua pekerjaan: file dan print sharing. Di episode 7 kita membagikan printer yang terpasang di Linux (dikelola CUPS) ke pengguna Windows — sehingga printer jaringan "berbayar lisensi print server Windows" bisa digantikan. Konsep yang sama dengan share file: Samba menjembatani protokol print Windows ke backend CUPS Linux.

Konsep: Samba Sebagai Print Server

Mengapa [printers]

Samba memiliki bagian khusus [printers] yang secara otomatis mempublikasikan semua printer CUPS sebagai share. Nama printer Windows akan sama dengan nama queue CUPS. Tidak perlu satu bagian per printer — Samba "bertanya" ke CUPS printer apa saja yang tersedia. Inilah yang membuat Samba print server sangat mudah dikelola: tambah printer di CUPS, langsung muncul di Windows.

Prasyarat: CUPS Aktif

Samba butuh CUPS sebagai backend — Samba tidak berkomunikasi langsung dengan printer, melainkan meneruskan job ke CUPS:

Install dan aktifkan CUPS
sudo apt install -y cups
sudo systemctl enable --now cups

Pastikan ada minimal satu printer aktif di CUPS (misal via web admin http://localhost:631 atau lpadmin). Tanpa printer, bagian [printers] tidak akan mempublikasikan apa pun.

Konfigurasi Print Sharing

Bagian [global] dan [printers]

/etc/samba/smb.conf — konfigurasi print
[global]
   printing = cups
   printcap name = cups
   load printers = yes
 
[printers]
   comment = All Printers
   path = /var/spool/samba
   browseable = no
   printable = yes
   guest ok = no
   writable = no

Bedah baris penting:

  • printing = cups dan printcap name = cups: Samba memakai CUPS sebagai backend print.
  • load printers = yes: publikasikan otomatis semua printer CUPS.
  • printable = yes: tandai bagian sebagai print queue — bukan share file biasa.
  • browseable = no: daftar share printer muncul sebagai printers, bukan folder biasa.
  • writable = no: print queue tidak menerima operasi file tulis.

Siapkan direktori spool yang dibutuhkan:

Buat spool direktori
sudo mkdir -p /var/spool/samba
sudo chown root:root /var/spool/samba

Validasi dan Reload

Validasi dan reload
testparm -s | grep -A8 "\[printers\]"
sudo smbcontrol all reload-config

Jika printing = cups salah dikonfigurasi, Samba gagal membaca daftar printer — testparm akan menunjuk ke baris yang bermasalah.

Driver Printer untuk Windows

Instalasi dari Sisi Windows

Di klien Windows, tambahkan printer jaringan:

  1. Settings → Printers & scanners → Add a printer or scanner.
  2. Pilih The printer that I want isn't listed.
  3. Pilih Select a shared printer by name dan ketik \\fileserver\<nama_printer>.
  4. Instal driver printer saat diminta (Windows punya driver bawaan untuk merek umum, atau unduh dari vendor).

Samba meneruskan job ke CUPS, dan CUPS-lah yang berbicara dengan printer via driver PPD. Dari perspektif Windows, ini terlihat seperti print server Microsoft.

Tip

Untuk pengalaman terbaik, pastikan nama queue CUPS pendek dan bebas spasi — misal hp-laserjet-4200, bukan HP LaserJet 4200 (Kantor). Nama dengan spasi dan tanda kurung sering memicu masalah saat driver Windows mengekspornya ke UNC path. Aturan ini sama untuk nama share file: sederhana lebih andal.

Verifikasi Print Sharing

Daftar Printer di Samba

Dari sisi server, pastikan printer benar-benar terpublikasi:

List printer Samba
smbclient -L localhost -U arman

Di output kalian harus melihat printer CUPS di bawah daftar share, dengan format Disk untuk share file dan Printer untuk printer. Jika printer tidak muncul, cek log smbd dan status CUPS:

Cek status CUPS
sudo systemctl status cups --no-pager
lpstat -p

Test Print

Cara paling meyakinkan: kirim job dari klien baris perintah Linux ke printer Windows-visible, lalu cek status di CUPS:

Cetak file test via smbclient
smbclient //localhost/hp-laserjet-4200 -U arman \
  -c "print /etc/hostname; queue"

print /etc/hostname mengirim file ke queue; queue menampilkan antrean. Jika job masuk dengan status waiting/printing, alur Samba→CUPS berfungsi. Dari sisi Windows, net use LPT1: \\fileserver\hp-laserjet-4200 juga memetakan printer sebagai LPT1 untuk aplikasi lawas.

Warning

Samba tidak membagikan driver — setiap klien Windows harus menginstall drivernya sendiri. Fitur "install driver dari print server" (rpcclient/ntadmin style) bukan fokus Samba klasik dan sering merepotkan. Praktik paling bersih: distribusikan driver via GPO bila memakai AD, atau cukup minta user menginstall driver resmi vendor.

Pitfall Umum

  • Printer tidak muncul di smbclient -L: pastikan printing = cups dan ada printer aktif di lpstat -p.
  • Job "stuck" di Windows: cek log CUPS (/var/log/cups/error_log), sering driver PPD yang tidak cocok.
  • guest ok = no dan Windows lawas: klien Windows lama kadang tidak mengirim credentials ke print queue — gunakan user yang valid.
  • Nama printer dengan spasi: rename queue CUPS ke nama sederhana.

Penutup

Inti yang harus dibawa pulang:

  • [printers] + printing = cups mempublikasikan semua queue CUPS sebagai share printer.
  • Driver diinstall dari sisi klien Windows; Samba hanya meneruskan job ke CUPS.
  • smbclient -L localhost memverifikasi publikasi printer; smbclient ... -c "print file; queue" menguji print nyata.
  • Nama queue CUPS sederhana (tanpa spasi) mencegah masalah UNC.
  • writable = no + printable = yes menjadikan bagian sebagai print queue murni.

Di episode 8 selanjutnya kita akan membahas SMB3: performance & enkripsi — enkripsi SMB3, oplocks, server signing, server min protocol = SMB3, serta tuning strict locking, socket options, dan transfer file besar. Ini episode pertama yang mengangkat Samba dari "berfungsi" menjadi "kencang dan aman".