Matthew Note

A Samba Issue

问题描述

在安装好Samba之后按照如下配置配置好

1
2
3
4
5
6
[Public]
path = /home/myname
guest ok = yes
writable = yes
browsable = yes
read only = no

但是发现windows并不能访问,始终说没有权限,用其他linux系统可以正常访问

问题定位

检查Log,发现多处backtrace

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[2016/04/20 21:52:16.574827, 0] ../source3/lib/util.c:900(log_stack_trace)
BACKTRACE: 29 stack frames:
#0 /usr/lib/x86_64-linux-gnu/samba/libsmbregistry.so.0(log_stack_trace+0x1a) [0x7f470509616a]
#1 /usr/lib/x86_64-linux-gnu/samba/libsmbregistry.so.0(smb_panic_s3+0x20) [0x7f4705096240]
#2 /usr/lib/x86_64-linux-gnu/libsamba-util.so.0(smb_panic+0x2f) [0x7f4705e0c8ef]
#3 /usr/lib/x86_64-linux-gnu/libtalloc.so.2(+0x1b5f) [0x7f4702b94b5f]
#4 /usr/lib/x86_64-linux-gnu/libtalloc.so.2(_talloc_steal_loc+0xab) [0x7f4702b9b77b]
#5 /usr/lib/x86_64-linux-gnu/libtalloc.so.2(_talloc_move+0x13) [0x7f4702b9b7b3]
#6 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(+0x19c868) [0x7f4705a60868]
#7 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(get_share_mode_lock+0x17e) [0x7f4705a6149e]
#8 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(+0x107b8b) [0x7f47059cbb8b]
#9 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(+0x10c1bc) [0x7f47059d01bc]
#10 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(create_file_default+0x1cf) [0x7f47059d164f]
#11 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(+0x1dab6e) [0x7f4705a9eb6e]
#12 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(smb_vfs_call_create_file+0xd8) [0x7f47059d7e78]
#13 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(smbd_smb2_request_process_create+0xaff) [0x7f4705a059ff]
#14 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(smbd_smb2_request_dispatch+0xc4d) [0x7f47059fe3ed]
#15 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(+0x13b072) [0x7f47059ff072]
#16 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(run_events_poll+0x16c) [0x7f4703d2ea8c]
#17 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(+0x25ce0) [0x7f4703d2ece0]
#18 /usr/lib/x86_64-linux-gnu/libtevent.so.0(_tevent_loop_once+0x8d) [0x7f4702988cbd]
#19 /usr/lib/x86_64-linux-gnu/libtevent.so.0(tevent_common_loop_wait+0x1b) [0x7f4702988e5b]
#20 /usr/lib/x86_64-linux-gnu/samba/libsmbd-base.so.0(smbd_process+0x6c9) [0x7f47059ed569]
#21 smbd(+0x96b6) [0x7f47064a66b6]
#22 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(run_events_poll+0x16c) [0x7f4703d2ea8c]
#23 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(+0x25ce0) [0x7f4703d2ece0]
#24 /usr/lib/x86_64-linux-gnu/libtevent.so.0(_tevent_loop_once+0x8d) [0x7f4702988cbd]
#25 /usr/lib/x86_64-linux-gnu/libtevent.so.0(tevent_common_loop_wait+0x1b) [0x7f4702988e5b]
#26 smbd(main+0x15b4) [0x7f47064a46c4]
#27 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f47025e1ec5]
#28 smbd(+0x7a96) [0x7f47064a4a96]

原来是他所依赖的库有兼容性问题,所以更新相关的库

解决

1
sudo apt-get install -y libsmbclient libsmbclient-dev libtevent0 libtalloc2