Showing posts with label Samba Beginner. Show all posts
Showing posts with label Samba Beginner. Show all posts

Tuesday, November 24, 2009

ใช้ samba แทน netware และ client เป็น dos อะไรจะปานนั้น

มิตรรักนักอ่านของไอทีทริปเปิลพลัสครับ ลูกค้ารายหนึ่งเป็นบริษัทมีคอมพิวเตอร์ใช้งานทางด้านบัญชีอยู่ 10 กว่าเครื่องและมีโปรแกรมบัญชีแบบเก่าอยู่ในเครื่อง server ที่เป็น netware 3.1 เครื่องลูกทั้งหมดเป็น dos 6.22 ได้กรุณาให้ไอทีทริปเปิลพลัสเข้าไปดูแลโดยจะขอให้ติดตั้ง linux แทน netware ตัวเดิม และให้ใช้ software เดิมได้ด้วย.... ซึ่งเห็นว่าเป็นประโยชน์ที่จะนำมาเล่าสู่กันฟัง อีกแนวทางของการประยุกต์ใช้ samba server ให้ได้ตามประสงค์อันเป็นการประหยัดครับ

ในส่วนเครื่อง server ได้เปลี่ยนคอมพิวเตอร์ใหม่ติดตั้ง linux และ config samba โดยเปิดเป็ไฟล์แชริ่งธรรมดา ไม่ได้เซ็ตให้เป็น PDC มีระบบ security เป็นแบบ user เมื่อ set แล้วได้ทดลองใช้งานผ่าน windows ถือว่าผ่าน

สำหรับเครื่อง client ที่เป็น dos นั้นเราใช้โปรแกรม ms-client เป็นตัวติดตั้งเพื่อ connect เข้ากับ samba server
โดยมีขั้นตอนดังนี้

1. setup msclient กำหนด driver ของ lan card และหมายเลขไอพีที่ไฟล์ system.ini และ protocol.ini ในไดเรคที่ติดตั้ง msclient ดังนี้

ไฟล์ sysem.ini

ไฟล์นี้ใช้กำหนดไดร์เวอร์แลนการ์ด group และ ไดเรกทอรีของ msclient ด้วย

[network]
filesharing=no
printsharing=no
autologon=yes
computername=vtspurchase01
lanroot=c:\msclient
username=vtsuser
workgroup=VTSGRP
reconnect=yes
dospophotkey=P
lmlogon=0
logondomain=WORKGROUP
preferredredir=basic
autostart=basic
maxconnections=8

[network drivers]
netcard=rtsnd.dos
transport=tcpdrv.dos,nemm.dos
devdir=c:\msclient
LoadRMDrivers=yes

[386enh]

ที่ทำเป็นตัวอักษรเข้มนั้นไฟล์ rtsnd.dos เป็นไดรฟ์เวอร์ของ lan card ชิป realtex ซึ่งใช้งานได้ดีและในดอส โดยจะต้องมีไฟล์ rtsnd.dos ในไดเรกทอรี่ lanroot=c:\msclient ด้วย

ไฟล์ protocol.ini

เรากำหนดหมายเลขไอพีของ ที่ไฟล์นี้ ตัวอย่างนี้กำหนดให้ได้รับหมายเลขโดย dhcp จาก server

[network.setup]
version=0x3110
netcard=RTL8139,1,RTL8139,1
transport=tcpip,TCPIP
lana0=RTL8139,1,tcpip

[TCPIP]
NBSessions=6
DisableDHCP=0
DriverName=TCPIP$
BINDINGS=RTL8139
LANABASE=1

[protman]
DriverName=PROTMAN$
PRIORITY=MS$NDISHLP

[RTL8139]
DriverName=rtsnd$
Medium=_Auto

2. จัดทำ batch file นำไฟล์ต่าง ๆ ใน msclient มาเรียกใช้งานเป็นลำดับ โดยใช้ editor บนดอสและ save เป็นไฟล์ชื่อ lan.bat

@echo off
c:\msclient\net init
SET PATH=c:\msclient;d:\pck-v4;d:\dos;
c:\msclient\netbind.com
c:\msclient\umb.com
c:\msclient\tcptsr.exe
c:\msclient\tinyrfc.exe
c:\msclient\nmtsr.exe
c:\msclient\emsbfr.exe
c:\msclient\net start
net time \\vtssmb /set /yes
net use d: \\vtssmb\accountdats
cls
echo.
echo.
echo ______ Welcome To SAMBA Server ______
echo ^^^^^^ This'is runing on Linux RH 8.0 ^^^^^^^
echo.
echo.
echo.


