Samba 4.1 and old DOS Client with MSClient Problem

Hello!

I have a small network with a SuSe Server (now Version 13.1) and a old PC with DOS 6.22 and the MSClient SW. With the old Suse System (12.1) everything works fine with the client. The DOS-PC have access to the shares.
Now I have update the Server to 13.1 and samba 4.1. The DOS Client can login and seen the shares of the samba server. But if the Clieent try to read or write something from the share it don’t work. e.g. if Itry a listing with “dir f:” the client print out the name of the first Folder in a endless loop. I activate the debug mode an see in the smb.log this a lot of times if the client try to list the directory frontend (see also the logfile below)
Use someone else thes combination (samab 4.1 and MSClient) and have the same problmes? Can I fix it with setting in the smb.conf?

Thanks for help
Christian

[2013/12/20 20:38:30.196883, 8] …/source3/smbd/dosmode.c:698(dos_mode)
dos_mode: ./frontend
[2013/12/20 20:38:30.196921, 8] …/source3/smbd/dosmode.c:237(dos_mode_from_sbuf)
dos_mode_from_sbuf returning d
[2013/12/20 20:38:30.196956, 8] …/source3/smbd/dosmode.c:31(dos_mode_debug_print)
dos_mode returning d
[2013/12/20 20:38:30.196999, 3] …/source3/smbd/dir.c:1134(smbd_dirptr_get_entry)
smbd_dirptr_get_entry mask=???.???] found ./frontend fname=frontend (frontend)
[2013/12/20 20:38:30.197042, 8] …/source3/smbd/dir.c:123(make_dir_struct)
put name [FRONTEND] from [frontend] into dir struct
[2013/12/20 20:38:30.197077, 6] …/source3/smbd/dir.c:913(dptr_fill)
fill on key 2 dirptr 0x7fa8c90972a0 now at -620357536
[2013/12/20 20:38:30.197112, 4] …/source3/smbd/reply.c:1799(reply_search)
SMBsearch mask=???.??? path=. dtype=22 nument=1 of 1
[2013/12/20 20:38:30.197147, 5] …/source3/lib/util.c:168(show_msg)
[2013/12/20 20:38:30.197168, 5] …/source3/lib/util.c:178(show_msg)
size=83
smb_com=0x81
smb_rcls=0
smb_reh=0
smb_err=0
smb_flg=128
smb_flg2=2
smb_tid=25218
smb_pid=1467
smb_uid=22320
smb_mid=0
smt_wct=1
smb_vwv 0]= 1 (0x1)
smb_bcc=46
[2013/12/20 20:38:30.200091, 6] …/source3/smbd/process.c:1793(process_smb)
got message type 0x0 of len 0x41
[2013/12/20 20:38:30.200156, 3] …/source3/smbd/process.c:1795(process_smb)
Transaction 8 of length 69 (0 toread)
[2013/12/20 20:38:30.200181, 5] …/source3/lib/util.c:168(show_msg)
[2013/12/20 20:38:30.200191, 5] …/source3/lib/util.c:178(show_msg)
size=65
smb_com=0x81
smb_rcls=0
smb_reh=0
smb_err=0
smb_flg=0
smb_flg2=0
smb_tid=25218
smb_pid=1467
smb_uid=22320
smb_mid=0
smt_wct=2
smb_vwv 0]= 1 (0x1)
smb_vwv 1]= 46 (0x2E)
smb_bcc=26
[2013/12/20 20:38:30.200443, 3] …/source3/smbd/process.c:1398(switch_message)
switch message SMBsearch (pid 25114) conn 0x7fa8c909bb40
[2013/12/20 20:38:30.200493, 4] …/source3/smbd/uid.c:384(change_to_user)
Skipping user change - already user
[2013/12/20 20:38:30.200553, 3] …/source3/smbd/dir.c:944(dptr_fetch)
fetching dirptr 2 for path . at offset -620357536
[2013/12/20 20:38:30.200601, 4] …/source3/smbd/reply.c:1674(reply_search)
dptr_num is 2
[2013/12/20 20:38:30.200643, 8] …/source3/smbd/reply.c:1708(reply_search)
dirpath=<.> dontdescend=<>
[2013/12/20 20:38:30.200720, 6] …/source3/smbd/dir.c:1051(smbd_dirptr_get_entry)
smbd_dirptr_get_entry: dirptr 0x7fa8c909c3d0 now at offset 478943648076404832
[2013/12/20 20:38:30.200774, 8] …/source3/smbd/dosmode.c:698(dos_mode)
dos_mode: ./frontend
[2013/12/20 20:38:30.200819, 8] …/source3/smbd/dosmode.c:237(dos_mode_from_sbuf)
dos_mode_from_sbuf returning d
[2013/12/20 20:38:30.200861, 8] …/source3/smbd/dosmode.c:31(dos_mode_debug_print)
dos_mode returning d
[2013/12/20 20:38:30.200911, 3] …/source3/smbd/dir.c:1134(smbd_dirptr_get_entry)
smbd_dirptr_get_entry mask=???.???] found ./frontend fname=frontend (frontend)
[2013/12/20 20:38:30.200961, 8] …/source3/smbd/dir.c:123(make_dir_struct)
put name [FRONTEND] from [frontend] into dir struct
[2013/12/20 20:38:30.201004, 6] …/source3/smbd/dir.c:913(dptr_fill)
fill on key 2 dirptr 0x7fa8c90972a0 now at -620357536
[2013/12/20 20:38:30.201046, 4] …/source3/smbd/reply.c:1799(reply_search)
SMBsearch mask=???.??? path=. dtype=22 nument=1 of 1
[2013/12/20 20:38:30.201089, 5] …/source3/lib/util.c:168(show_msg)
[2013/12/20 20:38:30.201114, 5] …/source3/lib/util.c:178(show_msg)
size=83
smb_com=0x81
smb_rcls=0
smb_reh=0
smb_err=0
smb_flg=128
smb_flg2=2
smb_tid=25218
smb_pid=1467
smb_uid=22320
smb_mid=0
smt_wct=1
smb_vwv 0]= 1 (0x1)
smb_bcc=46
[2013/12/20 20:38:30.204089, 6] …/source3/smbd/process.c:1793(process_smb)
got message type 0x0 of len 0x41
[2013/12/20 20:38:30.204167, 3] …/source3/smbd/process.c:1795(process_smb)
Transaction 9 of length 69 (0 toread)
[2013/12/20 20:38:30.204228, 5] …/source3/lib/util.c:168(show_msg)
[2013/12/20 20:38:30.204252, 5] …/source3/lib/util.c:178(show_msg)
size=65
smb_com=0x81
smb_rcls=0
smb_reh=0
smb_err=0
smb_flg=0
smb_flg2=0
smb_tid=25218
smb_pid=1467
smb_uid=22320
smb_mid=0
smt_wct=2
smb_vwv 0]= 1 (0x1)
smb_vwv 1]= 46 (0x2E)
smb_bcc=26
[2013/12/20 20:38:30.204451, 3] …/source3/smbd/process.c:1398(switch_message)
switch message SMBsearch (pid 25114) conn 0x7fa8c909bb40
[2013/12/20 20:38:30.204489, 4] …/source3/smbd/uid.c:384(change_to_user)
Skipping user change - already user
[2013/12/20 20:38:30.204534, 3] …/source3/smbd/dir.c:944(dptr_fetch)
fetching dirptr 2 for path . at offset -620357536
[2013/12/20 20:38:30.204572, 4] …/source3/smbd/reply.c:1674(reply_search)
dptr_num is 2
[2013/12/20 20:38:30.204605, 8] …/source3/smbd/reply.c:1708(reply_search)
dirpath=<.> dontdescend=<>
[2013/12/20 20:38:30.204669, 6] …/source3/smbd/dir.c:1051(smbd_dirptr_get_entry)
smbd_dirptr_get_entry: dirptr 0x7fa8c909c3d0 now at offset 478943648076404832
[2013/12/20 20:38:30.204713, 8] …/source3/smbd/dosmode.c:698(dos_mode)
dos_mode: ./frontend
[2013/12/20 20:38:30.204750, 8] …/source3/smbd/dosmode.c:237(dos_mode_from_sbuf)
dos_mode_from_sbuf returning d
[2013/12/20 20:38:30.204785, 8] …/source3/smbd/dosmode.c:31(dos_mode_debug_print)
dos_mode returning d
[2013/12/20 20:38:30.204826, 3] …/source3/smbd/dir.c:1134(smbd_dirptr_get_entry)
smbd_dirptr_get_entry mask=???.???] found ./frontend fname=frontend (frontend)
[2013/12/20 20:38:30.204868, 8] …/source3/smbd/dir.c:123(make_dir_struct)
put name [FRONTEND] from [frontend] into dir struct

