Samba adalah sebuah paket   aplikasi yang berfungsi sebagai perantara antara keluarga Windows (9x,   NT, dst) dengan keluarga Unix (Linux,  FreeBSD,  OpenBSD). Tapi   pada awalnya pengembangan Samba adalah pada sistem operasi Linux.
Setidaknya  terdapat 4 kemampuan dari Samba yaitu : 
- Berbagi pakai file-file Linux supaya bisa diakses  sistem operasi lain atau sebaliknya.
- Berbagi  pakai file antara sesama Linux.
- Menggunakan  printer Linux dari sistem operasi lain dan sebaliknya
- Membuat  Linux menjadi server WINS (Windows Internet Name Service).
 
Samba  dibuat dengan memanfaatkan  protokol SMB ( Server Messages Block) yang  pada Win family lebih  terkenal dengan nama NetBIOS. Pada dasarnya Samba  terdiri dari 2 daemon ( program yang menetap di  memori) yaitu smbd dan nmbd.
 
Smbd  berfungsi mengatur  sumber daya yang dapat digunakan secara  bersama baik file maupun  printer, menyediakan autentikasi dan otorisasi  untuk klien Samba. Jadi daemon ini sebagai “bos” yang mengatur  aktifitas antara samba server dengan samba client. Sedangkan nmbd  berfungsi sebagai nameserver, yaitu memberikan  informasi soal nama komputer yang terdapat pada jaringan dan menyediakan  daftar browse.
Untuk mengatur kerja kedua daemon di atas  adalah dengan mengedit file smb.conf yang biasanya  terdapat pada folder  /etc/samba/smb.conf
 
Pada  Linux Ubuntu untuk men-share file  /folder pada jaringan, cukup klik  kanan pada  lokasi folder yang berisi  file tersebut, pilih share  folder. Jika ingin melihat file yang di share  menggunakan samba dapat  melalui file browser. Pilih menu Go  >  Location kemudian  ketikkan smb://ip address komputer pada bagian location. Begitu  juga jika linux ingin melihat apapun yang dishare oleh windows.
 
Konfigurasi  SAMBA dapat dilakukan melalui terminal pada distro Ubuntu/Debian dengan  mengakses :
 
~$  sudo gedit /etc/samba/smb.conf
 
Beberapa  baris yang harus diedit adalah;
Pada bagian authentikasi, security  diisikan menjadi security = share
Pada bagian  authentikasi, encrypt passwords = true
Pada bagian  authentikasi, guest account = nobody
Pada bagian  printing, load printers = yes
Pada bagian printing, printing  = cups
Pada bagian printing, printcap name = cups
Pada  bagian share definition, tag printers, browseable = yes
Pada  bagian share definition, tag printers, public = yes
Pada  bagian Misc, baris paling akhir isikan :
usershare allow  guests = yes
usershare owner only = false
Pada bagian  networking, nilai interface-nya diisi dengan kondisi mesin saat itu
Pada  bagian global - browsing identification, berikan nilai baru bernama   netbios name dengan nama yang diinginkan. Paling mudah, nama pengguna   dari komputer tersebut.
 
Simpan dan restart service samba dengan  menggunakan perintah:
~$ sudo /etc/init.d/samba restart
 
Silakan  dicoba (Ubuntu), klik kanan Folder yang mau dishare  > Sharing Option > Share this Folder  > Beri Nama Share > Create Share.
 
Ambil  data yang dishare masuk Nautillus Filebrowser, Go >  Location > ketik smb://ip address komputer  yang dishare.
Berikut langkah-langkah install dan setup  samba;
 
pertama
INSTALL SAMBA. Kalau di mepis udah preinstall  sementara di ubuntu daper harus install dulu lewat synaptic.
 
kedua
BUAT  USER. User biasa di linux. Tambahkan sebanyak client yg akan akses ke  server ini; [system][admin][add user] 
 
ketiga
BUAT USER UNTUK  SAMBA. Caranya pake command line di terminal;
sudo smbpasswd -  username
contoh;
sudo smbpasswd -a durahman
(user name dan  password harus sama saat create user name dan password di linux).
 
empat
EDIT  FILE smb.conf. File ini adanya di /etc/samba. Edit sesuai kebutuhan. Di  ahir dokumen ada contoh configurasi punya gue.
 
lima
RESTART  SAMBA. Perintahnya sbb;
sudo /etc/init.d/samba restart
 
keenam
Selesai.  Kalau configurasinya bener baik windows maupun linux sudah bisa  mulai  bekerja dgn file server samba yg barusan kita buat.
 
===begin of  file===
[global]
workgroup = DUR_NET
netbios name = DUR_FILES
server  string = %h server (Samba %v)
passdb backend = tdbsam
max log  size = 1000
server signing = auto
socket options = IPTOS_LOWDELAY  TCP_NODELAY SO_SNDBUF=4096 SO_RCVBUF=4096
security = user
username  map = /etc/samba/smbusers
name resolve order = wins lmhosts bcast  hosts
domain logons = yes
domain master = Yes
dns proxy = No
preferred  master = yes
wins support = yes
ldap ssl = no
hosts allow =  172.16.0., 172.16.1., 172.16.2., 127.
local master = yes
log file =  /var/log/sambalog.txt
logon path = \\%N\%U\profile
 
# Useradd  scripts
add user script = /usr/sbin/useradd -m %u
delete user  script = /usr/sbin/userdel -r %u
add group script =  /usr/sbin/groupadd %g
delete group script = /usr/sbin/groupdel %g
add  user to group script = /usr/sbin/usermod -G %g %u
add machine script  = /usr/sbin/useradd -s /bin/false/ -d /var/lib/nobody %u
idmap uid =  15000-20000
idmap gid = 15000-20000
 
# sync smb passwords with  linux passwords
passwd program = /usr/bin/passwd %u
passwd chat =  *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n .
passwd  chat debug = yes
unix password sync = yes
case sensitive = no
  
# set the loglevel
log level = 3
 
[homes]
comment = Home
valid  users = %S
read only = no
browsable = no
 
[netlogon]
comment  = Network Logon Service
path = /home/samba/netlogon
admin users =  Administrator
valid users = %U
read only = No
 
[profile]
comment  = User profiles
path = /home/samba/profiles
valid users = %U
create  mode = 0600
directory mode = 0700
writable = Yes
browsable =  No
 
[G]
comment = G:
path = /media/data/G/Users
valid  users = @users
force group = users
create mask = 0777
directory  mask = 0777
read only = No
writeable = Yes
force create mode =  0777
force directory mode = 0777
 
[x]
comment = X
path =  /media/data/G/Users
create mask = 0600
directory mask = 0700
read  only = no
writeable = yes
===end of file
Source: Fajar_Rochmawan