3. การใช้งานเมื่อบูต dos มาถึง c: ก็พิมพ์คำสั่ง lan.bat โปรแกรมจะรันทีละคำสั่ง โดยจะได้หมายเลขไอพีมาจาก server
ขึ้นมาให้ใส่ username และ พาสเวิร์ด และตั้งเวลาให้ตรงกับของ server จากนั้นก็ map แชร์บน server มาเป็น drive D: และเข้าไปใช้งานโปรแกรมได้ตามปกติ

อ้างอิง :
MS-CLIENT : http://www.dtcc.edu/cs/admin/docs/msclient/ntserver.html
DOWNLOAD :
ftp://ftp.microsoft.com/bussys/clients/msclient/dsk3-1.exe
ftp://ftp.microsoft.com/bussys/clients/msclient/dsk3-2.exe

Monday, November 23, 2009

setup PDC Samba ด้วย Redhat Enterprise 5

เพื่อนๆมิตรรักนักเซ็ตอัพของไอทีทริปเปิลพลัสทุกท่านครับ วิชาความรู้บางอย่างถ้าไม่ได้ใช้นาน ๆ ถึงคราวเอามาใช้จริง ๆ กลับลืมเสียดื้อ ๆ ซะงั้นเหมือนมีดคมในฝัก พอชักออกมาสนิมล่วงกราว ผมเจอกับตนเองอยู่บ่อย ๆ เช่นวันนี้ samba server ของลูกค้าเสีย (ฮาร์ดดิสก์อยู่ๆพาร์ติชั่นหาย) ต้องเซ็ตอัพกันใหม่ เราได้เข้าไปบริษัทของลูกค้าตั้งแต่เก้าโมงเช้า พร้อมกับนำตัวโปรแกรม centos ไปติดตั้งอยู่ ๆ แผ่นโปรแกรมก็ติดตั้งต่อไม่ได้ จึงต้องเปลี่ยนไปใช้แผ่น linux Redhat Enterprise 5 และถึงคราว set Samba PDC เซ็ตแป็บเดียวเสร็จ พอ joint เครื่อง xp เข้า PDC นั้นแหละตั้งแต่เครื่องแรกก็ joint ไม่ได้แล้วทบทวน config ก็แล้วลง windows ใหม่ก็แล้วเล่นเข้าไปเกือบ 6 ชั่วโมงถึงแก้ปัญหาได้ จึงขอบันทึกการทำงานวันนี้ไว้กันลืม มิตรรักแฟนเพลงจะนำไปใช้ก็ได้ครับ ไม่สงวนสิทธิ์แต่อย่างใด ( เพราะเราก็ copy มาเหมือนกัน อิอิ )

1. ติดตั้ง Redhat Enterprise 5 ให้มี package ที่จำเป็นเหล่านี้ด้วย
samba-common-3.0.25b-1.el5_1.2
samba-client-3.0.25b-1.el5_1.2
samba-3.0.25b-1.el5_1.2


2. คอนฟิกไฟล์ /etc/samba/smb.conf ตามนี้

[global]
workgroup = CWTPDC
server string = Samba PDC
passdb backend = tdbsam
log level = 3
log file = /var/log/samba/%m.log
max log size = 50
add user script = /usr/sbin/useradd "%u" -n -g users
delete user script = /usr/sbin/userdel "%u"
add group script = /usr/sbin/groupadd "%g"
delete group script = /usr/sbin/groupdel "%g"
delete user from group script = /usr/sbin/userdel "%u" "%g"
add machine script = /usr/sbin/useradd -n -g machines -c "Workstation (%u)"
-d /dev/null -s /bin/false "%u"
domain logons = Yes
os level = 35
preferred master = Yes
domain master = Yes
wins support = Yes
cups options = raw


3. สร้าง group ntadmins และ map ไปเป็นกรุ๊ป "Domain Admins" ซึ่งเป็นกรุ๊ปพิเศษใน windows
#groupadd ntadmin

จากนั้นสร้างมาอีก 2 กรุ๊ป โดยกรุ๊ปหนึ่งสำหรับ domain user และอีกกรุ๊ปหนึ่งสำหรับ user Guest

#groupadd ntusers
#groupadd ntguests


4. จากนั้นรันคำสั่งต่อไปนี้

net groupmap add ntgroup="Domain Admins" unixgroup=ntadmins rid=512 type=d
net groupmap add ntgroup="Domain Users" unixgroup=ntusers rid=513 type=d
net groupmap add ntgroup="Domain Guests" unixgroup=ntguests rid=514 type=d