On 12/20/2013 1:56 PM, cgberlin wrote:
>
> Hello!
>
> I have a small network with a SuSe Server (now Version 13.1) and a old
> PC with DOS 6.22 and the MSClient SW. With the old Suse System (12.1)
> everything works fine with the client. The DOS-PC have access to the
> shares.
> Now I have update the Server to 13.1 and samba 4.1. The DOS Client can
> login and seen the shares of the samba server. But if the Clieent try to
> read or write something from the share it don’t work. e.g. if Itry a
> listing with “dir f:” the client print out the name of the first Folder
> in a endless loop. I activate the debug mode an see in the smb.log this
> a lot of times if the client try to list the directory frontend (see
> also the logfile below)
> Use someone else thes combination (samab 4.1 and MSClient) and have the
> same problmes? Can I fix it with setting in the smb.conf?
>
> Thanks for help
> Christian
>
<snip>
>
>
cgberlin;

It would help if you posted the contents of /etc/samba/smb.conf. There are a couple of items that could explain your
problem.


P.V.
“We’re all in this together, I’m pulling for you” Red Green

Oh, forgot, sorry. The global part and the part of the share, which the dos client try to use.

[global]
lanman auth = yes
client lanman auth = yes
load printers = no
include = /etc/samba/dhcp.conf
socket options = TCP_NODELAY
logon drive = P:
interfaces = eth0 192.168.10.0/255.255.255.0
domain master = Yes
map to guest = Bad User
passdb backend = tdbsam
logon home = \%L%U.9xprofile
wins support = Yes
writeable = yes
local master = Yes
workgroup = GOSSLAR
logon path = \%L\profiles.msprofile
os level = 65
security = user
usershare allow guests = No
preferred master = Yes
add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$
domain logons = Yes
bind interfaces only = yes
map acl inherit = No
store dos attributes = No
read only = No

