สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
เป็น solaris จริง ๆครับ ลองมา 2 อาทิตย์แล้วยังไม่ work คิดว่าเพื่อนๆ ชาวเล น่าจะช่วยได้ครับ ปัญหาของผมคือ อยากจะ share ข้อมูลบน solaris กับ windows โดยใช้ samba ครับ เท่าที่ลอง ตอนนี้ สามารถ set ได้ 2 แบบเท่านั้นคือ ให้ทะลุผ่านเข้าไปเลย กับ ให้ใส่ passwd แต่ passwd ที่ใช้ต้องเป็น root เท่านั้น ผมอยากจะสร้าง user หนึ่ง เอาไว้สำหรับ share ตรงนี้โดยเฉพาะ แต่ลองดูแล้วไม่ work ครับ (ผมลองโดยการ aaduser เข้าไปใน /etc/passwd และก็มี userในไฟล์ /etc/sfw/private/smbpasswd) แต่ก็ยังไม่ได้ ไม่รู้ว่าเป็นเพระอะไร ตอนนี้ smb.conf ของผมเป็นดังนี้ครับ # Global parameters [global] security = user admin log = Yes log file = /var/tmp/smb.log # encrypt password = no guest ok = yes [share1] path = /sim read olny = Yes public = Yes guest ok = yes ต้องขอโทษที่ต้องสอบถามนะครับ พยายามค้นหาข้อมูลเก่า ๆ แล้ว ลองก็แล้ว ยังทำไม่ได้เลยครับ ขอบคุณอีกครับครับ [color=darkred:f17473b718][/color:f17473b718][b:f17473b718][/b:f17473b718]
รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

เพิ่มเติมอีกนิดนะครับ
ตอนสร้าง user ที่ /etc/passwd ใช้ command line ครับ ส่วนที่ smbpasswd ใช้ swat ครับ

รูปภาพของ จักรนันท์
จักรนันท์
Rating 7
Posts: 551
Joined: 10-12-2004
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

โอย... การตอบคำถามนี้ ต้องเล่ายาวมากๆ เลยนะนี่
จากที่อ่านดูแล้ว มันไม่มีปัญหาอะไรพิศดารดอกครับ
แต่ Config ไม่ครบทุกจุดเท่านั้นเองครับ ตกหล่นไปอีกเพียบเลย

คือ... มันเล่ายาวมากเลย เอางี้ครับ
ทิ้งชื่อกับเบอร์โทรไว่้ในนี้แล้วกันครับ
ผมจะโทรไปแนะนำครับ
แต่ผมขอสงวนที่จะไม่ทิ้งเบอร์ผมไว้ในนี้นะครับ เดี๋ยวรับโทรศัพท์ไม่หวาดไม่ไหวครับ ผมจะโทรไปหาคุณเองแล้วกันครับ

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

ขอบพระคุณมากครับคุณจักรนันท์ เอาเป็นว่าคุณจักรนันท์ โทรมาแล้วเดียวผมโทรกลับแล้วกันนะครับ จะได้ไม่เปลื่องค่าโทรศัพท์คุณจักรนันท์ เบอร์โทรผมนะครับ 063132600 ชื่อธรรมจักร ครับ

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

พี่จักรนันท์ ครับ
ตอนนี้ set เรียบร้อยแล้วครับ ตอนนี้ smb.conf ของผมเป็นแบบนี้ครับ
[global]
security = user
admin log = Yes
pam password change = yes
obey pam restrictions = yes
preferred master = Auto
encrypt passwords = no
log file = /var/tmp/smb.log
encrypt password = no
guest ok = yes
[share1]
path = /sim
read olny = Yes
public = Yes
# guest ok = yes
readlist = @sys1
write list = @sys1
force group = sys1

ปัญหาที่เจอต่อมาก็คือ จาก windows XP ผมเข้า ไป access disk ที่ share ไว้ไม่ได้ แต่windows2000 สามารถเข้าได้ โดยทั้ง XP และ 2000 ผมแก้ registry ดังนี้ครับ

สำหรับ Windows 2000
1. คลิก Start -> Run พิมพ์ regedit คลิก OK
2. คลิก HKEY_LOCAL_MACHINE->System->CurrentControlSet->Service-> LanmanWorkStation->Parameter
3. ดับเบิลคลิก RequireSignorSeal
4. แก้ค่าให้เป็น dword:00000000
5. Restart Windows ใหม่

สำหรับ Windows XP
1. คลิก Start -> Run พิมพ์ regedit คลิก OK
2. คลิก HKEY_LOCAL_MACHINE -> System-> CurrentControlSet -> Services -> netlogon -> parameters
3. ดับเบิลคลิก RequireSignorSeal
4. แก้ค่าให้เป็น dword:00000000
5. Restart Windows ใหม่

ไม่ทราบว่าผม set อะไรผิดหรือเปล่าครับ (samba ของผม เป็น version 11.9.0,REV=2002.03.02.00.35 ครับ)

