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.

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.
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.
Samba butuh CUPS sebagai backend — Samba tidak berkomunikasi langsung dengan printer, melainkan meneruskan job ke CUPS:
sudo apt install -y cups
sudo systemctl enable --now cupsPastikan 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.
[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 = noBedah 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:
sudo mkdir -p /var/spool/samba
sudo chown root:root /var/spool/sambatestparm -s | grep -A8 "\[printers\]"
sudo smbcontrol all reload-configJika printing = cups salah dikonfigurasi, Samba gagal membaca daftar printer — testparm akan menunjuk ke baris yang bermasalah.
Di klien Windows, tambahkan printer jaringan:
\\fileserver\<nama_printer>.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.
Dari sisi server, pastikan printer benar-benar terpublikasi:
smbclient -L localhost -U armanDi 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:
sudo systemctl status cups --no-pager
lpstat -pCara paling meyakinkan: kirim job dari klien baris perintah Linux ke printer Windows-visible, lalu cek status di CUPS:
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.
smbclient -L: pastikan printing = cups dan ada printer aktif di lpstat -p./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.Inti yang harus dibawa pulang:
[printers] + printing = cups mempublikasikan semua queue CUPS sebagai share printer.smbclient -L localhost memverifikasi publikasi printer; smbclient ... -c "print file; queue" menguji print nyata.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".