log level = 9

[maus]
comment = Maus
writable = yes
create mode = 775
path = /userdata/maus
directory mode = 775
inherit acls = Yes
browseable = Yes
create mask = 775
directory mask = 775
dos filemode = Yes
dos filetime resolution = Yes
dos filetimes = Yes
read only = No

Please use CODE tags, the # in the editor. Formatted output is virtually unreadable.

sorry again, I hope now it’s correct.

smb.conf


[global]
    lanman auth = yes
    client lanman auth = yes
    load printers = no
    include = /etc/samba/dhcp.conf
    socket options = TCP_NODELAY
    logon drive = P:
    interfaces = eth0 192.168.10.0/255.255.255.0
    domain master = Yes
    map to guest = Bad User
    passdb backend = tdbsam
    logon home = \\%L\%U\.9xprofile
    wins support = Yes
    writeable = yes
    local master = Yes
    workgroup = GOSSLAR
    logon path = \\%L\profiles\.msprofile
    os level = 65
    security = user
    usershare allow guests = No
    preferred master = Yes
    add machine script = /usr/sbin/useradd  -c Machine -d /var/lib/nobody -s /bin/false %m$
    domain logons = Yes
    bind interfaces only = yes
    map acl inherit = No
    store dos attributes = No
    read only = No
#    log level = 9


[maus]
    comment = Maus
    writable = yes
    create mode = 775
    path = /userdata/maus
    directory mode = 775
    inherit acls = Yes
    browseable = Yes
    create mask = 775
    directory mask = 775
    dos filemode = Yes
    dos filetime resolution = Yes
    dos filetimes = Yes
    read only = No

And the logfile


