debian: ติดตั้ง samba
เอามาจาก ThaiLinuxCafe - debian : ติดตั้ง samba อย่างง่าย
โครงร่างคือ
- ชื่อเซิร์ฟเวอร์
- server1 : 192.168.1.5
- แชร์ที่อ่านได้อย่างเดียว
- //server1/app จะให้อยู่ที่ /samba/app ( เพื่อเร่งความเร็วและป้องกันไวรัส )
- แชร์ที่อ่าน/เขียนได้
- //server1/data จะให้อยู่ที่ /samba/data
- ชื่อ Workgroup
- smbdomain
- กรุ๊ปที่มีสิทธิ์ใช้งาน
- smbgroup ให้มี gid=1001
- ผู้ใช้ที่มีสิทธิ์ใช้งาน
- user1, user2, user3, ... ให้มี uid=1101, 1102, 1103, ...
- ผู้ควบคุมระบบ
- smb-admin ให้มี uid=1100
- เครื่องลูกข่าย
- client01, client02, ... ให้มีไอพีเป็น 192.168.1.101, 192.168.1.102, ...
เริ่มด้วย
ที่เซิร์ฟเวอร์
ติดตั้ง samba
# aptitude install samba
Workgroup/Domain Name:
<<<--- smbdomain
Modify smb.conf to use WINS settings from DHCP?
<<<--- No
เพิ่มกรุ๊ปในการใช้งาน samba
# groupadd -g 1001 smbgroup
สร้างสคริปต์ในการเพิ่มผู้ใช้ ให้มีรหัสผ่านเดียวกัน (passwd กับ smbpasswd) ตั้งชื่อว่า d.addsmb
# vi /usr/local/bin/d.smbadd
#!/bin/bash if [ ! $3 ]; then echo "Usage: $0 USERNAME UID PASSWORD" exit 1; fi GROUPNAME="smbgroup" USERNAME=$1 USERID=$2 PASSWORD=$3 /usr/sbin/useradd -g $GROUPNAME -u $USERID -m $USERNAME echo "$USERNAME:$PASSWORD" | /usr/sbin/chpasswd (echo "$PASSWORD"; echo "$PASSWORD") | smbpasswd -a -s $USERNAME echo "User: $USERNAME , uid: $USERID added."
เวลาเพิ่มผู้ใช้ก็สั่ง
# d.smbadd user1 1101 USER1-PASSWORD
...
ทำไปจนครบผู้ใช้
เพิ่มผู้ใช้ของ samba ที่เป็นผู้คุมระบบ ให้ชื่อว่า smb-admin
# d.smbadd smb-admin 1100 SMB-ADMIN-PASSWORD
สร้างไดเรคทอรี่สำหรับแชร์ไฟล์ ตั้งชื่อว่า /samba
# mkdir -p /samba/app
# mkdir -p /samba/data
เปลี่ยนสิทธิ์การใช้งานไดเรคทอรี่ samba
# chown -R smb-admin:smbgroup /samba
# chmod 0750 /samba/app
# chmod 0770 /samba/data
ตั้งค่าการใช้งานให้ samba
# vi /etc/samba/smb.conf
เฉพาะค่าที่เราจะเปลี่ยนแปลง
[global] workgroup = smbdomain security = user unix charset = utf8 display charset = utf8 lock spin time = 15 ;; for dbase/foxpro record lock lock spin count = 30 ;; for dbase/foxpro record lock unix extensions = yes [app] comment = Application Dir path = /samba/app valid users = @smbgroup admin users = smb-admin public = no create mask = 0750 directory mask = 0750 fake oplocks = yes ;; increase speed writable = no [data] comment = Data Dir path = /samba/data valid users = @smbgroup public = no create mask = 0770 directory mask = 0770 writable = yes
แก้ไขไฟล์ hosts ให้เครื่องลูกข่ายติดต่อได้
# vi /etc/hosts
192.168.1.1 server1.example.com server1 192.168.1.101 client01.example.com client01 192.168.1.102 client02.example.com client02 192.168.1.103 client03.example.com client03 ...
เริ่มการทำงาน samba ใหม่
# /etc/init.d/samba restart
ส่วนของเครื่องลูกข่าย
เรียกใช้งานจากลินุกส์
ติดตั้ง smbclient
# aptitude install smbclient smbfs
สร้างจุดเมาต์
# mkdir -p /mnt/app
# mkdir -p /mnt/data
แก้ไขข้อมูล hosts ให้เหมือนกับที่เครื่อง server1
# vi /etc/hosts
192.168.1.1 server1.example.com server1 192.168.1.101 client01.example.com client01 192.168.1.102 client02.example.com client02 192.168.1.103 client03.example.com client03 ...
ทำการเมาต์
- การเมาต์แบบ cifs จะทำให้การแสดงชื่อไฟล์เป็นภาษาไทยได้อย่างถูกต้อง
$ sudo mount -t cifs -o username=user1,password=PASSWORD,iocharset=utf8 //server1/app /mnt/app
$ sudo mount -t cifs -o username=user1,password=PASSWORD,iocharset=utf8 //server1/data /mnt/data
- หรือเมาต์แบบ smbfs จะทำให้การล๊อกเรคคอร์ดของโปรแกรมฐานข้อมูลบนไฟล์ แบบ access,dbase,foxpro
ทำงานถูกต้อง
$ sudo mkdir -p /mnt/smbfs/app
$ sudo mkdir -p /mnt/smbfs/data
$ sudo mount -t smbfs -o username=user1,password=PASSWORD,uid=1101,gid=1001 //server1/app /mnt/smbfs/app
$ sudo mount -t smbfs -o username=user1,password=PASSWORD,uid=1101,gid=1001 //server1/data /mnt/smbfs/data
เราสามารถใช้งานไฟล์เซิร์ฟเวอร์ server1 ได้จากจุดเมาต์ /mnt/app และ /mnt/data ตามต้องการ
( ถ้าจะเขียนลง /mnt/app ให้ใช้ชื่อเป็น smb-admin จึงจะสามารถเขียนได้ )
update 50-10-20
ตอนที่ทดลองนี้ cifs บนเดเบียน sid (samba-3.0.26a-1) แก้ปัญหาเรื่องแคชไม่ตรง และล๊อกเรคคอร์ดช้าได้แล้ว
โดยการแก้ไขไฟล์ smb.ini ในหมวด share ให้มีพารามิเตอร์คือ
[data] ... strict locking = yes oplocks = yes level2 oplocks = no ...
และเมานต์ด้วยพารามิเตอร์ directio เช่น
$ sudo mount -t cifs //server1/data /mnt/smbfs/data -o username=USER,password=PASSWORD,iocharset=utf8,directio
จะสามารถล๊อกเรคคอร์ดได้ตรงและแก้ปัญหาแคชไฟล์ได้แล้วครับ
*****
เรียกใช้งานจาก Windows98/Me
ที่เครื่อง client01 ติดตั้งโดย
Start -> Control Panel -> Network
[TAB] Configuration : TCP/IP -> การ์ดไดร์ฟเวอร์ : Properties [TAB] DNS Configuration : Enable DNS DNS Server Search Order : 192.168.1.5 Domain Suffix Search Order : server1.example.com [TAB] IP Address Specify an IP address : 192.168.1.101 Subnet Mask : 255.255.255.0 [TAB]Identification : Workgroup = smbdomain
เรียกใช้งานโดย
คลิกขวา Network Neighbourhood
Map Network Drive
Drive : I:
Path : \\server1\app
เกร็ดเพิ่มเติม
- พิมพ์จากดอสใน WinXP
-
- คำสั่งคือ
net use lpt1: \\server\share
- แก้ปัญหาพิมพ์ช้า ต้องแก้ที่ registry
Start -> run -> regedit HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> WOW LPT_Timeout = 1
- คำสั่งคือ
- Printer-friendly version
- Log in or register to post comments
- 10079 reads
Recent comments