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.
Dalam tutorial ini, kami akan menunjukkan cara menginstal Samba di CentOS 7 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 di tutorial, kami juga akan memberikan petunjuk rinci tentang cara menghubungkan ke server Samba dari klien Linux, Windows dan macOS.
Prasyarat #
Sebelum Anda mulai, pastikan Anda masuk ke sistem CentOS 7 Anda sebagai pengguna dengan hak istimewa sudo.
Menginstal Samba di CentOS #
Samba tersedia dari repositori CentOS standar. Untuk menginstalnya di sistem CentOS Anda, jalankan perintah berikut:
sudo yum install samba samba-client
Setelah penginstalan selesai, mulai layanan Samba dan aktifkan untuk memulai secara otomatis pada boot sistem:
sudo systemctl start smb.service
sudo systemctl start nmb.service
sudo systemctl enable smb.service
sudo systemctl enable nmb.service
smbd
service menyediakan layanan berbagi dan pencetakan file dan mendengarkan pada port TCP 139 dan 445. nmbd
service menyediakan NetBIOS melalui layanan penamaan IP kepada klien dan mendengarkan pada port UDP 137.
Mengonfigurasi Firewall #
Sekarang Samba telah terinstal dan berjalan di mesin CentOS Anda, Anda harus mengonfigurasi firewall Anda dan membuka port yang diperlukan. Untuk melakukannya, jalankan perintah berikut:
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --zone=public --add-service=samba
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.
Mulailah dengan membuat /samba
direktori:
sudo mkdir /samba
Buat grup baru dengan nama sambashare
. Nanti kami akan menambahkan semua pengguna Samba ke grup ini.
sudo groupadd sambashare
Setel /samba
kepemilikan grup direktori ke sambashare
:
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 ditetapkan, aktifkan akun Samba dengan mengetik:
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. Perintah berikut mengonfigurasi 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 smb.service
sudo systemctl restart nmb.service
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”.
- Di “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.