root@# pkginfo -l SUNWsmbac
PKGINST: SUNWsmbac
NAME: samba - A Windows SMB/CIFS fileserver for UNIX (client)
CATEGORY: system
ARCH: sparc
VERSION: 11.9.0,REV=2002.03.02.00.35
BASEDIR: /
VENDOR: Sun Microsystems, Inc.
DESC: samba - A Windows SMB/CIFS fileserver for UNIX (client)
PSTAMP: sfw8120020302003739
INSTDATE: Feb 17 2005 13:02
HOTLINE: Please contact your local service provider
STATUS: completely installed
FILES: 12 installed pathnames
3 shared pathnames
3 directories
9 executables
9474 blocks used (approx)

รูปภาพของ จักรนันท์
จักรนันท์
Rating 7
Posts: 551
Joined: 10-12-2004
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

เอ... ดูแล้วมันน่าจะเป็น Windows 2000 ที่เข้าไม่ได้
ปกติค่า Registry ของแต่ละ Windows จะเป็นดังนี้ครับ

REGEDIT4

;Windows 9x, Me, NT
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]
"EnablePlainTextPassword"=dword:00000001

;Windows 2000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\Parameters]
"EnablePlainTextPassword"=dword:00000001

;Windows XP
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]
"requiresignorseal"=dword:00000000

เท่าที่ดู น่าจะเป็น 2000 ที่มีปัญหา
ไม่เป็นไร ลองนี่ดูครับ
ที่ผม Post ไว้ให้เนี่ย มาจากไฟล์ Registry ที่ผมทำขึ้นไว้ใช้เอง
ให้ตัดเอาตั้งแต่บรรทัด REGEDIT4 ไป Save เป็น Text ไฟล์นามสกุล .reg เลยครับ
อย่าลืมเคาะขึ้นบรรทัดใหม่ท้ายไฟล์ซัก 2 บรรทัดด้วยนะครับ
แล้วไป Double click ติดตั้งค่า Registry ลงไปเลย
ผมทำไฟล์นี้ไฟล์เดียวเพื่อใช้ดะมันทุก Windows มาตลอดครับ ก็ไม่ติดปัญหาอะไร
ลองดูแล้วมาบอกกันนะครับ ติดอะไรจะได้เดินหน้าแก้ไขต่อไป

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

ผมลองเปลี่ยน security = user เป็น security = share ปรากฎว่าทะลุเข้าไปได้เลยครับ น่าแปลกใจ
ประเด็นที่ผมสังเกตได้คือ
ถ้าผม set security = user เวลา find หาจาก windows XP จะขึ้นว่า unknow แต่ถ้าเปลี่ยนจาก user เป็น share เวลา find หากจาก XP จะขึ้นว่า smba2.2.12(xx.xx.xx.xx) มีลักษณะเป็น workgroup
ผมไม่แน่ใจว่าตรงนี้หรือเปล่าที่เป็นสาเหตุของปัญหา เพราะเครื่อง solaris ตัวนี้ไม่ได้ join เข้า domain ครับ

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

เพิ่มเติมนะครับ พอปรับ security = share ตอนนี้ ทั้ง windows2000 และ XP เข้าได้หมดเลยครับ (แม้จะยังไม่แก้ registry ก็ตาม) ไม่ต้องใช้ passwd ด้วยครับ -_-'

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

ขอเพิ่มอีกนิดนะครับ ตอนนี้ security=user แล้วเข้าไปที่ XP ไม่ได้ มี message ว่า "the account is not authorized to log in from this station" ครับ

รูปภาพของ จักรนันท์
จักรนันท์
Rating 7
Posts: 551
Joined: 10-12-2004
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

อ่ะฮ้า... ข้อความสุดท้ายของคุณไงครับ สาเหตุของปัญหา ผมเองก็ไม่ทันสังเกตุตั้งแต่แรก
ที่มี Message ว่า "the account is not authorized to log in from this station" นั่นไงครับ
ทำให้ผมนึกขึ้นได้ว่า ใน samba.conf ของคุณ ใน [global] ยังไม่ได้กำหนด hosts allow นั่นเองครับ

