[indiana-discuss] Samba (SUNWsmbs) in non-global zone on 2008.05

Greg opensolaris-forums at noogies.org
Mon Jun 2 16:55:42 PDT 2008


Hi guys,

my first post. Thanks to all for such a valuable resource that these forums are!

I'm having an issue running samba in a non-global zone on indiana.
It seems the smbd binary has some smarts to detect that its running in a non-global zone, and will not start.

# svcadm enable -r network/smb/server

# svcs network/smb/server
STATE          STIME    FMRI
maintenance    19:58:59 svc:/network/smb/server:default

# cat /var/svc/log/network-smb-server\:default.log 
[ Jun  2 19:58:57 Enabled. ]
[ Jun  2 19:58:59 Executing start method ("/usr/lib/smbsrv/smbd start"). ]
svc.startd could not set context for method: setppriv: Not owner
[ Jun  2 19:58:59 Method "start" exited with status 96. ]

I though this may be the issue with sys_smb privilege required to run in a zone, so I've added 'set limitpriv=default,sys_smb' to my zone configuration and rebooted it. Samba still will not start.

Trying to run the smbd process manually gives
# /usr/lib/smbsrv/smbd start 
smbd: non-global zones are not supported

and a truss
# truss /usr/lib/smbsrv/smbd start
execve("/usr/lib/smbsrv/smbd", 0x08047E98, 0x08047EA4)  argc = 2
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEFF0000
resolvepath("/usr/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
resolvepath("/usr/lib/smbsrv/smbd", "/usr/lib/smbsrv/smbd", 1023) = 20
sysconfig(_CONFIG_PAGESIZE)                     = 4096
xstat(2, "/usr/lib/smbsrv/smbd", 0x08047B48)    = 0
open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
xstat(2, "/usr/lib/smbsrv/libumem.so.1", 0x080472F8) Err#2 ENOENT
xstat(2, "/lib/libumem.so.1", 0x080472F8)       = 0
resolvepath("/lib/libumem.so.1", "/lib/libumem.so.1", 1023) = 17
open("/lib/libumem.so.1", O_RDONLY)             = 3
mmap(0x00010000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) = 0xFEFB0000
mmap(0x00010000, 208896, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEF70000
mmap(0xFEF70000, 94273, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEF70000
mmap(0xFEF98000, 19618, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 98304) = 0xFEF98000
mmap(0xFEF9D000, 22624, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFEF9D000
munmap(0xFEF88000, 65536)                       = 0
memcntl(0xFEF70000, 28732, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3)                                        = 0
xstat(2, "/usr/lib/smbsrv/libc.so.1", 0x080472F8) Err#2 ENOENT
xstat(2, "/lib/libc.so.1", 0x080472F8)          = 0
resolvepath("/lib/libc.so.1", "/lib/libc.so.1", 1023) = 14
open("/lib/libc.so.1", O_RDONLY)                = 3
mmap(0xFEFB0000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFEFB0000
mmap(0x00010000, 1380352, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEE10000
mmap(0xFEE10000, 1271415, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEE10000
mmap(0xFEF57000, 31538, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 1273856) = 0xFEF57000
mmap(0xFEF5F000, 5760, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFEF5F000
munmap(0xFEF47000, 65536)                       = 0
memcntl(0xFEE10000, 208308, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3)                                        = 0
mmap(0x00010000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEF90000
munmap(0xFEFB0000, 32768)                       = 0
getcontext(0x08047900)
getrlimit(RLIMIT_STACK, 0x080478F8)             = 0
getpid()                                        = 5329 [5328]
lwp_private(0, 1, 0xFEF92A00)                   = 0x000001C3
setustack(0xFEF92A60)
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEFB0000
sysconfig(_CONFIG_PAGESIZE)                     = 4096
sysi86(SI86FPSTART, 0xFEF5FC98, 0x0000133F, 0x00001F80) = 0x00000001
fxstat(2, -1, 0x08047D88)                       Err#9 EBADF
sysconfig(_CONFIG_NPROC_ONLN)                   = 4
issetugid()                                     = 0
issetugid()                                     = 0
brk(0x0807B000)                                 = 0
brk(0x0808B000)                                 = 0
getuid()                                        = 0 [0]
getpid()                                        = 5329 [5328]
open("/proc/5329/psinfo", O_RDONLY)             = 3
fstat64(3, 0x08047960)                          = 0
read(3, "\0\0\00201\0\0\0D114\0\0".., 336)      = 336
close(3)                                        = 0
mmap(0x00010000, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEDF0000
getuid()                                        = 0 [0]
getuid()                                        = 0 [0]
open64("/var/run/name_service_door", O_RDONLY)  = 3
fstat64(3, 0x080479C0)                          = 0
fcntl(3, F_SETFD, 0x00000001)                   = 0
door_info(3, 0xFEF5879C)                        = 0
door_call(3, 0x08047BB8)                        = 0
getuid()                                        = 0 [0]
getuid()                                        = 0 [0]
door_info(3, 0x08047B50)                        = 0
door_call(3, 0x08047BB8)                        = 0
xstat(2, "/usr/lib/smbsrv/libsmb.so.1", 0x08047478) = 0
resolvepath("/usr/lib/smbsrv/libsmb.so.1", "/usr/lib/smbsrv/libsmb.so.1", 1023) = 27
open("/usr/lib/smbsrv/libsmb.so.1", O_RDONLY)   = 4
mmap(0x00010000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 4, 0) = 0xFEDE0000
mmap(0x00010000, 245760, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEDA0000
mmap(0xFEDA0000, 138090, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 4, 0) = 0xFEDA0000
mmap(0xFEDD2000, 38241, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 4, 139264) = 0xFEDD2000
munmap(0xFEDC2000, 65536)                       = 0
memcntl(0xFEDA0000, 42176, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(4)                                        = 0
xstat(2, "/usr/lib/smbsrv/libc.so.1", 0x080473E8) Err#2 ENOENT
xstat(2, "/usr/lib/smbsrv/libnsl.so.1", 0x08047178) Err#2 ENOENT
xstat(2, "/lib/libnsl.so.1", 0x08047178)        = 0
resolvepath("/lib/libnsl.so.1", "/lib/libnsl.so.1", 1023) = 16
open("/lib/libnsl.so.1", O_RDONLY)              = 4
mmap(0xFEDE0000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 0) = 0xFEDE0000
mmap(0x00010000, 692224, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFECF0000
mmap(0xFECF0000, 579129, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 4, 0) = 0xFECF0000
mmap(0xFED8E000, 20645, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 4, 581632) = 0xFED8E000
mmap(0xFED94000, 18400, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFED94000
munmap(0xFED7E000, 65536)                       = 0
memcntl(0xFECF0000, 109104, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(4)                                        = 0
munmap(0xFEDE0000, 32768)                       = 0
sigfillset(0xFEF5F340)                          = 0
brk(0x0809B000)                                 = 0
xstat(2, "/usr/lib/smbsrv/libscf.so.1", 0x08047438) Err#2 ENOENT
xstat(2, "/lib/libscf.so.1", 0x08047438)        = 0
resolvepath("/lib/libscf.so.1", "/lib/libscf.so.1", 1023) = 16
open("/lib/libscf.so.1", O_RDONLY)              = 4
mmap(0x00010000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 4, 0) = 0xFEDE0000
mmap(0x00010000, 172032, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFECC0000
mmap(0xFECC0000, 98844, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 4, 0) = 0xFECC0000
mmap(0xFECE9000, 2049, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 4, 102400) = 0xFECE9000
munmap(0xFECD9000, 65536)                       = 0
memcntl(0xFECC0000, 21292, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(4)                                        = 0
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEF50000
munmap(0xFEDE0000, 32768)                       = 0
issetugid()                                     = 0
issetugid()                                     = 0
xstat(2, "/lib/libuutil.so.1", 0x080473E8)      = 0
resolvepath("/lib/libuutil.so.1", "/lib/libuutil.so.1", 1023) = 18
open("/lib/libuutil.so.1", O_RDONLY)            = 4
mmap(0x00010000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 4, 0) = 0xFEDE0000
mmap(0x00010000, 98304, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFECA0000
mmap(0xFECA0000, 26268, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 4, 0) = 0xFECA0000
mmap(0xFECB7000, 1187, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 4, 28672) = 0xFECB7000
munmap(0xFECA7000, 65536)                       = 0
memcntl(0xFECA0000, 7888, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(4)                                        = 0
munmap(0xFEDE0000, 32768)                       = 0
open("/etc/svc/volatile/repository_door", O_RDONLY) = 4
fstat64(4, 0x08047BE0)                          = 0
getpid()                                        = 5329 [5328]
door_call(4, 0x08047C18)                        = 0
close(4)                                        = 0
fcntl(5, F_SETFD, 0x00000001)                   = 0
door_info(5, 0x08047D70)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047CD8)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047CD8)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047CD8)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047CD8)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047CD8)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047CD8)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047CD8)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047CD8)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047CF8)                        = 0
getpid()                                        = 5329 [5328]
door_call(5, 0x08047CA8)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047CF8)                        = 0
getpid()                                        = 5329 [5328]
door_call(5, 0x08047C68)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047CF8)                        = 0
getpid()                                        = 5329 [5328]
door_call(5, 0x08047C68)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047CE8)                        = 0
getpid()                                        = 5329 [5328]
door_call(5, 0x08047C58)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047D18)                        = 0
brk(0x080AB000)                                 = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047D28)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047D28)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047D28)                        = 0
getpid()                                        = 5329 [5328]
getpid()                                        = 5329 [5328]
door_call(5, 0x08047D48)                        = 0
close(5)                                        = 0
getuid()                                        = 0 [0]
zone_lookup(0x00000000)                         = 6
fstat64(2, 0x08046E00)                          = 0
smbd: write(2, " s m b d :  ", 6)                       = 6
non-global zones are not supportedwrite(2, " n o n - g l o b a l   z".., 34)    = 34

write(2, "\n", 1)                               = 1
_exit(95)


Any idea's? I presume the zone_lookup() call is checking if the zone is global or not.
--

This message posted from opensolaris.org




More information about the indiana-discuss mailing list