Ubuntu 20.04 Server / Samba / Memasang dan membuat folder bersama

Pasang Samba di Ubuntu 20.04 Server lalu atur share, pengguna, dan izin berkas agar dapat dibaca dan ditulis dari File Explorer Windows. Contoh ini memakai server mandiri yang dibatasi untuk pengguna Samba terautentikasi dalam grup khusus, bukan tamu tanpa kata sandi.

Memeriksa lingkup dan memasang Samba

Samba membagikan berkas Linux ke Windows melalui SMB (Server Message Block). Kita membuat satu share dengan akun lokal, bukan pengendali atau anggota domain Active Directory. Jangan menimpa [global] lingkungan domain yang ada dengan contoh ini.

Anda memerlukan sudo, ruang penyimpanan, dan koneksi Windows ke IP privat atau hostname server yang dapat diresolusikan. Contoh memakai 192.168.10.20 dan jaringan izin 192.168.10.0/24; sesuaikan. Dukungan standar Ubuntu 20.04 berakhir pada 2025, jadi periksa pemeliharaan melalui informasi Canonical untuk Ubuntu 20.04.

Pasang paket dan periksa versi. smbclient merupakan alat klien untuk pengujian. Dasarnya ada pada panduan server berkas Samba Ubuntu.

sudo apt update
sudo apt install samba smbclient
smbd --version
systemctl status smbd.service

Pada server yang sudah ada, periksa share dan pengguna sebelum mencadangkan /etc/samba/smb.conf. Pilih nama lain jika cadangan sudah ada. Contoh mengasumsikan direktori baru kosong, tanpa mengubah kepemilikan atau izin data lama secara rekursif.

sudo cp -a /etc/samba/smb.conf /etc/samba/smb.conf.before-team-share
sudo testparm -s

Membuat pengguna, grup, dan direktori

  1. Periksa apakah smbuser dan smbteam sudah ada. Jika ada, periksa fungsi dan anggotanya sebelum digunakan, atau pilih nama lain dan sesuaikan seluruh referensi.
getent passwd smbuser
getent group smbteam
  1. Jika kedua nama belum ada, buat grup dan akun khusus lalu daftarkan kata sandi Samba. Kata sandi pada perintah terakhir dipakai dari Windows.
sudo groupadd smbteam
sudo useradd -M -s /usr/sbin/nologin -G smbteam smbuser
sudo smbpasswd -a smbuser

Akun berbagi ini tidak membuat direktori home atau shell login interaktif. Kata sandi Linux melalui passwd dan kredensial Samba melalui smbpasswd terpisah. Untuk akun lama, jangan membuat ulang: tambahkan lewat sudo usermod -aG smbteam USERNAME lalu daftarkan nama itu pada Samba. Lihat manual smbpasswd Ubuntu 20.04.

  1. Buat direktori baru. Perintah menetapkan pemilik, grup, dan mode; jika sudah berisi data, tinjau izin yang ada sebelum menerapkannya.
sudo install -d -o root -g smbteam -m 2770 /srv/samba/team
ls -ld /srv/samba/team
id smbuser

2770 memberi pemilik dan grup hak baca, tulis, serta penelusuran direktori, tanpa akses pengguna lain. Angka 2 adalah bit setgid untuk pewarisan grup. Periksa grup smbteam dan keanggotaan smbuser. Linux dan Samba sama-sama harus mengizinkan; jangan menyelesaikannya dengan chmod 777.

Mengatur share terautentikasi

Buka sudoedit /etc/samba/smb.conf dan tambahkan bagian berikut tanpa menghilangkan konfigurasi lama. Jika [Team] ada, tinjau, jangan duplikasi. Nama share Team berbeda dari lokasi berkasnya.

[Team]
    path = /srv/samba/team
    browseable = yes
    read only = no
    guest ok = no
    valid users = @smbteam
    force group = smbteam
    create mask = 0660
    force create mode = 0660
    directory mask = 2770
    force directory mode = 2770

guest ok = no menolak tamu; valid users = @smbteam mengizinkan anggota grup terautentikasi. read only = no mengizinkan penulisan pada Samba tanpa melewati izin Linux. force group menetapkan grup untuk operasi.

Mask membatasi izin objek baru, sedangkan force mode menambahkan bit kolaborasi. Contoh menargetkan berkas 0660 dan direktori 2770, tanpa mengubah berkas lama. ACL (Access Control List, daftar kontrol akses) atau modul izin lain perlu ditinjau terpisah. Lihat manual smb.conf Ubuntu 20.04.

Memvalidasi, menerapkan, dan memeriksa firewall

  1. Periksa konfigurasi dan perbaiki kesalahan sebelum menerapkan. testparm berhasil berarti konfigurasi bisa dimuat, bukan jaminan autentikasi atau operasi berkas berhasil.
sudo testparm -s

Bandingkan [Team], jalur, dan pembatasan dalam keluaran. Manual testparm juga mewajibkan pengujian fungsi nyata. Restart bisa memutus share lama: periksa pengguna dan jadwalkan pemeliharaan.

  1. Setelah validasi, terapkan layanan dan periksa status berjalan serta mulai otomatis saat boot.