แค่นั้นแหละครับ ที่พลาดไป เรื่องกำหนด hosts allow ผมเคยอธิบายไว้อย่างละเอียดแล้ว
ขอให้ค้นกระทู้เก่าดูนะครับ เพราะว่ามันมี Trick ในการกำหนดอยู่ด้วยครับ ( http://www.opentle.org/PNphpBB2-viewtopic-t-2935.html )
โดยเฉพาะถ้า Client ถูกกำหนดให้ Get IP จาก DHCP จะต้องมี Trick ในการกำหนดหน่อย
เพราะว่า Client แต่ละตัวจะมี IP ไม่นิ่งครับ (SAMBA Security เช็คทั้ง IP และ Name ของ Client)

ลองย้อนไปดูกระทู้เก่าดูนะครับ
คราวนี้ผมคิดว่า ไม่น่าจะมีปัญหาอะไรแล้วล่ะครับ

และสุดท้าย เมื่อทำได้ผ่านหมดแล้ว ช่วยสรุปที่คุณได้ปรับแต่งแก้ไขทั้งหมดไว้ในนี้ด้วยนะครับ
เพื่อแบ่งปันความรู้กับท่านอื่นที่ตามอ่านภายหลังได้
เพราะว่าเรื่องมันยาว ผมพิมพ์ไม่ไหว จึงต้องใช้คุยทางโทรศัพท์เอา
แต่เมื่อคุณได้รับคำแนะนำจนทำผ่านได้แล้ว ผมก็ขอรบกวนคุณพิมพ์แทนผม ทิ้งประสบการณ์ไว้ในนี้ให้คนหลังด้วยครับ

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

พี่จักรนันท์ ครับ
จริง ๆ ที่ไม่ได้ใส่ hosts allow เอาไว้ เพราะว่า อยากจะให้ทุกเครื่องเข้าได้ ครับ โดยเครื่องที่จะเข้าได้ต้องมี 1) passwd และ 2) ต้องแก้ registry (พอดี windows client ที่จะเข้ามาใช้ solaris เครื่องนี้ จะมีหลาย subnet มาก )

อย่างไรก็ตาม ผมได้แก้ไขโดยการใส่ IP ใน hosts allow แล้ว และ ได้เพิ่ม IP ใน /etc/hosts แล้ว ก็ยังไม่ไม่สามารถใช้งานได้ครับ
ตอนนี้ smb.conf ของผมเป็นแบบนี้ครับ
[global]
security = user
admin log = Yes
hosts allow = 172.22.60.131 # อนุญาตให้เครื่อง 172.22.60.131 เข้ามาใช้แค่เครื่องเดียว เป็น windows XP
pam password change = yes
obey pam restrictions = yes
preferred master = Auto
encrypt passwords = no
log file = /var/tmp/smb.log
encrypt password = no
guest ok = yes
[share1]
path = /sim
read olny = Yes
public = Yes
readlist = @sys1
write list = @sys1
force group = sys1

ส่วนใน /etc/hosts ก็เพิ่มบรรทัดสุดท้าย เป็นเบอร์ IP ตามที่ set ไว้ใน smb.conf
172.22.60.131 xpclient

ผมที่ออกมาก็คือยังไม่ได้เหมือนเดิมครับ -_-' error ยังเหมือนเดิม เดะ

ปล. ผมเห็นด้วยกับพี่ จักรนันท์นะครับ ที่ต้อง post วิธีทำหลังจากแก้ไขเป็นที่เรียบร้อยแล้วให้ทุกคนทราบ แต่ ขอแก้ปัญหาอันนี้อีกนิดนะครับ

รูปภาพของ จักรนันท์
จักรนันท์
Rating 7
Posts: 551
Joined: 10-12-2004
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

อืมม์... เอางี้ครับ... ผมเปลี่ยนจุดตั้งต้นในการคิดดีกว่า
ที่ผ่านมา คิดด้วยวิธี... ตั้งต้นจากที่คุณทำไว้ พยายามหาจุดผิดพลาด เพิ่มเติม/แก้ไข จนกว่าจะได้ตามที่คุณต้องการ
ผมขอคิดใหม่นะครับ... ด้วยวิธีว่า...
สมมุติว่าคุณตั้งโจทย์ให้ผมสร้างไฟล์ samba.conf แล้วกันครับ

โจทย์คือ...

1) แชร์ /sim ในชื่อ share1
2) ให้กลุ่ม sys1_read สามารถอ่านได้
3) ให้กลุ่ม sys1_write สามารถเขียนได้
4) อนุญาตให้เครื่องที่มี IP ใน Class 172.22.60.xxx เข้าใช้งานได้
5) ต้องการให้เครื่องที่เข้าใช้งานได้ ต้องมี Password เสมอ (ดังนั้นต้อง guest ok = no ครับ จึงไม่ต้องกำหนดเพราะปกติ default จะเป็น no อยู่แล้ว)
6) Workgroup ชื่อ SOLARIS
7) ตัว Server มีชื่อ host ว่า SOLARIS_SMB

เอาล่ะ สมมุติว่าได้รับโจทย์ตามนี้ ผมจะสร้าง samba.conf ดังนี้ครับ

[global]

# ปรับตามใจชอบครับ จะเป็น cp850 หรือ 874 ก็ตามใจครับ ดูที่มีปัญหาในการใช้งานเรื่องชื่อไฟล์ภาษาไทยให้น้อยที่สุดแล้วกันครับ
# Set charset for Thai Linux Core (Thai enable)
# unix charset = cp874
# display charset = cp874
# dos charset = cp874