[2013/12/20 20:38:30.196839,  6] ../source3/smbd/dir.c:1051(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: dirptr 0x7fa8c909c3d0 now at offset 478943648076404832
[2013/12/20 20:38:30.196883,  8] ../source3/smbd/dosmode.c:698(dos_mode)
  dos_mode: ./frontend
[2013/12/20 20:38:30.196921,  8] ../source3/smbd/dosmode.c:237(dos_mode_from_sbuf)
  dos_mode_from_sbuf returning d
[2013/12/20 20:38:30.196956,  8] ../source3/smbd/dosmode.c:31(dos_mode_debug_print)
  dos_mode returning d
[2013/12/20 20:38:30.196999,  3] ../source3/smbd/dir.c:1134(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry mask=????????.???] found ./frontend fname=frontend (frontend)
[2013/12/20 20:38:30.197042,  8] ../source3/smbd/dir.c:123(make_dir_struct)
  put name [FRONTEND] from [frontend] into dir struct
[2013/12/20 20:38:30.197077,  6] ../source3/smbd/dir.c:913(dptr_fill)
  fill on key 2 dirptr 0x7fa8c90972a0 now at -620357536
[2013/12/20 20:38:30.197112,  4] ../source3/smbd/reply.c:1799(reply_search)
  SMBsearch mask=????????.??? path=. dtype=22 nument=1 of 1
[2013/12/20 20:38:30.197147,  5] ../source3/lib/util.c:168(show_msg)
[2013/12/20 20:38:30.197168,  5] ../source3/lib/util.c:178(show_msg)
  size=83
  smb_com=0x81
  smb_rcls=0
  smb_reh=0
  smb_err=0
  smb_flg=128
  smb_flg2=2
  smb_tid=25218
  smb_pid=1467
  smb_uid=22320
  smb_mid=0
  smt_wct=1
  smb_vwv 0]=    1 (0x1)
  smb_bcc=46
[2013/12/20 20:38:30.200091,  6] ../source3/smbd/process.c:1793(process_smb)
  got message type 0x0 of len 0x41
[2013/12/20 20:38:30.200156,  3] ../source3/smbd/process.c:1795(process_smb)
  Transaction 8 of length 69 (0 toread)
[2013/12/20 20:38:30.200181,  5] ../source3/lib/util.c:168(show_msg)
[2013/12/20 20:38:30.200191,  5] ../source3/lib/util.c:178(show_msg)
  size=65
  smb_com=0x81
  smb_rcls=0
  smb_reh=0
  smb_err=0
  smb_flg=0
  smb_flg2=0
  smb_tid=25218
  smb_pid=1467
  smb_uid=22320
  smb_mid=0
  smt_wct=2
  smb_vwv 0]=    1 (0x1)
  smb_vwv 1]=   46 (0x2E)
  smb_bcc=26
[2013/12/20 20:38:30.200443,  3] ../source3/smbd/process.c:1398(switch_message)
  switch message SMBsearch (pid 25114) conn 0x7fa8c909bb40
[2013/12/20 20:38:30.200493,  4] ../source3/smbd/uid.c:384(change_to_user)
  Skipping user change - already user
[2013/12/20 20:38:30.200553,  3] ../source3/smbd/dir.c:944(dptr_fetch)
  fetching dirptr 2 for path . at offset -620357536
[2013/12/20 20:38:30.200601,  4] ../source3/smbd/reply.c:1674(reply_search)
  dptr_num is 2
[2013/12/20 20:38:30.200643,  8] ../source3/smbd/reply.c:1708(reply_search)
  dirpath=<.> dontdescend=<>