ทุก ๆ คำสั่งควรจะ "Successfull" และสุดท้ายตรวจสอบดูว่า map ได้ถูกต้องหรือไม่ ด้วยคำสั่ง

#net groupmap list

5. เพิ่ม user ชื่อ root เข้าไปในไฟล์ /etc/samba/passdb.tdb ซึ่งเป็นพาสเวิร์ดของ samba
#useradd -a root ใส่พาสเวิร์ดเข้าไป

ต่อด้วยสร้าง testuser ขึ้นมาทดสอบดูโดยตั้งให้อยู่ในกรุ๊ป ntusers

#useradd -G ntusers testuser
#passwd testuser


#smbpasswd -a testuser

========= *** ถึงขั้นนี้ให้ restart samba ใหม่ด้วยคำสั่ง service smb restart *** =========

6. ไปที่เครื่อง windows ให้ joint Domain (ที่นี้ได้แก่ CWTPDC) ให้ใส่ username เป็น root พาสเวิร์ดตามที่ตั้ง
เมื่อ joint ได้แล้วหลังจาก restart windowsxp ให้ login ด้วย user testuser ซึ่งถึงตรงนี้ไม่น่ามีปัญหาใด ๆ จากนั้นก็ add user ปกติได้เลย...


setup pdc samba with redhat enterprise5
setup pdc samba with redhat enterprise

ปัญหาที่เราพบและหาอยู่เกือบ 6 ชั่วโมงจาก config ที่บันทึกนี้

ที่เครื่อง WindowsXP ในช่วงที่ joint ครั้งแรกจะขึ้น error ว่า username ไม่ถูกต้องหรือหาไม่พบ บางครั้งขึ้นว่า network part ไม่ถูกต้องไล่ config ไปๆมาๆหลายรอบไม่เจอ จนกระทั้งได้รันคำสั่งใน config ทีละคำสั่งนั้นแหละจึงถึงบางอ้อ ก็คำสั่งนี้

add machine script = /usr/sbin/useradd -n -g machines -c "Workstation (%u)"
-d /dev/null -s /bin/false "%u"


ยังไม่มี machines ใน /etc/group เลย จึงจัดการสร้างขึ้นมาให้เรียบร้อย และก็เรียบร้อยจริง ๆ เสียที

บทความอธิบายเกี่ยวกับเรื่องของ SAMBA จากเพื่อนบ้าน เข้าใจง่ายทำตามได้เลย

ต้องขออนุญาติ เจ้าของบทความเพื่อเผยแพร่นะขอรับ

- samba directory mask และ create mask
http://www.rawint.com/blog/?p=3

- Samba Variables
http://www.rawint.com/blog/?p=39

- samba PDC
http://www.rawint.com/blog/?p=37

- Samba Logging for Audit Trails
http://www.linuxjournal.com/article/7251

- Samba's Encrypted Password Support
http://www.linuxjournal.com/article/2717

- Linux and Samba in a Federal Lab
http://www.linuxjournal.com/article/4881

Monday, March 30, 2009

File Sharing Management

การประยุกต์ใช้ลีนุกซ์สำหรับองค์กร นอกจากจะพิจารณาถึงเรื่องลดต้นทุนด้านลิขสิทธิ์แล้ว ความเหมาะสมต่อระบบงาน ก็เป็นเรื่องที่สำคัญเช่นกัน หากองค์กรลดต้นทุนทางด้านลิขสิทธิ์ลงได้ แต่ระบบงานต่าง ๆ ต้องหยุดชะงัก หรือสำเร็จลงได้อย่างทุกลักทุเล อันเนื่องมาจากการคอนฟิกลีนุกซ์ และการประยุกต์ใช้ไม่เหมาะสมกับลักษณะงานแล้ว ถึงขนาดที่ผู้บริหารต้องกลับมาพิจารณาว่าลีนุกซ์นั้นเหมาะต่อองค์กรของเราหรือยัง ??? คงไม่ใช่เรื่องสนุกแน่