workgroup = SOLARIS
server string = Samba %v server
netbios name = SOLARIS_SMB
# สร้างได้เร็คทอรี่ย่อยสำหรับเก็บ log ด้วยก็จะดีครับ เพราะ log จะบันทึกแยกไฟล์ตาม client ที่เข้ามาใช้ (ตรง %m จะถูดแทนที่ด้วยชื่อ client หรือ IP)
log file = /var/tmp/samba/%m.log
max log size = 50
socket options = TCP_NODELAY
create mask = 600
directory mask = 700
security = user
encrypt passwords = no
local master = yes
domain master = no
dns proxy = no
# ตรงนี้จะไม่เอาไปใช้ก็ได้ครับ ผมทำ login script เพื่อให้เครื่อง Windows จัดแจง Map drive ได้เอง ด้วยการสร้าง login.bat ให้ แล้วใช้คำสั่ง NET ของ M$ ที่มากับ Windows นั่นแหละครับ ทำให้ไม่ต้องไปทำการ Map drive ที่เครื่อง Client แต่ละเครื่องครับ
logon script = login.bat

# เข้าใช้ได้เฉพาะ IP ตั้งแต่ 172.22.60.1 ถึง 172.22.60.254 โดยไม่สนใจชื่อ client ดังนั้น ไม่จำเป็นต้องไปเพิ่มใน /etc/hosts ครับ ถ้าจะ Strict มากกว่านี้ เพื่อให้ความปลอดภัยสูงขึ้นอีก ก็สามารถใส่เป็นชื่อ client ในนี้ได้ แล้วไปเพิ่มใน /etc/hosts ด้วย ก็จะทำให้ SAMBA ยอมให้เข้าใช้งานได้โดยที่ client ต้องตรงตามที่กำหนดทั้งชื่อเครื่องและ IP ซึ่งกรณีนี้ ถ้าใช้ DHCP จะมีปัญหาเพราะ client ได้ IP ที่ไม่แน่นอนครับ จะทำได้เแพาะ client ที่มี IP ตายตัวเท่านั้น
hosts allow = 172.22.60.1/254

# ================= Share Definitions =================

[home]
comment = User home directory
path = %H
read only = no
force create mode = 660
force directory mode = 770

# ตรงนี้ ถ้าทำ login.bat ไว้ เราก็แยกไว้ตาม User ตาม Home ของ User นั้น กรณีนี้ ไว้ใน $HOME/netlogon ครับ (%H จะถูกแทนที่ด้วย HOME ของ User ที่ Log on เข้ามา)
# แต่ถ้าไม่ใช้ logon script ก็ให้เอา [netlogon] ออกไปทั้งดุ้นด้วยเลยครับ
# ถ้าหากจะสร้าง login.bat เป็นส่วนกลาง คือหมายถึงทุก User จะ Map drive เหมือนกันหมด ก็ไม่จำเป็นต้องแยกไว้ตาม Home ของแต่ละ User แต่สามารถไว้ที่เดียว ไฟล์เดียวได้เลย ก็ต้องแก path= ไปเป็นไดเร็คทอรี่ที่เก็ย login.bat ไว้ และอย่าลืมกำหนดให้ไดเร็คทอรี่นั้น รวมทั้งไฟล์ login.bat มี permission ให้ User ที่จะ logon เข้ามามีสิทธิอ่านไปได้ด้วยนะครับ
[netlogon]
comment = Network Logon Service
path = %H/netlogon
guest ok = yes
writable = no

[share1]
comment = Your share
path = /sim
public = no
read list = @sys1_read
write list = @sys1_write
force group = sys1_read
force create mode = 640
force directory mode = 750

# ================= End of file =================

ทีนี้ก็ไปสร้าง Group ขึ้น 2 Group คือ sys1_read และ sys1_write
แล้วก็จัดแจงสร้าง User ที่ต้องการ จะกี่ User ก็ได้ตามใจชอบ
ต่อมาก็กำหนดให้ User ที่สร้างขึ้น ที่ต้องการให้เข้าอ่าน/เขียนไฟล์ใน /sim ได้ ให้เป็นสมาชิกของกลุ่ม sys1_read
และกำหนดให้ User เฉพาะที่ให้เขียนไฟล์ใน sim ได้ ให้เข้าเป็นสามชิกของกลุ่ม sys1_write ด้วย
สุดท้ายก็ไปกำหนด permission ให้กับ /sim ให้เป็นของกลุ่ม sys1_read ให้มีสิทธิอ่าน (755 หรือ 750) ส่วน Owner ก็ให้เป็น User คนใดคนหนึึ่งก็ได้ที่ต้องการให้เขียนไฟล์ใน /sim ได้

เท่านี้แหละครับ
หลังจากนี้ จะเพิ่มอีกกี่ User ก็ได้ ก็เพียงแค่จัดเข้ากลุ่มไปตามต้องการ
วิธีนี้ ไม่ต้องสร้าง SAMBA User แยกนะครับ ใช้ System user โดยตรงเลย
ถ้าบังเอิญสร้าง SAMBA User ไปแล้ว ก็ลบหรือย้ายไฟล์ออกไปเสียก่อนครับ