[2013/12/20 20:38:30.200720,  6] ../source3/smbd/dir.c:1051(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: dirptr 0x7fa8c909c3d0 now at offset 478943648076404832
[2013/12/20 20:38:30.200774,  8] ../source3/smbd/dosmode.c:698(dos_mode)
  dos_mode: ./frontend
[2013/12/20 20:38:30.200819,  8] ../source3/smbd/dosmode.c:237(dos_mode_from_sbuf)
  dos_mode_from_sbuf returning d
[2013/12/20 20:38:30.200861,  8] ../source3/smbd/dosmode.c:31(dos_mode_debug_print)
  dos_mode returning d
[2013/12/20 20:38:30.200911,  3] ../source3/smbd/dir.c:1134(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry mask=????????.???] found ./frontend fname=frontend (frontend)
[2013/12/20 20:38:30.200961,  8] ../source3/smbd/dir.c:123(make_dir_struct)
  put name [FRONTEND] from [frontend] into dir struct
[2013/12/20 20:38:30.201004,  6] ../source3/smbd/dir.c:913(dptr_fill)
  fill on key 2 dirptr 0x7fa8c90972a0 now at -620357536
[2013/12/20 20:38:30.201046,  4] ../source3/smbd/reply.c:1799(reply_search)
  SMBsearch mask=????????.??? path=. dtype=22 nument=1 of 1
[2013/12/20 20:38:30.201089,  5] ../source3/lib/util.c:168(show_msg)
[2013/12/20 20:38:30.201114,  5] ../source3/lib/util.c:178(show_msg)
  size=83
  smb_com=0x81
  smb_rcls=0
  smb_reh=0
  smb_err=0
  smb_flg=128
  smb_flg2=2
  smb_tid=25218
  smb_pid=1467
  smb_uid=22320
  smb_mid=0
  smt_wct=1
  smb_vwv 0]=    1 (0x1)
  smb_bcc=46
[2013/12/20 20:38:30.204089,  6] ../source3/smbd/process.c:1793(process_smb)
  got message type 0x0 of len 0x41
[2013/12/20 20:38:30.204167,  3] ../source3/smbd/process.c:1795(process_smb)
  Transaction 9 of length 69 (0 toread)
[2013/12/20 20:38:30.204228,  5] ../source3/lib/util.c:168(show_msg)
[2013/12/20 20:38:30.204252,  5] ../source3/lib/util.c:178(show_msg)
  size=65
  smb_com=0x81
  smb_rcls=0
  smb_reh=0
  smb_err=0
  smb_flg=0
  smb_flg2=0
  smb_tid=25218
  smb_pid=1467
  smb_uid=22320
  smb_mid=0
  smt_wct=2
  smb_vwv 0]=    1 (0x1)
  smb_vwv 1]=   46 (0x2E)
  smb_bcc=26
[2013/12/20 20:38:30.204451,  3] ../source3/smbd/process.c:1398(switch_message)
  switch message SMBsearch (pid 25114) conn 0x7fa8c909bb40
[2013/12/20 20:38:30.204489,  4] ../source3/smbd/uid.c:384(change_to_user)
  Skipping user change - already user
[2013/12/20 20:38:30.204534,  3] ../source3/smbd/dir.c:944(dptr_fetch)
  fetching dirptr 2 for path . at offset -620357536
[2013/12/20 20:38:30.204572,  4] ../source3/smbd/reply.c:1674(reply_search)
  dptr_num is 2
[2013/12/20 20:38:30.204605,  8] ../source3/smbd/reply.c:1708(reply_search)
  dirpath=<.> dontdescend=<>
[2013/12/20 20:38:30.204669,  6] ../source3/smbd/dir.c:1051(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry: dirptr 0x7fa8c909c3d0 now at offset 478943648076404832
[2013/12/20 20:38:30.204713,  8] ../source3/smbd/dosmode.c:698(dos_mode)
  dos_mode: ./frontend
[2013/12/20 20:38:30.204750,  8] ../source3/smbd/dosmode.c:237(dos_mode_from_sbuf)
  dos_mode_from_sbuf returning d
[2013/12/20 20:38:30.204785,  8] ../source3/smbd/dosmode.c:31(dos_mode_debug_print)
  dos_mode returning d
[2013/12/20 20:38:30.204826,  3] ../source3/smbd/dir.c:1134(smbd_dirptr_get_entry)
  smbd_dirptr_get_entry mask=????????.???] found ./frontend fname=frontend (frontend)
[2013/12/20 20:38:30.204868,  8] ../source3/smbd/dir.c:123(make_dir_struct)
  put name [FRONTEND] from [frontend] into dir struct