ผู้เขียนเกริ่นไว้ในย่อหน้าแรกแบบคนมองโลกในแง่ลบ เพราะหลาย ๆ บริษัทที่ผู้เขียนได้ประสบมา มีการนำลีนุกซ์มาใช้ในองค์กร และต้องเปลี่ยนใจกลับไปใช้ windows 2003 เหมือนเดิม ส่วนใหญ่จะมีปัญหากับการทำ file sharing และเซตอัพตัวลีนุกซ์ให้ยืดหยุ่นกับลักษณะงานที่ต้องแชร์กันไม่ได้ อย่างเช่นงานโปรเจก ที่ไฟล์ๆหนึ่งต้องมีการเข้ามาใช้หลายคน จากหลายฝ่าย แต่ละคนที่เข้าถึงไฟล์นั้นต้องมีการแก้ไขบ้าง ปรับปรุงบ้าง บางคนให้เข้าถึงไฟล์นั้นได้ แต่ห้ามแก้ไข เป็นต้น หรืองานทางด้านการผลิตที่มีการผูกสูตรการผลิต (BOM) เป็นไฟล์ excel และให้ฝ่ายต่าง ๆที่เกี่ยวข้องกรอกข้อมูล พอ save ไฟล์แล้วอีกฝ่ายหนึ่งเปิดขึ้นมาเป็น read only และต้องแก้ค่า permission กันอยู่ตลอด ปัญหาต่าง ๆ เหล่านี้ เมื่อแอดมินพยายามแก้ปัญหาก็จะมองไปที่ configuration ของ samba เป็นหลัก โดยไม่มองให้ลึกลงไปถึงตัวลีนุกซ์ที่ samba ใช้เป็นเจ้าเรือนในการรัน ซึ่งมี permission ในการจัดการไฟล์ ก่อนที่ตัว samba จะเข้ามาจัดการในส่วนของ samba เอง (ด้วย option : create mask,directory mask,directory security mask เป็นต้น)

ปัญหาการแชร์ไฟล์ในลักษณะดังกล่าวข้างต้นนั้น ลีนุกซ์เอง มีวิธีการจัดการได้อย่างเหมะสมและยืดหยุ่น ด้วยคำสั่งต่าง ๆ ของลีนุกซ์อยู่แล้ว แทบจะไม่ต้องไปกำหนดค่า option เพิ่มเติมให้ samba เลย เรามาลอง implement file sharing ตามโจทก์ข้างต้นนั้นโดยยกตัวอย่างไฟล์สูตรการผลิตที่เป็น excel (BOM : Bill of Material) ดังนี้

1. สร้างไดเรกทอรีบนลีนุกซ์เพื่อเปิดแชร์ร่วมกันก่อน
#mkdir /home/bomproduct
2. สร้างกลุ่ม และสร้างรายชื่อผู้ใช้งานมีสังกัดกลุ่ม เช่น
#groupadd mktgrp
#groupadd productgrp
#useradd -g mktgrp tawich
#useradd -g mktfrp somporn
#useradd -g productgrp somjit
#useradd -g productgrp prakong
3. ไดเรกทอรี /home/bomproduct มีเจ้าภาพคือสังกัดกลุ่ม productgrp ในข้อหนึ่งเราสร้างขึ้นมาโดย root ให้เปลี่ยนเป็นกลุ่ม productgrp ด้วยคำสั่ง #chgrp -R productgrp /home/bomproduct
4. กำหนดให้ไดเรกทอรีหรือไฟล์ใดๆ ที่ถูกสร้างขึ้นมาเป็นกลุ่ม productgrp เสมอไม่ว่าผู้สร้างจะเป็นใครสังกัดกลุ่มไหน ด้วยคำสั่ง #chmod -R 2775 /home/bomproduct
5. เพิ่มผู้ใช้งานจากกลุ่มต่าง ๆ เข้าเป็นสมาชิกของกลุ่ม productgrp
#gpasswd -M tawich,somporn (ตัวอย่างนี้เป็นการเพิ่ม user 2 คนจากกลุ่ม mktgrp เข้าเป็นสมาชิกเพิ่ม)
6. กำหนด umask ในไฟล์ /etc/bashrc ให้เป็น 002 (ตัวอย่างนี้เป็น FC9)
7. สร้างแชร์ริ่งด้วย samba แก้ไขไฟล์ /etc/samba/smb.conf
[bomfiles]
comment = BOM for Product
path = /home/bomeproduct
browseable = yes
read only = no

นี่เป็นตัวอย่างจริง ๆ จากการ implement ให้บริษัทแห่งหนึ่ง และได้ใช้ samba โดยมีลีนุกซ์เป็นพลังขับเคลื่อนระบบ BOM มาจนถึงบัดนี้....
เอกสารการ implement โดยละเอียดพร้อมภาพประกอบ ผู้อ่านสามารถดาวน์โหลดได้ที่นี่


แหล่งข้อมูลเพิ่มเติม เกี่ยวกับ permission

http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/ref-guide/s1-users-groups-private-groups.html
http://www.lockergnome.com/linux/2002/08/29/the-users-mask/
http://www.dartmouth.edu/~rc/help/faq/permissions.html
http://www.ubuntuclub.com/node/58

Twitter Delicious Facebook Digg Stumbleupon Favorites More