เอ้า เอาไปลองดูครับ
ลองเริ่มตั้งต้นใหม่ดูครับ
ผมเห็นว่า แก้ไขไปแก้ไขมา แล้ว Policy ของเรามันจะไปขัดแย้งกันเอง เพราะแก้หลายที เช่น guest ok = yes เนี่ย ขัดแย้งกับการกำหนดให้ security = share แล้วยังต้องการ Password ด้วยอีก แล้วยังไปซ้อนทับกับ Section ย่อยๆ ของการแชร์ คือในส่วน read only = yes/no และ public = yes/no ด้วย เนื่องจาก SAMBA มีความยิดหยุ่นในการ Config มาก จนบ่อยครั้งที่การแก้ไข Config หลายรอบ คิดหลายที แล้ว Policy ที่เรากำหนดดันไปขัดแย้งกันเองโดยที่เราไม่ทันสังเกตุครับ

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

ขอบคุณมากครับพี่จักรนันท์ วันจันทร์ ผมขอลองอีกทีนะครับ (เป็น server ของ office) แล้วจะแจ้งผลให้ทราบครับ
... ได้ไอเดียเพิ่มขึ้นแล้วครับ เดียวจะลองทำดู

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

ขอบคุณมากครับพี่จักรนันท์ วันจันทร์ ผมขอลองอีกทีนะครับ (เป็น server ของ office) แล้วจะแจ้งผลให้ทราบครับ
... ได้ไอเดียเพิ่มขึ้นแล้วครับ เดียวจะลองทำดู

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

ขอบคุณมากครับพี่จักรนันท์ วันจันทร์ ผมขอลองอีกทีนะครับ (เป็น server ของ office) แล้วจะแจ้งผลให้ทราบครับ
... ได้ไอเดียเพิ่มขึ้นแล้วครับ เดียวจะลองทำดู

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

พี่จักรนันท์ครับ
ผมลองทำดูแล้วครับ เครื่อง window XP ก็ยังไม่สามารถเข้าไปใช้งานใน share1 ได้ โดยขึ้น error เหมือนเดิม (the account is not autherized to log in from this station)

ผมลองสังเกตดูพบว่า windows จะพยายาม login ด้วย user \\[เบอร์ IP ของ Solaris]\[guest account ของ windows] ซึ่ง ตรง user นั้น เป็นสีเทา ๆ ไม่สามารถเปลี่ยนได้ ใส่ได้แค่ password อย่างเดียว ซึ่งการที่ login ไม่ได้น่าจะถูกต้องเพราะว่า user ดังกล่าว ไม่มีอยู่ใน solaris ครับ
ผมลองสร้าง user guest บน solaris โดยให้เป็น member ใน group sys1 ก็ยังไม่สามารถใช้งานได้ครับ (ขึ้น error เหมือนเดิม ครับ)

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

พี่จักรนันท์ครับ
ผมลองทำดูแล้วครับ เครื่อง window XP ก็ยังไม่สามารถเข้าไปใช้งานใน share1 ได้ โดยขึ้น error เหมือนเดิม (the account is not autherized to log in from this station)

ผมลองสังเกตดูพบว่า windows จะพยายาม login ด้วย user \\[เบอร์ IP ของ Solaris]\[guest account ของ windows] ซึ่ง ตรง user นั้น เป็นสีเทา ๆ ไม่สามารถเปลี่ยนได้ ใส่ได้แค่ password อย่างเดียว ซึ่งการที่ login ไม่ได้น่าจะถูกต้องเพราะว่า user ดังกล่าว ไม่มีอยู่ใน solaris ครับ
ผมลองสร้าง user guest บน solaris โดยให้เป็น member ใน group sys1 ก็ยังไม่สามารถใช้งานได้ครับ (ขึ้น error เหมือนเดิม ครับ)

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

พี่ครับ
ตอนนี้ ดูเหมือนจะ work แล้วนะครับ โดยผมเพิ่ม registy อีกอันลงไปดังนี้ครับ
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters]
"enableplaintextpassword"=dword:00000001
"enablesecuritysignature"=dword:00000001
"requiresecuritysignature"=dword:00000000
"ServiceDll"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\
00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
77,00,6b,00,73,00,73,00,76,00,63,00,2e,00,64,00,6c,00,6c,00,00,00
"OtherDomains"=hex(7):00,00

อันนี้ download มาจาก ใน webครับ
ส่วน smb.conf ของผมเป็น แบบนี้ครับ (ยังไม่ได้ปรับแก้ตามที่พี่แนะนำ 100 % แต่ก็พอถูไถ่ไปได้บ้าง)
[global]
security = user
admin log = Yes
hosts allow = 172.22.50.
pam password change = yes
obey pam restrictions = yes
preferred master = Auto
encrypt passwords = no
log file = /var/tmp/smb.log
encrypt password = no
[share1]
path = /sim
read olny = Yes
public = No
readlist = @sys1
write list = @sys1
force group = sys1

ตอนนี้ทุกอย่าง ok แล้วครับ เดียวลองทดสอบอีกนิดหน่อย ถ้าไม่ติดปัญหาอะไรจะเขียนอธิบายลงใน web อีกทีครับ

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

สรุปนะครับ

