Samba adalah implementasi ulang gratis dan sumber terbuka dari protokol berbagi file jaringan SMB/CIFS yang memungkinkan pengguna akhir mengakses file, printer, dan sumber daya bersama lainnya.
Tutorial ini menjelaskan cara menginstal Samba di Ubuntu 18.04 dan mengonfigurasinya sebagai server mandiri untuk menyediakan berbagi file di berbagai sistem operasi melalui jaringan.
Kami akan membuat share dan pengguna Samba berikut.
Pengguna:
- sadmin - Pengguna administratif dengan akses baca dan tulis ke semua pembagian.
- josh - Pengguna biasa dengan berbagi file pribadinya sendiri.
Dibagikan:
- pengguna - Pembagian ini akan dapat diakses dengan izin baca/tulis oleh semua pengguna.
- josh - Pembagian ini hanya dapat diakses dengan izin baca/tulis oleh pengguna josh dan sadmin.
Berbagi file akan dapat diakses dari semua perangkat di jaringan Anda. Nanti dalam tutorial ini, kami juga akan memberikan petunjuk terperinci tentang cara menghubungkan ke server Samba dari klien Linux, Windows, dan macOS.
Prasyarat #
Sebelum melanjutkan, pastikan Anda masuk ke sistem Ubuntu 18.04 Anda sebagai pengguna dengan hak istimewa sudo.
Menginstal Samba di Ubuntu #
Samba tersedia dari repositori resmi Ubuntu. Untuk menginstalnya di sistem Ubuntu Anda, ikuti langkah-langkah di bawah ini:
-
Mulailah dengan memperbarui indeks paket apt:
sudo apt update
-
Instal paket Samba dengan perintah berikut:
sudo apt install samba
-
Setelah instalasi selesai, layanan Samba akan dimulai secara otomatis. Untuk memeriksa apakah server Samba sedang berjalan, ketik:
sudo systemctl status smbd
Outputnya akan terlihat seperti di bawah ini yang menunjukkan bahwa layanan Samba aktif dan berjalan:
● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-11-27 09:25:38 UTC; 2min 12s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 15142 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 1152) CGroup: /system.slice/smbd.service ...
Pada titik ini, Samba telah diinstal dan siap untuk dikonfigurasi.
Mengonfigurasi firewall #
Jika Anda memiliki firewall yang berjalan di sistem Ubuntu Anda, Anda harus mengizinkan koneksi UDP yang masuk pada port 137
dan 138
dan koneksi TCP pada port 139
dan 445
.
Dengan asumsi Anda menggunakan UFW
untuk mengelola firewall, Anda dapat membuka port dengan mengaktifkan profil 'Samba':
sudo ufw allow 'Samba'
Mengonfigurasi Opsi Samba Global #
Sebelum membuat perubahan pada file konfigurasi Samba, buat cadangan untuk tujuan referensi di masa mendatang:
sudo cp /etc/samba/smb.conf{,.backup}
File konfigurasi default yang dikirimkan dengan paket Samba dikonfigurasi untuk server Samba mandiri. Buka file dan pastikan server role
diatur ke standalone server
sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf...
# Most people will want "standalone sever" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
server role = standalone server
...
Secara default, Samba mendengarkan di semua antarmuka. Jika Anda ingin membatasi akses ke server Samba hanya dari jaringan internal Anda, batalkan komentar pada dua baris berikut dan tentukan antarmuka yang akan diikat:
/etc/samba/smb.conf...
# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
interfaces = 127.0.0.0/8 eth0
# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself. However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
bind interfaces only = yes
...
Setelah selesai jalankan testparm
utilitas untuk memeriksa file konfigurasi Samba untuk kesalahan. Jika tidak ada kesalahan sintaks, Anda akan melihat Loaded services file OK.
Terakhir, restart layanan Samba dengan:
sudo systemctl restart smbd
sudo systemctl restart nmbd
Membuat Pengguna Samba dan Struktur Direktori #
Untuk kemudahan perawatan dan fleksibilitas daripada menggunakan direktori home standar (/home/user
) semua direktori dan data Samba akan ditempatkan di /samba
direktori.
Untuk membuat /samba
jenis direktori:
sudo mkdir /samba
Setel kepemilikan grup ke sambashare
. Grup ini dibuat saat instalasi Samba, nanti kami akan menambahkan semua pengguna Samba ke grup ini.
sudo chgrp sambashare /samba
Samba menggunakan sistem izin pengguna dan grup Linux tetapi memiliki mekanisme otentikasi sendiri yang terpisah dari otentikasi Linux standar. Kami akan membuat pengguna menggunakan useradd
standar Linux alat dan kemudian atur kata sandi pengguna dengan smbpasswd
utilitas.
Seperti yang kami sebutkan di pendahuluan, kami akan membuat pengguna biasa yang akan memiliki akses ke file share pribadinya dan satu akun administratif dengan akses baca dan tulis ke semua share di server Samba.
Membuat Pengguna Samba #
Untuk membuat pengguna baru bernama josh
gunakan perintah berikut:
sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh
useradd
pilihan memiliki arti sebagai berikut:
-M
-jangan membuat direktori home pengguna. Kami akan membuat direktori ini secara manual.-d /samba/josh
- setel direktori home pengguna ke/samba/josh
.-s /usr/sbin/nologin
- nonaktifkan akses shell untuk pengguna ini.-G sambashare
- tambahkan pengguna kesambashare
grup.
Buat direktori home pengguna dan atur kepemilikan direktori ke josh
pengguna dan grup sambashare
:
sudo mkdir /samba/josh
sudo chown josh:sambashare /samba/josh
Perintah berikut akan menambahkan bit setgid ke /samba/josh
direktori sehingga file yang baru dibuat di direktori ini akan mewarisi grup direktori induk. Dengan cara ini, tidak peduli pengguna mana yang membuat file baru, file tersebut akan memiliki pemilik grup sambashare
. Misalnya, jika Anda tidak menyetel izin direktori ke 2770
dan sadmin
pengguna membuat file baru pengguna josh
tidak akan dapat membaca/menulis ke file ini.
sudo chmod 2770 /samba/josh
Tambahkan josh
akun pengguna ke database Samba dengan mengatur kata sandi pengguna:
sudo smbpasswd -a josh
Anda akan diminta untuk memasukkan dan mengonfirmasi kata sandi pengguna.
New SMB password:
Retype new SMB password:
Added user josh.
Setelah kata sandi diatur untuk mengaktifkan akun Samba, jalankan:
sudo smbpasswd -e josh
Enabled user josh.
Untuk membuat pengguna lain, ulangi proses yang sama seperti saat membuat pengguna josh
.
Selanjutnya, mari kita buat pengguna dan grup sadmin
. Semua anggota grup ini akan memiliki izin administratif. Nanti jika Anda ingin memberikan izin administratif ke pengguna lain cukup tambahkan pengguna itu ke sadmin
grup.
Buat pengguna administratif dengan mengetik:
sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin
Perintah di atas juga akan membuat grup sadmin
dan tambahkan pengguna ke keduanya sadmin
dan sambashare
grup.
Tetapkan kata sandi dan aktifkan pengguna:
sudo smbpasswd -a sadmin
sudo smbpasswd -e sadmin
Selanjutnya, buat Users
berbagi direktori:
sudo mkdir /samba/users
Setel kepemilikan direktori ke pengguna sadmin
dan grup sambashare
:
sudo chown sadmin:sambashare /samba/users
Direktori ini akan dapat diakses oleh semua pengguna yang diautentikasi. Berikut chmod
perintah memberikan akses tulis/baca ke anggota sambashare
grup di /samba/users
direktori:
sudo chmod 2770 /samba/users
Mengonfigurasi Berbagi Samba #
Buka file konfigurasi Samba dan tambahkan bagian:
sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf[users]
path = /samba/users
browseable = yes
read only = no
force create mode = 0660
force directory mode = 2770
valid users = @sambashare @sadmin
[josh]
path = /samba/josh
browseable = no
read only = no
force create mode = 0660
force directory mode = 2770
valid users = josh @sadmin
Opsi memiliki arti sebagai berikut:
[users]
dan[josh]
- Nama-nama share yang akan Anda gunakan saat login.path
- Jalur untuk berbagi.browseable
- Apakah saham tersebut harus dicatatkan dalam daftar saham yang tersedia. Dengan menyetel keno
pengguna lain tidak akan dapat melihat pembagian.read only
- Apakah pengguna yang ditentukan dalamvalid users
list dapat menulis ke share ini.force create mode
- Menyetel izin untuk file yang baru dibuat dalam pembagian ini.force directory mode
- Menyetel izin untuk direktori yang baru dibuat di share ini.valid users
- Daftar pengguna dan grup yang diizinkan untuk mengakses share. Grup diawali dengan@
simbol.
Untuk informasi lebih lanjut tentang opsi yang tersedia, lihat halaman dokumentasi file konfigurasi Samba.
Setelah selesai, restart layanan Samba dengan:
sudo systemctl restart smbd
sudo systemctl restart nmbd
Di bagian berikut, kami akan menunjukkan cara menyambungkan ke share Samba dari klien Linux, macOS, dan Windows.
Menghubungkan ke Berbagi Samba dari Linux #
Pengguna Linux dapat mengakses samba share dari baris perintah, menggunakan file manager atau memasang samba share.
Menggunakan klien smbclient #
smbclient
adalah alat yang memungkinkan Anda mengakses Samba dari baris perintah. smbclient
package tidak diinstal sebelumnya pada sebagian besar distro Linux sehingga Anda perlu menginstalnya dengan manajer paket distribusi Anda.
Untuk menginstal smbclient
di Ubuntu dan Debian jalankan:
sudo apt install smbclient
Untuk menginstal smbclient
di CentOS dan Fedora jalankan:
sudo yum install samba-client
Sintaks untuk mengakses share Samba adalah sebagai berikut:
mbclient //samba_hostname_or_server_ip/share_name -U username
Misalnya untuk terhubung ke share bernama josh
pada server Samba dengan alamat IP 192.168.121.118
sebagai pengguna josh
Anda akan menjalankan:
smbclient //192.168.121.118/josh -U josh
Anda akan diminta untuk memasukkan kata sandi pengguna.
Enter WORKGROUP\josh's password:
Setelah memasukkan kata sandi, Anda akan masuk ke antarmuka baris perintah Samba.
Try "help" to get a list of possible commands.
smb: \>
Memasang bagian Samba #
Untuk me-mount Samba share di Linux terlebih dahulu Anda perlu menginstal cifs-utils
paket.
Di Ubuntu dan Debian jalankan:
sudo apt install cifs-utils
Di CentOS dan Fedora jalankan:
sudo yum install cifs-utils
Selanjutnya, buat titik pemasangan:
sudo mkdir /mnt/smbmount
Pasang share menggunakan perintah berikut:
sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount
Misalnya untuk me-mount share bernama josh
pada server Samba dengan alamat IP 192.168.121.118
sebagai pengguna josh
ke /mnt/smbmount
mount point yang akan Anda jalankan:
sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount
Anda akan diminta untuk memasukkan kata sandi pengguna.
Password for josh@//192.168.121.118/josh: ********
Menggunakan GUI #
Files, pengelola file default di Gnome memiliki opsi bawaan untuk mengakses share Samba.
- Buka File dan klik “Lokasi Lain” di bilah sisi.
- Pada “Connect to Server”, masukkan alamat share Samba dengan format berikut
smb://samba_hostname_or_server_ip/sharename
. - Klik “Connect” dan layar berikut akan muncul:
- Pilih “Pengguna Terdaftar”, masukkan nama pengguna dan kata sandi Samba, lalu klik “Hubungkan”.
- Berkas di server Samba akan ditampilkan.
Menghubungkan ke Berbagi Samba dari macOS #
Di macOS Anda dapat mengakses Samba Shares baik dari baris perintah atau menggunakan Finder pengelola file macOS default. Langkah-langkah berikut menunjukkan cara mengakses berbagi menggunakan Finder.
- Buka “Finder”, pilih “Go” dan klik “Connect To”.
- Pada “Connect To”, masukkan alamat share Samba dengan format berikut
smb://samba_hostname_or_server_ip/sharename
. - Klik “Connect” dan layar berikut akan muncul:
- Pilih “Pengguna Terdaftar”, masukkan nama pengguna dan kata sandi Samba, lalu klik “Hubungkan”.
- Berkas di server Samba akan ditampilkan.
Menghubungkan ke Berbagi Samba dari Windows #
Pengguna Windows juga memiliki opsi untuk terhubung ke Samba share dari baris perintah dan GUI. Langkah-langkah di bawah ini menunjukkan cara mengakses berbagi menggunakan Windows File Explorer.
- Buka File Explorer dan di panel kiri klik kanan pada “This PC”.
- Pilih “Pilih lokasi jaringan khusus” lalu klik “Berikutnya”.
- Dalam “Internet or network address”, masukkan alamat share Samba dengan format berikut
\\samba_hostname_or_server_ip\sharename
. - Klik “Berikutnya” dan Anda akan diminta untuk memasukkan kredensial login seperti yang ditunjukkan di bawah ini:
- Di jendela berikutnya Anda dapat mengetikkan nama khusus untuk lokasi jaringan. Yang default akan diambil oleh server Samba.
- Klik “Berikutnya” untuk pindah ke layar terakhir wizard penyiapan koneksi.
- Klik “Selesai” dan file di server Samba akan ditampilkan.