sudo systemctl enable --now smbd.service
sudo systemctl restart smbd.service
systemctl is-active smbd.service
systemctl is-enabled smbd.service
sudo ss -ltnp | grep ':445'
  1. Jika firewall aktif, izinkan TCP 445 hanya dari jaringan internal yang diperlukan. Ganti rentang contoh, tentukan lingkup, dan periksa aturan yang ada.
sudo ufw status verbose
sudo ufw allow from 192.168.10.0/24 to any port 445 proto tcp

Menambah aturan tidak mengaktifkan UFW yang nonaktif. Jangan menjalankan ufw enable sebelum memeriksa akses administrasi jarak jauh. Periksa router dan cloud, tanpa meneruskan SMB langsung dari Internet. Akses lewat alamat tidak memerlukan seluruh port penemuan NetBIOS lama. Sintaks ada pada manual UFW.

Uji autentikasi dan daftar pada server sendiri. Masukkan kata sandi pada prompt, bukan dalam perintah. Periksa Team dan isinya, lalu uji Windows terpisah. Lihat manual smbclient.

smbclient -L 127.0.0.1 -U smbuser
smbclient //127.0.0.1/Team -U smbuser -c 'ls'

Mengakses dari Windows dan menguji berkas

  1. Buka File Explorer dan masukkan jalur pada bilah alamat. Ganti 192.168.10.20 dengan alamat sebenarnya. Akses langsung bisa bekerja meski server tidak otomatis muncul di daftar Network.
\\192.168.10.20\Team
  1. Gunakan smbuser dan kata sandi smbpasswd -a, bukan akun Windows atau PIN. Jika akun lain terpilih, pilih memakai akun berbeda dan masukkan pengguna Samba server.
  2. Buat folder dan berkas uji, ubah isi, lalu buka kembali. Hapus berkas uji dan periksa pengguna lain yang diizinkan dapat mengubah berkas yang diperlukan. Jangan memakai data lama penting untuk pengujian.

Untuk pengguna tambahan, siapkan akun Linux dan kredensial Samba masing-masing lalu masukkan ke smbteam. Gunakan akun pribadi, bukan satu kata sandi bersama. Setelah perubahan grup atau izin, tutup koneksi lama dan uji sesi SMB baru.

Untuk penggunaan rutin, pilih This PC → Map network drive, huruf drive, lalu \\192.168.10.20\Team sebagai folder. Gunakan kredensial lain jika perlu. Lokasi menu per versi ada pada panduan drive jaringan Microsoft.

Pembatasan tamu atau penandatanganan SMB Windows dapat menolak share anonim lama. Contoh memakai autentikasi, tanpa memasang SMB1, mengizinkan tamu tidak aman, atau mematikan penandatanganan sebagai solusi. Jika organisasi membatasi NTLM, sesuaikan konfigurasi dengan domain dan server. Ketentuan versi dan edisi ada pada dokumentasi penandatanganan SMB Microsoft.

Mendiagnosis akses dan menghentikan share

Uji TCP 445 dari PowerShell. TcpTestSucceeded bernilai True belum memvalidasi kredensial atau izin; jika False, periksa alamat, rute, firewall, dan layanan yang mendengarkan. Opsi ada pada dokumentasi Test-NetConnection Microsoft.

Test-NetConnection -ComputerName 192.168.10.20 -Port 445

Jika kata sandi ditolak, periksa pendaftaran Samba, nama, dan grup. Jika login berhasil tetapi tidak bisa menulis, gunakan namei -l /srv/samba/team, ls -ld /srv/samba/team, dan id smbuser untuk memeriksa penelusuran jalur dan grup, serta pengaturan hanya-baca Samba. Lihat sudo journalctl -u smbd.service -n 50 --no-pager dan /var/log/samba/.

Jika Windows tetap memakai kredensial lama, periksa net use. Tutup berkas, putuskan hanya share bermasalah seperti berikut, lalu sambungkan lagi. Periksa share lain pada server yang sama dan entri Credential Manager. Jangan menghapus drive tidak terkait secara massal.

net use \\192.168.10.20\Team /delete

Untuk menghentikan share, hapus atau kembalikan hanya [Team] dalam smb.conf, validasi dengan testparm -s, lalu restart smbd.service saat pemeliharaan. Hapus hanya aturan UFW yang sesuai jika tidak diperlukan. Periksa koneksi tersisa dan simpan data serta akun Linux secara terpisah.

sudo ufw delete allow from 192.168.10.0/24 to any port 445 proto tcp

Sebelum memulihkan seluruh berkas, bandingkan perubahan share lain sejak cadangan. Untuk menonaktifkan akun Samba saja, gunakan sudo smbpasswd -d smbuser, tanpa menganggap sesi lama langsung berakhir. Verifikasi penolakan koneksi baru dan sesi tersisa secara terpisah.