จากโจทย์ของผมคือ
ผมต้องการ Share ไฟล์จากบน Solaris เพื่อให้ windows เข้าไปใช้งาน โดยมีเงื่อนไขคือ การเข้าไปใช้งาน ของ windows
จะต้องมี password เพื่อให้สามารถเข้าไปใช้งานได้

จากโจทย์นี้นะครับ
ทำให้ได้ ไฟล์ smb.conf ดังนี้

[global]
security = user
hosts allow = 172.22.60.
encrypt passwords = no
log file = /var/tmp/smb.log

[share1]
path = /sim
read olny = Yes
public = No
readlist = @sys1
write list = @sys1
force group = sys1

ส่วนของ [global] สามารถแยกอธิบายได้ดังนี้ครับ
1. security = user
เลือกให้เป็น user ซะ จะทำให้ การเข้าไปยัง samba ต้องใช้ username / password เป็นรหัสผ่านในการเข้าไปใช้งาน
2. hosts allow = 172.22.60.
แปลว่า ให้เฉพาะเครื่อง ที่อยุ่ใน subnet 172.22.60 เท่านั้นที่จะสามารถใช้ เข้ามาใช้ ข้อมูลบน samba ได้ อันนี้ตอนแรกผมเข้าใจผิดว่า การไม่ใส่อะไรเลยแสดงว่า อนุญาตให้เข้าไปใช้ได้ทุกเครื่อง
แต่ในความเป็นจริง หากไม่ใส่ ip อะไรเลย จะหมายถึงไม่อนุญาตให้ใครใช้เครื่องเลย
3. encrypt passwords = no

4. log file = /var/tmp/smb.log
อันนี้เป็นการกำหนด log file ให้กับ samba ว่าจะให้เก็บไว้ที่ไหน

ต่อไปก็จะเป็นส่วนของ Share1 ซึ่งผมกำหนดมาให้ เป็น Directory ที่จะเปิดให้ Windows เข้ามา ใช้งานกัน
ส่วนของ [share1] สามารถแยกอธิบายได้ดังนี้ครับ
1. path =/sim
อันนี้หมายถึง path จริง ๆบน solaris ว่าจะให้ไปใช้ path ไหน ของผมใช้ชื่อว่า /sim อยู่ใน root เลยครับ
2. read olny = Yes
อันนี้หมายความว่า คนที่เข้ามาให้ read อย่างเดียว
3. public = No
อันนี้เป็นการบอกว่า การ share นี้ ไม่ได้ public นะจ๊ะ
4. readlist = @sys1
เรื่อง readlist ไม่ค่อยเข้าใจนัก แต่น่าจะหมายถึงอนุญาตให้ user ที่เป็นสมาชิกของ group sys1 สามารถ อ่านข้อมูลที่ share ได้ (เราแทน group บน solaris ด้วย @[ชื่อgroup])
5.write list = @sys1
อันนี้ก็ไม่ค่อยเข้าใจอีกเหมือนกัน แต่น่าจะหมายถึงอนุญาตให้ user ที่เป็นสมาชิกของ group sys1 สามารถเขียนข้อมูลที่ share ได้ (เราแทน group บน solaris ด้วย @[ชื่อgroup])
ข้อนี้ สงสัยอยู่ว่า มันจะขัดแย้งกับ ข้อ 2. read olny = Yes หรือเปล่า รอพี่จักรนันท์ มาช่วยตอบแล้วกันนะครับ
6.force group = sys1
อันนี้จะหมายถึงให้ ผลลัพธ์ ของไฟล์ที่ถูกสร้างขึ้นบน solaris มี group เป็น sys1

หลังจากเสร็จสิ้นกับการ config smb.conf แล้ว ก็ให้ไปสร้าง user และ group บน solaris โดยในที่นี้จะเป็น group sys1 ส่วน user ก็เพิ่มได้เลยตามสบายโดยให้ user ที่เพิ่มขึ้นเป็นสมาชิกของ sys1

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

ในไฟล์ smb.conf ของผม ถ้าสังเกตดูจะเห็นว่า สั้น ๆ ไม่มีอะไรเลย (config น้อยมาก)
อย่างไรก็ตาม ถ้าดูจาก กระทู้ http://www.opentle.org/PNphpBB2-viewtopic-t-2935-highlight-samba-sid-355...
ที่พี่จักรนันท์ ได้ให้ความรู้ไว้ นั้น ใน ไฟล์ smb.conf ควรจะต้องเพิ่ม option บางอย่างลงไป เพื่อเพิ่ม security และ performance ให้กับ samba โดยของผมจะเลือกแค่บางส่วนนำมาประยุกต์ใช้
ฉะนั้น ตอนนี้ ไฟล์ smb.conf ของผมก็จะเป็นแบบนี้ครับ

[global]
security = user
admin log = Yes
hosts allow = 172.22.50.
pam password change = yes
obey pam restrictions = yes
preferred master = Auto
encrypt passwords = no
log file = /var/tmp/smb.log

