problems with samba passwd sync with 2.2.x kernels

Jaanus Kivistik (jaanus@hwg.edu.ee)
Sun, 18 Jul 1999 20:05:21 +0300 (EEST)


Hi

As i have discovered, the "unix passwd sync" feature of samba does'nt work with
2.2.x kernels. it seems so, that the samba calls the unix "passwd" program,
gives it the new password 2 times, and with 2.2.10 kernel, the passwd program
crashes. It happens undex Rh 5.2 and 6.0. All is working perfectly with
2.0.3[5,6]. Is this samba, kernel or perhaps Redhat related problem? I have
included my samba log and strace output from "passwd". Please Cc: all replies
to jaanus@hwg.edu.ee

Samba log file:

[1999/07/18 19:33:49, 10] smbd/chgpasswd.c:dochild(189)
Invoking '/usr/bin/strace -o /tmp/pass_debug /usr/bin/passwd jaanus' as
passwo
rd change program.
[1999/07/18 19:33:50, 100] smbd/chgpasswd.c:talktochild(263)
talktochild: chatbuf=[*New*] responsebuf=[New UNIX password: ]
[1999/07/18 19:33:50, 100] smbd/chgpasswd.c:talktochild(276)
talktochild: sendbuf=[123abc
]
[1999/07/18 19:33:50, 100] smbd/chgpasswd.c:talktochild(263)
talktochild: chatbuf=[*Retype*] responsebuf=[
Retype new UNIX password: ]
[1999/07/18 19:33:50, 100] smbd/chgpasswd.c:talktochild(276)
talktochild: sendbuf=[123abc
]
[1999/07/18 19:33:54, 10] lib/util_sock.c:read_with_timeout(302)
read_with_timeout: timeout read. select timed out.
[1999/07/18 19:33:54, 100] smbd/chgpasswd.c:talktochild(263)
talktochild: chatbuf=[*successfully*] responsebuf=[]
[1999/07/18 19:33:54, 3] smbd/chgpasswd.c:talktochild(266)
response 3 incorrect
[1999/07/18 19:33:54, 3] smbd/chgpasswd.c:chat_with_program(316)
Child failed to change password: jaanus
[1999/07/18 19:33:54, 3] smbd/chgpasswd.c:chat_with_program(347)
The process exited while we were waiting

And strace output:

execve("/usr/bin/passwd", ["/usr/bin/passwd", "jaanus"], [/* 16 vars */]) = 0
brk(0) = 0x8049bdc
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 9
fstat(9, {st_mode=0, st_size=0, ...}) = 0
mmap(0, 4853, PROT_READ, MAP_PRIVATE, 9, 0) = 0x4000b000
close(9) = 0
open("/lib/libpwdb.so.0", O_RDONLY) = 9
mmap(0, 4096, PROT_READ, MAP_PRIVATE, 9, 0) = 0x4000d000
munmap(0x4000d000, 4096) = 0
mmap(0, 264700, PROT_READ|PROT_EXEC, MAP_PRIVATE, 9, 0) = 0x4000d000
mprotect(0x40021000, 182780, PROT_NONE) = 0
mmap(0x40021000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 9,
0x13000)
= 0x40021000
mmap(0x4002a000, 145916, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMO
US, -1, 0) = 0x4002a000
close(9) = 0
open("/lib/libpam.so.0", O_RDONLY) = 9
mmap(0, 4096, PROT_READ, MAP_PRIVATE, 9, 0) = 0x4004e000
munmap(0x4004e000, 4096) = 0
mmap(0, 27288, PROT_READ|PROT_EXEC, MAP_PRIVATE, 9, 0) = 0x4004e000
mprotect(0x40054000, 2712, PROT_NONE) = 0
mmap(0x40054000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 9, 0x5000)
= 0x40054000
close(9) = 0
open("/lib/libpam_misc.so.0", O_RDONLY) = 9
mmap(0, 4096, PROT_READ, MAP_PRIVATE, 9, 0) = 0x40055000
munmap(0x40055000, 4096) = 0
mmap(0, 8864, PROT_READ|PROT_EXEC, MAP_PRIVATE, 9, 0) = 0x40055000
mprotect(0x40057000, 672, PROT_NONE) = 0
mmap(0x40057000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 9, 0x1000)
=
0x40057000
close(9) = 0
open("/lib/libdl.so.2", O_RDONLY) = 9
mmap(0, 4096, PROT_READ, MAP_PRIVATE, 9, 0) = 0x40058000
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x400590
00
munmap(0x40058000, 4096) = 0
mmap(0, 9256, PROT_READ|PROT_EXEC, MAP_PRIVATE, 9, 0) = 0x4005a000
mprotect(0x4005c000, 1064, PROT_NONE) = 0
mmap(0x4005c000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 9, 0x1000)
=
0x4005c000
close(9) = 0
open("/lib/libc.so.6", O_RDONLY) = 9
mmap(0, 4096, PROT_READ, MAP_PRIVATE, 9, 0) = 0x40058000
munmap(0x40058000, 4096) = 0
mmap(0, 672712, PROT_READ|PROT_EXEC, MAP_PRIVATE, 9, 0) = 0x4005d000
mprotect(0x400ee000, 78792, PROT_NONE) = 0
mmap(0x400ee000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 9,
0x90000)
= 0x400ee000
mmap(0x400f6000, 46024, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOU
S, -1, 0) = 0x400f6000
close(9) = 0
open("/lib/libcrypt.so.1", O_RDONLY) = 9
mmap(0, 4096, PROT_READ, MAP_PRIVATE, 9, 0) = 0x40058000
munmap(0x40058000, 4096) = 0
mmap(0, 181668, PROT_READ|PROT_EXEC, MAP_PRIVATE, 9, 0) = 0x40102000
mprotect(0x40107000, 161188, PROT_NONE) = 0
mmap(0x40107000, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 9,
0x4000)
= 0x40107000
mmap(0x40128000, 26020, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOU
S, -1, 0) = 0x40128000
close(9) = 0
open("/lib/libnsl.so.1", O_RDONLY) = 9
mmap(0, 4096, PROT_READ, MAP_PRIVATE, 9, 0) = 0x40058000
munmap(0x40058000, 4096) = 0
mmap(0, 21996, PROT_READ|PROT_EXEC, MAP_PRIVATE, 9, 0) = 0x4012f000
mprotect(0x40133000, 5612, PROT_NONE) = 0
mmap(0x40133000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 9, 0x3000)
= 0x40133000
close(9) = 0
mprotect(0x4000d000, 81920, PROT_READ|PROT_WRITE) = 0
mprotect(0x4000d000, 81920, PROT_READ|PROT_EXEC) = 0
munmap(0x4000b000, 4853) = 0
personality(PER_LINUX) = 0
getpid() = 322
getuid() = 0
brk(0) = 0x8049bdc
brk(0x8049c6c) = 0x8049c6c
brk(0x804a000) = 0x804a000
stat("/etc/pam.d", {st_mode=0, st_size=0, ...}) = 0
open("/etc/pam.d/passwd", O_RDONLY) = 9
fstat(9, {st_mode=0, st_size=0, ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x4000b0
00
read(9, "#%PAM-1.0\nauth required\t"..., 4096) = 239
open("/lib/security/pam_pwdb.so", O_RDONLY) = 10
mmap(0, 4096, PROT_READ, MAP_PRIVATE, 10, 0) = 0x4000c000
munmap(0x4000c000, 4096) = 0
mmap(0, 26260, PROT_READ|PROT_EXEC, MAP_PRIVATE, 10, 0) = 0x40135000
mprotect(0x4013b000, 1684, PROT_NONE) = 0
mmap(0x4013b000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 10, 0x5000)
= 0x4013b000
close(10) = 0
brk(0x804b000) = 0x804b000
open("/lib/security/pam_cracklib.so", O_RDONLY) = 10
mmap(0, 4096, PROT_READ, MAP_PRIVATE, 10, 0) = 0x4000c000
munmap(0x4000c000, 4096) = 0
mmap(0, 20048, PROT_READ|PROT_EXEC, MAP_PRIVATE, 10, 0) = 0x4013c000
mprotect(0x4013e000, 11856, PROT_NONE) = 0
mmap(0x4013e000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 10, 0x1000)
= 0x4013e000
mmap(0x4013f000, 7760, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS
, -1, 0) = 0x4013f000
close(10) = 0
open("/etc/ld.so.cache", O_RDONLY) = 10
fstat(10, {st_mode=0, st_size=0, ...}) = 0
mmap(0, 4853, PROT_READ, MAP_PRIVATE, 10, 0) = 0x40141000
close(10) = 0
open("/usr/lib/libcrack.so.2", O_RDONLY) = 10
mmap(0, 4096, PROT_READ, MAP_PRIVATE, 10, 0) = 0x4000c000
munmap(0x4000c000, 4096) = 0
mmap(0, 42908, PROT_READ|PROT_EXEC, MAP_PRIVATE, 10, 0) = 0x40143000
mprotect(0x40149000, 18332, PROT_NONE) = 0
mmap(0x40149000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 10, 0x5000)
= 0x40149000
mmap(0x4014b000, 10140, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOU
S, -1, 0) = 0x4014b000
close(10) = 0
munmap(0x40141000, 4853) = 0
read(9, "", 4096) = 0
close(9) = 0
munmap(0x4000b000, 4096) = 0
open("/etc/pam.d/other", O_RDONLY) = 9
fstat(9, {st_mode=0, st_size=0, ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x4000b0
00
read(9, "#%PAM-1.0\nauth required "..., 4096) = 210
open("/lib/security/pam_deny.so", O_RDONLY) = 10
mmap(0, 4096, PROT_READ, MAP_PRIVATE, 10, 0) = 0x4000c000
munmap(0x4000c000, 4096) = 0
mmap(0, 5540, PROT_READ|PROT_EXEC, MAP_PRIVATE, 10, 0) = 0x40141000
mprotect(0x40142000, 1444, PROT_NONE) = 0
mmap(0x40142000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 10, 0) =
0x4
0142000
close(10) = 0
read(9, "", 4096) = 0
close(9) = 0
munmap(0x4000b000, 4096) = 0
time(NULL) = 932315629
stat("/usr/lib/cracklib_dict.pwd", {st_mode=0, st_size=0, ...}) = 0
open("/etc/pwdb.conf", O_RDONLY) = 9
fstat(9, {st_mode=0, st_size=0, ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x4000b0
00
read(9, "#\n# This is the configuration f"..., 4096) = 134
read(9, "", 4096) = 0
close(9) = 0
munmap(0x4000b000, 4096) = 0
getrlimit(RLIMIT_CORE, {rlim_cur=1000000*1024, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_CORE, {rlim_cur=0, rlim_max=RLIM_INFINITY}) = 0
getuid() = 0
open("/etc/passwd", O_RDONLY) = 9
fstat(9, {st_mode=0, st_size=0, ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x4000b0
00
read(9, "root::0:0:root:/roo"..., 4096) = 620
close(9) = 0
munmap(0x4000b000, 4096) = 0
time(NULL) = 932315629
time(NULL) = 932315629
time(NULL) = 932315629
time(NULL) = 932315629
time(NULL) = 932315629
time(NULL) = 932315629
time(NULL) = 932315629
time(NULL) = 932315629
time(NULL) = 932315629
open("/etc/shadow", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/shadow", O_RDONLY) = -1 ENOENT (No such file or directory)
time(NULL) = 932315629
getrlimit(RLIMIT_CORE, {rlim_cur=0, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_CORE, {rlim_cur=0, rlim_max=RLIM_INFINITY}) = 0
ioctl(0, TCGETS, {B38400 opost isig icanon -echo ...}) = 0
ioctl(0, TCGETS, {B38400 opost isig icanon -echo ...}) = 0
time([932315629]) = 932315629
write(2, "New UNIX password: ", 19) = 19
ioctl(0, SNDCTL_TMR_CONTINUE, {B38400 opost isig icanon -echo ...}) = 0
read(0, "123abc\n", 511) = 7
ioctl(0, SNDCTL_TMR_STOP, {B38400 opost isig icanon -echo ...}) = 0
write(2, "\n", 1) = 1
open("/usr/lib/cracklib_dict.pwd", O_RDONLY) = 9
brk(0x804c000) = 0x804c000
open("/usr/lib/cracklib_dict.pwi", O_RDONLY) = 10
open("/usr/lib/cracklib_dict.hwm", O_RDONLY) = 11
fstat(10, {st_mode=0, st_size=0, ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x4000b0
00
read(10, "1Vwp=\261\0\0\20\0\0\0\0\0\0\0G\0"..., 4096) = 4096
fstat(11, {st_mode=0, st_size=0, ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x4000c0
00
read(11, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 1024
getuid() = 0
open("/etc/nsswitch.conf", O_RDONLY) = 12
fstat(12, {st_mode=0, st_size=0, ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x400580
00
read(12, "#\n# /etc/nsswitch.conf\n#\n# An"..., 4096) = 1208
read(12, "", 4096) = 0
close(12) = 0
munmap(0x40058000, 4096) = 0
open("/etc/ld.so.cache", O_RDONLY) = 12
fstat(12, {st_mode=0, st_size=0, ...}) = 0
mmap(0, 4853, PROT_READ, MAP_PRIVATE, 12, 0) = 0x4014e000
close(12) = 0
open("/lib/libnss_files.so.1", O_RDONLY) = 12
mmap(0, 4096, PROT_READ, MAP_PRIVATE, 12, 0) = 0x40058000
munmap(0x40058000, 4096) = 0
mmap(0, 32784, PROT_READ|PROT_EXEC, MAP_PRIVATE, 12, 0) = 0x40150000
mprotect(0x40157000, 4112, PROT_NONE) = 0
mmap(0x40157000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 12, 0x6000)
= 0x40157000
mmap(0x40158000, 16, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS,
-1, 0) = 0x40158000
close(12) = 0
munmap(0x4014e000, 4853) = 0
open("/etc/passwd", O_RDONLY) = 12
fcntl(12, F_GETFD) = 0
fcntl(12, F_SETFD, FD_CLOEXEC) = 0
fstat(12, {st_mode=0, st_size=0, ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x400580
00
read(12, "root::0:0:root:/roo"..., 4096) = 620
close(12) = 0
munmap(0x40058000, 4096) = 0
lseek(10, 0, SEEK_SET) = 0
read(10, "1Vwp=\261\0\0\20\0\0\0\0\0\0\0G\0"..., 4096) = 4096
fstat(9, {st_mode=0, st_size=0, ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x400580
lseek(9, 8192, SEEK_SET) = 8192
read(9, "ing\0\2sterdam\0\2trak\0\2ulet\0"..., 184) = 184
read(9, "analogously\0\6ue\0\10s\0\6y\0\4"..., 4096) = 4096

[Big SNIP]

read(9, "\0\3nabis\0\4ed\0\5l\0canner\0\6"..., 4096) = 4096
read(9, "arded\0\fing\0\7s\0\5ing\0\5list"..., 4096) = 4096
lseek(9, 32768, SEEK_SET) = 32768
read(9, "\0\3nabis\0\4ed\0\5l\0canner\0\6"..., 4096) = 4096
ioctl(0, TCGETS, {B38400 opost isig icanon -echo ...}) = 0
ioctl(0, TCGETS, {B38400 opost isig icanon -echo ...}) = 0
time([932315630]) = 932315630
write(2, "Retype new UNIX password: ", 26) = 26
ioctl(0, SNDCTL_TMR_CONTINUE, {B38400 opost isig icanon -echo ...}) = 0
read(0,

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/