[Samba] Re: AW: Unable to open configuration file "/etc/smb.conf" (or whereve r i specify)

nero one nero_oner at yahoo.com
Tue Aug 13 08:34:01 GMT 2002


Hi Uli, 

   I'm not really sure what i'm looking for here, but here's the result of the cat w/strace.

Seems its still return with result == 0?

open("smb.conf", O_RDONLY|O_LARGEFILE)  = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=1243, ...}) = 0
brk(0x804e000)                          = 0x804e000

[root][~]: cd /etc/samba/
[root][/etc/samba]: strace cat smb.conf
execve("/bin/cat", ["cat", "smb.conf"], [/* 27 vars */]) = 0
uname({sys="Linux", node="maddog1", ...}) = 0
brk(0)                                  = 0x804b49c
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=10769, ...}) = 0
old_mmap(NULL, 10769, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40019000
close(3)                                = 0
open("/lib/librt.so.1", O_RDONLY)       = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`#\0\000"..., 1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=154599, ...}) = 0
old_mmap(NULL, 74900, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4001c000
mprotect(0x40023000, 46228, PROT_NONE)  = 0
old_mmap(0x40023000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x6000) = 0x40023000
old_mmap(0x40024000, 42132, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) =
0x40024000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\314\316"..., 1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=5077798, ...}) = 0
old_mmap(NULL, 1351940, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4002f000
mprotect(0x4016f000, 41220, PROT_NONE)  = 0
old_mmap(0x4016f000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x13f000) = 0x4016f000
old_mmap(0x40176000, 12548, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) =
0x40176000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\314\316"..., 1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=5077798, ...}) = 0
close(3)                                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360Q\0"..., 1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=482043, ...}) = 0
old_mmap(NULL, 105564, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4017a000
mprotect(0x4018c000, 31836, PROT_NONE)  = 0
old_mmap(0x4018c000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x11000) = 0x4018c000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\314\316"..., 1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=5077798, ...}) = 0
close(3)                                = 0
mprotect(0x4002f000, 1310720, PROT_READ|PROT_WRITE) = 0
mprotect(0x4002f000, 1310720, PROT_READ|PROT_EXEC) = 0
munmap(0x40019000, 10769)               = 0
getpid()                                = 735
getpid()                                = 735
rt_sigaction(SIGRT_0, {0x40185958, [], 0x4000000}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x40184740, [], 0x4000000}, NULL, 8) = 0
rt_sigaction(SIGRT_2, {0x40185a30, [], 0x4000000}, NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [RT_0], NULL, 8) = 0
_sysctl({{CTL_KERN, KERN_VERSION}, 2, 0xbffff68c, 31, (nil), 0}) = 0
brk(0)                                  = 0x804b49c
brk(0x804b4cc)                          = 0x804b4cc
brk(0x804c000)                          = 0x804c000
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2567, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40019000
read(3, "# Locale name alias data base.\n#"..., 4096) = 2567
brk(0x804d000)                          = 0x804d000
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x40019000, 4096)                = 0
open("/usr/lib/locale/en_US/LC_IDENTIFICATION", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=244, ...}) = 0
old_mmap(NULL, 244, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40019000
close(3)                                = 0
open("/usr/lib/locale/en_US/LC_MEASUREMENT", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=13, ...}) = 0
old_mmap(NULL, 13, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001a000
close(3)                                = 0
open("/usr/lib/locale/en_US/LC_TELEPHONE", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=49, ...}) = 0
old_mmap(NULL, 49, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001b000
close(3)                                = 0
open("/usr/lib/locale/en_US/LC_ADDRESS", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=145, ...}) = 0
old_mmap(NULL, 145, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40194000
close(3)                                = 0
open("/usr/lib/locale/en_US/LC_NAME", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=67, ...}) = 0
old_mmap(NULL, 67, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40195000
close(3)                                = 0
open("/usr/lib/locale/en_US/LC_PAPER", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=24, ...}) = 0
old_mmap(NULL, 24, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40196000
close(3)                                = 0
open("/usr/lib/locale/en_US/LC_MESSAGES", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
close(3)                                = 0
open("/usr/lib/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=42, ...}) = 0
old_mmap(NULL, 42, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40197000
close(3)                                = 0
open("/usr/lib/locale/en_US/LC_MONETARY", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=276, ...}) = 0
old_mmap(NULL, 276, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40198000
close(3)                                = 0
open("/usr/lib/locale/en_US/LC_COLLATE", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=21484, ...}) = 0
old_mmap(NULL, 21484, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40199000
close(3)                                = 0
open("/usr/lib/locale/en_US/LC_TIME", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2441, ...}) = 0
old_mmap(NULL, 2441, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4019f000
close(3)                                = 0
open("/usr/lib/locale/en_US/LC_NUMERIC", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=44, ...}) = 0
old_mmap(NULL, 44, PROT_READ, MAP_PRIVATE, 3, 0) = 0x401a0000
close(3)                                = 0
open("/usr/lib/locale/en_US/LC_CTYPE", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=104804, ...}) = 0
old_mmap(NULL, 104804, PROT_READ, MAP_PRIVATE, 3, 0) = 0x401a1000
close(3)                                = 0
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
open("smb.conf", O_RDONLY|O_LARGEFILE)  = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=1243, ...}) = 0
brk(0x804e000)                          = 0x804e000
read(3, "[global]\n\n   workgroup = WORKGRP"..., 512) = 512
write(1, "[global]\n\n   workgroup = WORKGRP"..., 512[global]

   workgroup = WORKGRP
   server string = SerVer
   hosts allow = 10.0.0. 0.
   load printers = yes
   printcap name = /etc/printcap
   printing = lprng
   max log size = 500
   security = user
   socket options = TCP_NODELAY
  interfaces = 10.0.0.0/8
   local master = yes
   os level = 33
   domain master = yes
   preferred master = yes
   domain logons = yes
   dns proxy = no

[homes]
   comment = Home Directories
   browseable = no
   writable = yes

[printers]
   comment = Network Printers
) = 512
read(3, "   path = /var/spool/samba\n   br"..., 512) = 512
write(1, "   path = /var/spool/samba\n   br"..., 512   path = /var/spool/samba
   browseable = no
   guest ok = no
   writable = no
   printable = yes

[myshare]
   comment = Common Storage
   path = /home/common
   valid users = user1 user2 user3 user4
   public = yes
   writable = yes
   printable = no
   create mask = 0775
   directory mask = 0775

[apache]
    comment = Apache tree
    guest account = apache
    path = /chroot/httpd/
    only guest = yes
    public = yes
    writable = yes
    printable = no
    create mask = 0775
    directory mask = 0) = 512
read(3, "775\n\n[clients]\n    comment = Cli"..., 512) = 219
write(1, "775\n\n[clients]\n    comment = Cli"..., 219775

[clients]
    comment = Client trees
    guest account = apache
    path = /home/clients
    only guest = yes
    public = yes
    writable = yes
    printable = no
    create mask = 0775
    directory mask = 0775
) = 219
read(3, "", 512)                        = 0
close(3)                                = 0
close(1)                                = 0
_exit(0)                                = ?

[root][/etc/samba]:


--- Uli Luckas <Uli.Luckas at abakusag.de> wrote:
> Hi,
> it looks like you have something really messed up on your system.
> The size of the file is 1243 bytes (from strace) but 0 bytes are being read.
> If you had no permission to read the strace would have looked like this:
> open("/etc/samba/smb.conf", O_RDONLY|O_LARGEFILE) = -1 EACCES (Permission
> denied)
> 
> A quick look at the source code reveals:
> /etc/samba/smb.conf is opened in file_load (lib/util_file.c) which is being
> called from OpenConfFile (param/params.c). Then fd_load tries to read the
> file into memory.
> "Unable to open configuration file" is only being printed if file_load
> returns NULL which is being called if fd_load returns NULL which it does as
> the read returns 0 instead of 1243 (strace).
> 
> This code is not verry complex but I really can't see how this can fail...
> May be your filesystem is broken. Can you "strace cat /etc/samba/smb.conf"
> and compare the open fstat and read calls?
> 
> char *fd_load(int fd, size_t *size)
> {
>         SMB_STRUCT_STAT sbuf;
>         char *p;
> 
>         if (sys_fstat(fd, &sbuf) != 0) return NULL;
> 
>         p = (char *)malloc(sbuf.st_size+1);
>         if (!p) return NULL;
> 
>         if (read(fd, p, sbuf.st_size) != sbuf.st_size) {
>                 SAFE_FREE(p);
>                 return NULL;
>         }
>         p[sbuf.st_size] = 0;
> 
>         if (size) *size = sbuf.st_size;
> 
>         return p;
> }
> 
> Uli


__________________________________________________
Do You Yahoo!?
HotJobs - Search Thousands of New Jobs
http://www.hotjobs.com



More information about the samba mailing list