[share1]
path = /sim
read olny = Yes
public = No
readlist = @sys1
write list = @sys1
force group = sys1

คำอธิบาย ดูเพิ่มเติมในกระทู้ http://www.opentle.org/PNphpBB2-viewtopic-t-2935-highlight-samba-sid-355... ได้เลยครับ

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

คราวนี้ มาถึงโจทย์ข้อถัดไปของผมคือต้องการให้ window 2000 และ window XP สามารถเข้าไปใช้ share ที่อยู่บน Solaris ได้
ของ windows 2000 ไมมีปัญหาอะไรครับ เข้าไปได้เลย เพียงแค่แก้ registry ดังนี้ครับ

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\Parameters]
"EnablePlainTextPassword"=dword:00000001

ของ windows XP ก็ต้อง แก้ registy เหมือนกัน ดังนี้ครับ
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]
"requiresignorseal"=dword:00000000

ปกติ windows XP แก้ registy ก็น่าจะใช้งานได้แล้ว แต่ของผมยังไม่จบแค่นั้น เพราะติดปัญหาอย่างที่บอกคือ ขึ้น error ว่า the account is not autherized to log in from this station เวลา map ผ่าน windows XP
ผมลองไปลองมาอยู่พักใหญ่ และสังเกตเห็นว่า user ที่ windows XP ใช้ในการ login เข้าไปที่เครื่อง solaris ผ่าน samba นั้น คือ guest (หน้าต่างให้ใส่ username และ password ของ windows XP ถูก lock user เอาไว้ ให้ login ด้วย guest เท่านั้น -- อันนี้ไม่รู้เพราะอะไรเหมือนกันทำให้ผมจำใจต้องใช้ user guest ในการ login เข้าไป)
ซึ่งพี่จักรนันท์ได้กรุณาโทรมาอธิบายให้ฟังเพิ่มเติมว่า ใน server ตระกูล linux และ solaris นั้น จะไม่ให้สิทธิ guest เข้ามาใช้งานบนเครื่อง (เป็นประเด็นเรื่องของ Security) ฉะนั้น วิธีแก้ ของปัญหานี้จึงมีหลายทางออกด้วยกัน
ตยเช่น
วิธีที่1 ใช้วิธีหลอก samba โดย เพิ่ม 2 บรรทัด ลงไปในส่วนของ [global] ดังนี้
guest ok = yes
map to guest = user1
กรณีนี้คล้าย ๆ จะเป็นการ หลอก samba โดยกำหนด policy ของ samba ให้อนุญาต ให้ guest เข้ามาใช้งานได้ และ เมื่อ guest เข้ามาได้แล้ว ให้ หลอก samba อีกที โดยการ map guest เป็น user1
(อย่าลืมสร้าง user1 บน Solaris โดยให้อยู่ใน group sys1ด้วย)
พอทำเสร็จแล้ว เวลา mapจาก XP ก็ใส่ passwd ของ user1 ที่อยู่บน solaris ได้เลย

วิธีที่2 ใช้วิธีหลอก samba อีกเหมือนกัน โดยการกำหนดค่าลงไปในส่วนของ [global] ดังนี้
guest account = nobody
วิธีนี้จะเป็นการหลอก ให้ samba จำไว้ว่า guest เนี้ย ชื่อว่า nobody นะ ไม่ได้ชื่อ guest ฉะนั้น หากหลอก samba ตามวิธีข้อ 2 guest ที่ login เข้ามาก็จะไม่ใช่ guest อีกต่อไป (เพราะว่า samba จะจำไว้แล้วว่า guest คือ nobody )
-- ไอ้ nobody เนี้ย เป็นชื่อ user นะครับ สามารถเปลี่ยนได้ตามความเหมาะสม

วิธีที่ 3 อันนี้ก็หลอก samba เหมือนกันแต่ไปแก้ที่ windowXP แทน
ให้เข้าไปในส่วนของ Local users and Groups (คลิกขวาที่ my computer แล้วเลือก manage) ให้ไปเปลี่ยน ชื่อ guest เป็นอย่างอื่นซะ ที่นี้ก็จะเข้าไปใช้ได้แล้ว แต่ต้องไปแก้ที่ window XP ทุกเครื่องที่ต้องการเข้าไปใช้งาน solaris ซึ่งอาจจะไม่สะดวกนัก
การเปลี่ยนชื่อ user บน windows XP นั้น (สมมุติให้เปลี่ยนเป็น ชื่อ willy) สิทธิของ user willy ใน windows XP ก็ยังคงเป็น guest อยุ่เหมือนเดิม แต่ samba จะไม่รู้ว่า willy เป็น guest account

วิธีที่4 แก้ registry เพิ่มอีกตัวใน windows XP ครับ เอามาจากใน interget

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters]
"enableplaintextpassword"=dword:00000001
"enablesecuritysignature"=dword:00000001
"requiresecuritysignature"=dword:00000000
"ServiceDll"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\
00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
77,00,6b,00,73,00,73,00,76,00,63,00,2e,00,64,00,6c,00,6c,00,00,00
"OtherDomains"=hex(7):00,00

