Hi out there,
we have detected a bug in Samba-2.2.5, full details
are in the attached files, but apparently the follwing snippet
is the most important part of it:
[common]
comment = Common Tree Rev 1.3
path = /var/samba/common/%a
msdfs root = true
read only = no
public = no
browseable = yes
create mode = 0775
force directory mode = 2770
veto files = /.hidden/
invalid users = root
If I use this share on a Windows-NT client (Service Pack 6) and try
to create a new directory, it fails, since the server process tries an
mkdir <servername>/<sharename>/<path-to-newdir>
Removal of the parameter "msdfs root" and a Windows-NT-Reboot later,
the problem vanishes.
Win2k and WinXP behave o.k. Win95 too, but it's not msdfs-aware (At least
not
with this samba). Win98 shows the same Problems as NT and is msdfs aware.
The following files are attached:
configure.cmd - The configure command used to compile on Solaris 8
smb.conf-tom - The main smb.conf
smb.conf.head - A file included in smb.conf
strace.failure - A truss output from another server named info, that
shows the failing actions
I have a workaround, thus i'm not in severe trouble, but the strace/truss
makes me quite unhappy, since it unveals a very odd behaviour of the
Samba-Server.
Since I am looking forward to a holiday, please mailto:edv-techops@elmos.de
if you prefer mailing. (I am included in this list) Nevertheless the
Mailing list is o.k. since my colleagues access it too.
Regards
Gunther
--
Dr. Gunther Hess Elmos Semiconductor AG
Tel.: ++49 +231 7549-520 Heinrich Hertz Str. 1
Fax: ++49 +231 7549-109 D-44227 Dortmund
WWW: http://www.elmos.de Opinions are strictly of my own
-------------- next part --------------
./configure --prefix=/opt/samba-2.2.5 --localstatedir=/var/samba \
--with-configdir=/var/samba/etc --with-automount --with-syslog \
--with-quotas --with-utmp --with-msdfs --with-acl-support \
--with-privatedir=/var/samba/private --with-piddir=/var/samba/locks
-------------- next part --------------
# info:/etc/smb.conf - Konfiguration eines Samba-Domain-Clients
# $Id: smb.conf-info,v 1.10 2002/08/07 14:44:46 root Exp $
#======================= Global Settings ====================================
[global]
include = /var/samba/etc/smb.conf.head
interfaces = 192.168.177.107/24
netbios name = tom
log file = /var/samba/tom/log/%M.%m
lock directory = /var/samba/tom/locks
pid directory = /var/samba/tom/locks
smb passwd file = /var/samba/tom/private/smbpasswd
#============================ Share Definitions =============================
; Ein Heimatverzeichnisdienst mit benutzerunabh?ngigen Namen
[homes]
comment = %u PC-Heimatverzeichnis
; path = /pchome/%u
browseable = yes
read only = no
create mask = 0775
force create mode = 0660
directory mask = 0775
force directory mode = 2770
invalid users = root
[tmp]
comment = Transient file space
path = /var/tmp
read only = no
public = no
browseable = no
create mode = 0775
force directory mode = 2770
veto files = /.hidden/
invalid users = root
[run]
comment = Variable Daten aus dem common-Tree
path = /common/run
read only = no
public = no
browseable = no
create mask = 0775
force create mode = 0660
directory mask = 0775
force directory mode = 2770
invalid users = root
[common]
comment = Common Tree Rev 1.3
; path = /var/samba/common/%a
path = /common
msdfs root = true
read only = no
public = no
browseable = yes
create mode = 0775
force directory mode = 2770
veto files = /.hidden/
invalid users = root
-------------- next part --------------
# nfs3:/etc/smb.conf.head - Gemeinsamer teil der samba3-config
# $Id: smb.conf.head,v 1.6 2002/08/06 00:06:25 root Exp $
#======================= Global Settings ====================================
[global]
workgroup = hess
max log size = 2500
socket options = TCP_NODELAY
keep alive = 10
log level = 1
syslog = 1
utmp = true
utmp directory = /var/adm
time server = yes
host msdfs = true
bind interfaces only = true
remote announce = 192.168.177.103/hess
load printers = false
encrypt passwords = Yes
password server = violine
security = server
map to guest = nobody
os level = 64
local master = yes
domain master = no
preferred master = yes
wins server = violine
wins support = no
wins proxy = no
default case = lower
preserve case = false
short preserve case = false
mangle case = no
case sensitive = no
oplocks = false
-------------- next part --------------
*** SUID: ruid/euid/suid = 0 / 0 / 16152 ***
*** SGID: rgid/egid/sgid = 0 / 0 / 160 ***
poll(0xFFBEF3D0, 3, 60000) (sleeping...)
poll(0xFFBEF3D0, 3, 60000) = 1
read(12, "\0\0\0 b", 4) = 4
read(12, "FF S M B\b\0\0\0\0180310".., 98) = 98
getuid() = 0 [0]
getgid() = 0 [0]
setgroups(5, 0x00280338) = 0
setregid(-1, 160) = 0
getgid() = 0 [160]
setreuid(-1, 16152) = 0
getuid() = 0 [16152]
lstat64("/var/samba/common/winnt/run/data/fracas/hs-handler/logfiles/neuer
ordner", 0xFFBEDC88) Err#2 ENOENT
lstat64("/var/samba/common/winnt/run/data/fracas/hs-handler/logfiles",
0xFFBEDC88) = 0
stat64("run/data/fracas/hs-handler/logfiles", 0xFFBEEF70) = 0
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEEF70)
Err#2 ENOENT
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEEF70)
Err#2 ENOENT
open64("run/data/fracas/hs-handler/logfiles", O_RDONLY|O_NDELAY) = 25
fcntl(25, F_SETFD, 0x00000001) = 0
fstat64(25, 0xFFBEE118) = 0
getdents64(25, 0x0029A5D0, 1048) = 896
getdents64(25, 0x0029A5D0, 1048) = 88
getdents64(25, 0x0029A5D0, 1048) = 0
close(25) = 0
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEF080)
Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\b :\0\0".., 39, 0) = 39
poll(0xFFBEF3D0, 3, 60000) = 1
read(12, "\0\0\0 b", 4) = 4
read(12, "FF S M B10\0\0\0\0180310".., 98) = 98
lstat64("/var/samba/common/winnt/run/data/fracas/hs-handler/logfiles/neuer
ordner", 0xFFBEDC88) Err#2 ENOENT
lstat64("/var/samba/common/winnt/run/data/fracas/hs-handler/logfiles",
0xFFBEDC88) = 0
stat64("run/data/fracas/hs-handler/logfiles", 0xFFBEEF70) = 0
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEEF70)
Err#2 ENOENT
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEEF70)
Err#2 ENOENT
open64("run/data/fracas/hs-handler/logfiles", O_RDONLY|O_NDELAY) = 25
fcntl(25, F_SETFD, 0x00000001) = 0
fstat64(25, 0xFFBEE118) = 0
getdents64(25, 0x0029A5D0, 1048) = 896
getdents64(25, 0x0029A5D0, 1048) = 88
getdents64(25, 0x0029A5D0, 1048) = 0
close(25) = 0
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEF080)
Err#2 ENOENT
send(12, "\0\0\0 #FF S M B10 :\0\0".., 39, 0) = 39
poll(0xFFBEF3D0, 3, 60000) = 1
read(12, "\0\0\0 b", 4) = 4
read(12, "FF S M B\b\0\0\0\0180310".., 98) = 98
lstat64("/var/samba/common/winnt/run/data/fracas/hs-handler/logfiles/neuer
ordner", 0xFFBEDC88) Err#2 ENOENT
lstat64("/var/samba/common/winnt/run/data/fracas/hs-handler/logfiles",
0xFFBEDC88) = 0
stat64("run/data/fracas/hs-handler/logfiles", 0xFFBEEF70) = 0
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEEF70)
Err#2 ENOENT
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEEF70)
Err#2 ENOENT
open64("run/data/fracas/hs-handler/logfiles", O_RDONLY|O_NDELAY) = 25
fcntl(25, F_SETFD, 0x00000001) = 0
fstat64(25, 0xFFBEE118) = 0
getdents64(25, 0x0029A5D0, 1048) = 896
getdents64(25, 0x0029A5D0, 1048) = 88
getdents64(25, 0x0029A5D0, 1048) = 0
close(25) = 0
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEF080)
Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\b 4\0\0".., 39, 0) = 39
poll(0xFFBEF3D0, 3, 60000) = 1
read(12, "\0\0\0 b", 4) = 4
read(12, "FF S M B\0\0\0\0\0180310".., 98) = 98
stat64("info", 0xFFBEEEF0) = 0
stat64("info/common/run/data/fracas/hs-handler/logfiles/neuer ordner",
0xFFBEEEF0) Err#2 ENOENT
stat64("info/common", 0xFFBEEEF0) Err#2 ENOENT
open64("info", O_RDONLY|O_NDELAY) = 25
fcntl(25, F_SETFD, 0x00000001) = 0
fstat64(25, 0xFFBEE098) = 0
getdents64(25, 0x0029A5D0, 1048) = 248
getdents64(25, 0x0029A5D0, 1048) = 0
close(25) = 0
mkdir("info/common/run/data/fracas/hs-handler/logfiles/neuer ordner",
02775) Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\0 :\0\0".., 39, 0) = 39
poll(0xFFBEF3D0, 3, 60000) = 1
read(12, "\0\0\0 5", 4) = 4
read(12, "FF S M B\0\0\0\0\0180310".., 53) = 53
stat64("info", 0xFFBEEEF0) = 0
stat64("info/common/run", 0xFFBEEEF0) Err#2 ENOENT
stat64("info/common", 0xFFBEEEF0) Err#2 ENOENT
open64("info", O_RDONLY|O_NDELAY) = 25
fcntl(25, F_SETFD, 0x00000001) = 0
fstat64(25, 0xFFBEE098) = 0
getdents64(25, 0x0029A5D0, 1048) = 248
getdents64(25, 0x0029A5D0, 1048) = 0
close(25) = 0
mkdir("info/common/run", 02775) Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\0 :\0\0".., 39, 0) = 39
poll(0xFFBEF3D0, 3, 60000) = 1
read(12, "\0\0\0 :", 4) = 4
read(12, "FF S M B\0\0\0\0\0180310".., 58) = 58
stat64("info", 0xFFBEEEF0) = 0
stat64("info/common/run/data", 0xFFBEEEF0) Err#2 ENOENT
stat64("info/common", 0xFFBEEEF0) Err#2 ENOENT
open64("info", O_RDONLY|O_NDELAY) = 25
fcntl(25, F_SETFD, 0x00000001) = 0
fstat64(25, 0xFFBEE098) = 0
getdents64(25, 0x0029A5D0, 1048) = 248
getdents64(25, 0x0029A5D0, 1048) = 0
close(25) = 0
mkdir("info/common/run/data", 02775) Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\0 :\0\0".., 39, 0) = 39
poll(0xFFBEF3D0, 3, 60000) = 1
read(12, "\0\0\0 A", 4) = 4
read(12, "FF S M B\0\0\0\0\0180310".., 65) = 65
stat64("info", 0xFFBEEEF0) = 0
stat64("info/common/run/data/fracas", 0xFFBEEEF0) Err#2 ENOENT
stat64("info/common", 0xFFBEEEF0) Err#2 ENOENT
open64("info", O_RDONLY|O_NDELAY) = 25
fcntl(25, F_SETFD, 0x00000001) = 0
fstat64(25, 0xFFBEE098) = 0
getdents64(25, 0x0029A5D0, 1048) = 248
getdents64(25, 0x0029A5D0, 1048) = 0
close(25) = 0
mkdir("info/common/run/data/fracas", 02775) Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\0 :\0\0".., 39, 0) = 39
poll(0xFFBEF3D0, 3, 60000) = 1
read(12, "\0\0\0 L", 4) = 4
read(12, "FF S M B\0\0\0\0\0180310".., 76) = 76
stat64("info", 0xFFBEEEF0) = 0
stat64("info/common/run/data/fracas/hs-handler", 0xFFBEEEF0) Err#2
ENOENT
stat64("info/common", 0xFFBEEEF0) Err#2 ENOENT
open64("info", O_RDONLY|O_NDELAY) = 25
fcntl(25, F_SETFD, 0x00000001) = 0
fstat64(25, 0xFFBEE098) = 0
getdents64(25, 0x0029A5D0, 1048) = 248
getdents64(25, 0x0029A5D0, 1048) = 0
close(25) = 0
mkdir("info/common/run/data/fracas/hs-handler", 02775) Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\0 :\0\0".., 39, 0) = 39
poll(0xFFBEF3D0, 3, 60000) = 1
read(12, "\0\0\0 b", 4) = 4
read(12, "FF S M B\0\0\0\0\0180310".., 98) = 98
stat64("info", 0xFFBEEEF0) = 0
stat64("info/common/run/data/fracas/hs-handler/logfiles/neuer ordner",
0xFFBEEEF0) Err#2 ENOENT
stat64("info/common", 0xFFBEEEF0) Err#2 ENOENT
open64("info", O_RDONLY|O_NDELAY) = 25
fcntl(25, F_SETFD, 0x00000001) = 0
fstat64(25, 0xFFBEE098) = 0
getdents64(25, 0x0029A5D0, 1048) = 248
getdents64(25, 0x0029A5D0, 1048) = 0
close(25) = 0
mkdir("info/common/run/data/fracas/hs-handler/logfiles/neuer ordner",
02775) Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\0 :\0\0".., 39, 0) = 39
poll(0xFFBEF3D0, 3, 60000) (sleeping...)