Thursday, February 18, 2010

Samba di Slackware - Mengatasi Kecerobohan User Windows

Sharing file menggunakan Samba telah banyak di bahas berbagai situs baik itu mengenai file atau printer. Tulisan ini cuma sekedar berbagi pengalaman tentang samba share di slackware dengan kasus sebagai berikut :
Salah satu hal yang sering terjadi di tempat saya adalah seringkali user windows yang mengakses data ke server secara tidak sengaja menghapus file yang di share oleh samba. Tentu sangat merepotkan bagi jika saya harus merecover file yang telah terhapus tersebut.
Untuk mengantisipasinya, saya memanfaatkan fasilitas vfs object (lihat wiki untuk detail), sehingga data yang dihapus oleh client samba (dalam hal ini user windows) tidak langsung terhapus melainkan dipindahkan dahulu ke direktori yang ditentukan. Dengan cara seperti ini, saya bisa memonitoring file-file apa saja yang memang benar-benar ingin dihapus.


Caranya tidak terlalu rumit :
Pastikan samba yang terinstal di linux anda memiliki module recycle, dimana dapat dicek dengan perintah (contoh di server yg sy gunakan) :


root@phoenix:~# locate recycle.so
/usr/lib/vfs/recycle.so
root@phoenix:~# ls -l /usr/lib/vfs/recycle.so
-rwxr-xr-x 1 root root 17820 2008-11-29 05:11 recycle.so
root@phoenix:~#
Setelah itu edit konfigurasi samba :

root@phoenix:~# vi /etc/samba/smb.conf
Berikut adalah potongan konfigurasi samba yang saya gunakan (dengan metode user security) :

...
security = user
...
[public]
comment = Public Stuff - Tempat simpan Dokumen
path = /media/public
valid users = zul irma ikbal
public = no
writable = yes
guest ok = no
read only = no
directory mode = 777
create mask = 0777
# mendeklarasikan jenis vfs object
vfs objects = recycle
# menentukan direktori recycle - dalam hal ini disimpan di /media/public/.recycle
recycle:repository = .recycle
# Menentukan struktur folder dalam hal ini, recycle:keeptree = Yes file akan tersusun sesuai folder share
# Gunakan recycle:keeptree = No , jika penyesuaian struktur direktori tidak diinginkan
recycle:keeptree = Yes
recycle:touch = Yes
recycle:versions = No
# menentukan besar file yang di recycle, 0 = tidak terbatas
recycle:maxsize = 0
# bagian dibawah ini adalah file yang tidak akan disimpan di recycle
recycle:exclude = *.tmp *.temp ~$* *.~??
...
Setelah mengedit konfigurasi samba, selanjutnya buat folder .recycle di mount point samba sesuai dengan konfigurasi yang telah dibuat tadi (dalam hal ini /media/public) :

root@phoenix:~# cd /media/public/
root@phoenix:/media/public# mkdir .recycle
Setelah .recycle dibuat jangan lupa mengubah permission dan owner direktori tersebut (Hal ini yang terlupakan oleh saya sampai2 bertanya pada 2 orang slackers :D , my bad ... ) :

root@phoenix:/media/public# chmod 777 .recycle/ -R
root@phoenix:/media/public# chown nobody.nogroup .recycle/ -R
root@phoenix:/media/public# ls -la
drwxrwxrwx 6 nobody nogroup 584 2010-02-18 22:56 .recycle
root@phoenix:/media/public#
Setelah itu, restart service samba :

root@phoenix:/media/public# sh /etc/rc.d/rc.samba restart
Jika semua lancar, anda bisa melakukan pengecekan di client dengan menghapus file di direktori share tersebut. File yang dihapus di client akan di pindahkan /media/public/.recycle
Amati folder .recycle saat melakukan penghapusan data di client :


root@phoenix:/media/public# watch ls -l .recycle/
Selamat Mencoba ...
Catatan :
  • Audit dan logging dapat dilakukan dengan vfs module audit atau full_audit :-) (surf the web for more).
  • Penghapusan file secara berkala di .recycle bisa anda lakukan dengan crontab (man for detail)
  • Bagian recycle:repository sebaiknya diberi nama yang unik misalnya .TempatSampah dan pastikan direktori tersebut ada dengan permission 777 ( dalam hal ini .recycle cuma contoh saja ), karena bisa diakses direct melalui address bar Windows Explorer
  • Linux yang digunakan dalam tulisan ini : Slackware 12.2 dengan Samba 3.2.5
  • Samba Client yang digunakan : MacOS X, Windows XP dan Windows 7

No comments:

Post a Comment