On 12/21/2013 8:36 AM, cgberlin wrote:
>
> Knurpht;2610356 Wrote:
>> Please use CODE tags, the # in the editor. Formatted output is virtually
>> unreadable.
>
> sorry again, I hope now it’s correct.
>
> smb.conf
>
> Code:
> --------------------
>
> [global]
> lanman auth = yes
> client lanman auth = yes
> load printers = no
> include = /etc/samba/dhcp.conf
> socket options = TCP_NODELAY
> logon drive = P:
> interfaces = eth0 192.168.10.0/255.255.255.0
> domain master = Yes
> map to guest = Bad User
> passdb backend = tdbsam
> logon home = \%L%U.9xprofile
> wins support = Yes
> writeable = yes
> local master = Yes
> workgroup = GOSSLAR
> logon path = \%L\profiles.msprofile
> os level = 65
> security = user
> usershare allow guests = No
> preferred master = Yes
> add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$
> domain logons = Yes
> bind interfaces only = yes
> map acl inherit = No
> store dos attributes = No
> read only = No
> # log level = 9
>
>
> [maus]
> comment = Maus
> writable = yes
> create mode = 775
> path = /userdata/maus
> directory mode = 775
> inherit acls = Yes
> browseable = Yes
> create mask = 775
> directory mask = 775
> dos filemode = Yes
> dos filetime resolution = Yes
> dos filetimes = Yes
> read only = No
>
> --------------------
>
>
<snip>
cgberlin;

Nothing jumps to me as a problem with your smb.conf. Just to check, have you tried disabling AppArmor? Do other
clients have a problem connecting? If you did a clean install of 13.1, a new domain SID would be created. I don’t
think that a SID error would cause the symptoms you described. As support for MSDOS ended a number of years ago, I
doubt Samba4 was ever tested against DOS clients.


P.V.
“We’re all in this together, I’m pulling for you” Red Green

AppAmor must I check, but no other Client (Windows7&8) have a problem. And the DOS Client can also connect and see the shares. The Installation is an update from Suse 12.3. And yes, I also think that this is a configuration, which ias today very rare.
Thanks for help.

Christian

That could be using cached information from before.

Probably “smbd” is not running.

My guess: Bug 856651 - Update to 4.1.3-3.12.1 broken. Samba cannot write its PID file anymore

What I did, is set “apparmor” to complain on “smbd” and “nmbd”. That “fixed” the problem. The only complaint logged was for “nmbd”, so switching “nmbd” to complain may be sufficient. I think “nmbd” starts first, and if it can create the needed directory, then “smbd” will also be able to start.

Hopefully, there will be a fix soon, and then I can switch “apparmor” back to deny mode.

From your description and based on general File Sharing (not specific to SAMBA),

Your Share permissions are correct (ie SAMBA) but your file permissions are preventing individual files from being read.

So, for example…
Have you opened up your file permissions to “Everyone Read/Write” ? Maybe even adding execute if you want a file to be executable without downloading?
Otherwise default file permissions likely require Root or a User account on the Server for access.

If you <properly> configure auth permissions at the Share level (SAMBA) then it can be OK to open up file permissions as I described.
But, if you configure your Share permissions to be completely open, then you should configure permissions on the files themselves (most typically using Network Security).
Although complex you can also configure <both> Share and File permissions.
But you should <never> configure unlimited access at both the Share and File permissions.

HTH,
TSU

Thanks all. I check something else (create modes etc.) The DOS cliente can create/read/write dir & files in the shares. That works fine, but all functions, which list the directory (maybe copy/dir) runs in a endless loop. I think, this is a samba bug, because every time I see something like this in the log.smb:

[2013/12/20 20:38:30.197077,  6] ../source3/smbd/dir.c:913(dptr_fill)
  fill on key 2 dirptr 0x7fa8c90972a0 now at -620357536

Maybe in this functions something went wrong (negativ pointer?). And I see this negative value only in the communication from
the DOS Client.

Christian

FYI
This is (was) an bug in samba https://bugzilla.samba.org/show_bug.cgi?id=2662
It’s fixed now and I wait for the next samba (and Suse Samba) Release.
Thanks for the help again.

Christian