ทั้งนี้ ปัญหาเรื่องการ login นั้น ผมใช้วิธีตามข้อ 4 แก้ registy เพราะว่า สะดวกดี (เวลาแก้ registy ต้อง reboot เครื่องด้วยทุกครั้งนะครับ)

รูปภาพของ จักรนันท์
จักรนันท์
Rating 7
Posts: 551
Joined: 10-12-2004
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

ขออธิบายบางจุดเพิ่มเติมให้นะครับ

ตรงที่ว่า :-

"2. hosts allow = 172.22.60.
แปลว่า ให้เฉพาะเครื่อง ที่อยุ่ใน subnet 172.22.60 เท่านั้นที่จะสามารถใช้ เข้ามาใช้ ข้อมูลบน samba ได้ อันนี้ตอนแรกผมเข้าใจผิดว่า การไม่ใส่อะไรเลยแสดงว่า อนุญาตให้เข้าไปใช้ได้ทุกเครื่อง
แต่ในความเป็นจริง หากไม่ใส่ ip อะไรเลย จะหมายถึงไม่อนุญาตให้ใครใช้เครื่องเลย"

เข้าใจได้ถูกต้องครับ แต่ขอเพิ่มว่า มันจะเป็นเช่นนั้นในกรณีที่ใน [global] เรากำหนด security = user เท่านั้นครับ ถ้าหากกำหนด security = share ล่ะก็ SAMBA จะ ignore (ไม่สนใจ) hosts allow ทันที ตรงจุดนี้ก็เป็นจุดหนึ่ง ที่ทำให้เรากำหนด Policy พลาดได้ง่าย กล่าวง่ายๆ คือ Concept ของ SAMBA กรณีที่กำหนด security = share ก็หมายความว่า แชร์จริงๆ แชร์แหลกลาน จำง่ายๆ อย่างงี้แล้วกัน

ต่อมา ตรงที่ว่า :-

"ข้อนี้ สงสัยอยู่ว่า มันจะขัดแย้งกับ ข้อ 2. read olny = Yes หรือเปล่า รอพี่จักรนันท์ มาช่วยตอบแล้วกันนะครับ"

ที่จริง มันไม่เชิงขัดแย้งครับ แต่มันจะแน่นขึ้นอีก เหมือนกำหนด Policy ซ้อนไว้ พูดอีกอย่างคือ เหมือนมีด่าน 2 ชั้นแล้วกันครับ คล้ายๆ กับ create mask กับ directory mask นั่นแหละครับ ซ้อนทับกับ Permission จริงๆ ของ OS อีกที (จะพิมพ์อธิบายยังไงดีล่ะเนี่ย รู้สึกว่าตัวเองอธิบายไม่ดีเลย)

สุดท้าย ตรงที่ว่า :-

"พี่จักรนันท์ได้กรุณาโทรมาอธิบายให้ฟังเพิ่มเติมว่า ใน server ตระกูล linux และ solaris นั้น จะไม่ให้สิทธิ guest เข้ามาใช้งานบนเครื่อง"

ตระกูล *nix ทุกตัวครับ ที่ไม่ให้สิทธิเพราะว่า คำว่า guest เป็นคำสงวนของ M$ Windows ก็ตาม แต่คำๆ นี้ ไม่ได้เป็นอะไรเลยบน *nix ครับ ถ้าจะ log in ในนาม guest ก็ต้องมี User ชื่อ guest จริงๆ นั่นเองครับ ดังนั้น หากไม่ได้สร้าง guest ไว้จริงๆ *nix ทั้งหลายก็จะไม่ให้ guest ทำอะไรได้ครับ

รูปภาพของ mytemp
mytemp
Rating 2
Posts: 18
Joined: 13-12-2005
สอบถามการ shre ข้อมูลด้วย samba บน solaris ครับ

ขอเพิ่มเติมอีกนิดนะครับ
จากตัวอย่างที่เรา share /sim เป็น share1 โดยใช้ samba นั้น อย่าลืมไปกำหนดสิทธิใน /sim บน solaris ด้วยนะครับ ต้องมี permission ตามที่เรากำหนดใน samba ด้วย
ต.ย. นะครับ
drwxr-xr-- 6 root sys1 512 Dec 28 11:08 sim
อันนี้กำหนดให้ root ทำได้ทุกอย่าง แต่ กรุ๊ป sys1 จะอ่านกับ execute ไฟล์ได้อย่างเดียว ฉะนั้น ถ้าจะให้ กรุ๊ป sys1 เขียนไฟล์ลงไปใน directory ดังกล่าว ได้ด้วย ก็ต้อง แก้ ใหม่ ให้เป็นแบบนี้ครับ
drwxrwxr-- 6 root sys1 512 Dec 30 09:51 sim
ทีนี้ user ที่อยู่ใน group sys1 ก็จะ เขียนข้อมูลได้แล้ว ส่วน คนอื่น ๆ ก็จะได้แค่ read อย่างเดียว

Syndicate content