[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [Fwd: PAM Critical error, but no logging]



> My best guess here is that something is wrong with pam_cracklib.so on my
> broken PAM machine.  Is pam_cracklib.so dependent on something else I
> might be checking out?  Perhaps some general library or a configuration
> file that shouldn't normally be seen or something?

ldd /lib/security/pam_cracklib.so will tell you that, on this machine it
has no config files.

I however suspect it is something else, corrupt binary, corrupt config,
etc. Very hard to tell is my experience, sometimes strace can be helpfull.


        Igmar

Igmar, here is the content of my strace of the password program with the
problem configuration set up:


execve("/usr/bin/passwd", ["passwd"], [/* 19 vars */]) = 0
brk(0)                                  = 0x804f540
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2734, ...}) = 0
old_mmap(NULL, 2734, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000
close(3)                                = 0
open("/lib/libcrypt.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=20436, ...}) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\16"..., 4096) = 4096
old_mmap(NULL, 183228, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40015000
mprotect(0x4001a000, 162748, PROT_NONE) = 0
old_mmap(0x4001a000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x4000) = 0x4001a000
old_mmap(0x4001b000, 158652, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4001b000
close(3)                                = 0
open("/lib/libpam.so.0", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=27180, ...}) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\22\0\000"..., 4096) = 4096
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40042000
old_mmap(NULL, 30444, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40043000
mprotect(0x4004a000, 1772, PROT_NONE)   = 0
old_mmap(0x4004a000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x6000) = 0x4004a000
close(3)                                = 0
open("/lib/libpam_misc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=6060, ...}) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\n\0\000"..., 4096) = 4096
old_mmap(NULL, 9324, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4004b000
mprotect(0x4004d000, 1132, PROT_NONE)   = 0
old_mmap(0x4004d000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x4004d000
close(3)                                = 0
open("/lib/libdl.so.2", O_RDONLY)       = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=9452, ...}) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\330\34"..., 4096) = 4096
old_mmap(NULL, 12428, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4004e000
mprotect(0x40050000, 4236, PROT_NONE)   = 0
old_mmap(0x40050000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x40050000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=888064, ...}) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\244\213"..., 4096) = 4096
old_mmap(NULL, 902396, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40052000
mprotect(0x40127000, 29948, PROT_NONE)  = 0
old_mmap(0x40127000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xd4000) = 0x40127000
old_mmap(0x4012b000, 13564, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4012b000
close(3)                                = 0
munmap(0x40014000, 2734)                = 0
getpid()                                = 423
brk(0)                                  = 0x804f540
brk(0x804f578)                          = 0x804f578
brk(0x8050000)                          = 0x8050000
getuid()                                = 0
ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
readlink("/proc/self/fd/0", "/dev/tty2", 511) = 9
access("/var/run/utmpd.rw", F_OK)       = -1 ENOENT (No such file or directory)
access("/var/run/utmpd.ro", F_OK)       = -1 ENOENT (No such file or directory)
access("/var/run/utmpx", F_OK)          = -1 ENOENT (No such file or directory)
open("/var/run/utmp", O_RDWR)           = 3
fcntl(3, F_GETFD)                       = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
lseek(3, 0, SEEK_SET)                   = 0
alarm(0)                                = 0
rt_sigaction(SIGALRM, {0x401160f0, [], 0x4000000}, {SIG_DFL}, 8) = 0
alarm(1)                                = 0
fcntl(3, F_SETLKW, {type=F_RDLCK, whence=SEEK_SET, start=0, len=0}) = 0
read(3, "\10\0\0\0\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 384) = 384
read(3, "\2\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 384) = 384
read(3, "\1\0\0\0002N\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 384) = 384
read(3, "\10\0\0\0\203\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 384) = 384
read(3, "\7\0\0\0\263\0\0\0tty1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 384) = 384
read(3, "\7\0\0\0\264\0\0\0tty2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 384) = 384
fcntl(3, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0
rt_sigaction(SIGALRM, {SIG_DFL}, NULL, 8) = 0
alarm(0)                                = 1
close(3)                                = 0
getuid()                                = 0
socket(PF_UNIX, SOCK_STREAM, 0)         = 3
connect(3, {sin_family=AF_UNIX, path="                                                                                       /var/run/.nscd_socket"}, 110) = -1 ECONNREFUSED (Connection refused)
close(3)                                = 0
open("/etc/nsswitch.conf", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=465, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
read(3, "# /etc/nsswitch.conf\n#\n# Example"..., 4096) = 465
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x40014000, 4096)                = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2734, ...}) = 0
old_mmap(NULL, 2734, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000
close(3)                                = 0
open("/lib/libnss_compat.so.2", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=41356, ...}) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\31\0"..., 4096) = 4096
brk(0x8051000)                          = 0x8051000
old_mmap(NULL, 44332, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4012f000
mprotect(0x40139000, 3372, PROT_NONE)   = 0
old_mmap(0x40139000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x9000) = 0x40139000
close(3)                                = 0
open("/lib/libnsl.so.1", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=76032, ...}) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0@\0\000"..., 4096) = 4096
old_mmap(NULL, 88200, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4013a000
mprotect(0x4014c000, 14472, PROT_NONE)  = 0
old_mmap(0x4014c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x11000) = 0x4014c000
old_mmap(0x4014e000, 6280, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4014e000
close(3)                                = 0
munmap(0x40014000, 2734)                = 0
uname({sys="Linux", node="faire", ...}) = 0
open("/etc/passwd", O_RDONLY)           = 3
fcntl(3, F_GETFD)                       = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=987, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
_llseek(3, 0, [0], SEEK_CUR)            = 0
read(3, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 987
close(3)                                = 0
munmap(0x40014000, 4096)                = 0
open("/etc/passwd", O_RDONLY)           = 3
fcntl(3, F_GETFD)                       = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=987, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
_llseek(3, 0, [0], SEEK_CUR)            = 0
read(3, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 987
close(3)                                = 0
munmap(0x40014000, 4096)                = 0
setrlimit(RLIMIT_CORE, {rlim_cur=0, rlim_max=0}) = 0
setrlimit(RLIMIT_AS, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_CPU, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_DATA, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_FSIZE, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_NOFILE, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = -1 EPERM (Operation not permitted)
setrlimit(RLIMIT_RSS, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_STACK, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
rt_sigaction(SIGALRM, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGHUP, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTERM, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTSTP, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTTOU, {SIG_IGN}, {SIG_DFL}, 8) = 0
umask(077)                              = 022
stat("/etc/pam.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/etc/pam.d/passwd", O_RDONLY)     = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1240, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
read(3, "#\n# The PAM configuration file f"..., 4096) = 1240
open("/lib/security/pam_cracklib.so", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=11628, ...}) = 0
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P\r\0\000"..., 4096) = 4096
old_mmap(NULL, 31072, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x40150000
mprotect(0x40153000, 18784, PROT_NONE)  = 0
old_mmap(0x40153000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x2000) = 0x40153000
old_mmap(0x40154000, 14688, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40154000
close(4)                                = 0
open("/etc/ld.so.cache", O_RDONLY)      = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=2734, ...}) = 0
old_mmap(NULL, 2734, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40158000
close(4)                                = 0
open("/usr/lib/libcrack.so.2", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=29772, ...}) = 0
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\32"..., 4096) = 4096
old_mmap(NULL, 46208, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x40159000
mprotect(0x40160000, 17536, PROT_NONE)  = 0
old_mmap(0x40160000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x6000) = 0x40160000
old_mmap(0x40162000, 9344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40162000
close(4)                                = 0
munmap(0x40158000, 2734)                = 0
open("/lib/security/pam_unix.so", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=40876, ...}) = 0
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340#\0"..., 4096) = 4096
brk(0x8052000)                          = 0x8052000
old_mmap(NULL, 93652, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x40165000
mprotect(0x4016f000, 52692, PROT_NONE)  = 0
old_mmap(0x4016f000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x9000) = 0x4016f000
old_mmap(0x40170000, 48596, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40170000
close(4)                                = 0
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x40014000, 4096)                = 0
open("/etc/pam.d/other", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=341, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
read(3, "#\n# /etc/pam.d/other - specify t"..., 4096) = 341
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x40014000, 4096)                = 0
time(NULL)                              = 1014276547
stat("/var/cache/cracklib/cracklib_dict.pwd", 0xbfff9a1c) = -1 ENOENT (No such file or directory)
open("/etc/.pwd.lock", O_WRONLY|O_CREAT, 0600) = 3
fcntl(3, F_GETFD)                       = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
rt_sigaction(SIGALRM, {0x400f669c, ~[], 0x4000000}, {SIG_IGN}, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM], [], 8) = 0
alarm(15)                               = 0
fcntl(3, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0
alarm(0)                                = 15
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGALRM, {SIG_IGN}, NULL, 8) = 0
getuid()                                = 0
open("/etc/passwd", O_RDONLY)           = 4
fcntl(4, F_GETFD)                       = 0
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
fstat(4, {st_mode=S_IFREG|0644, st_size=987, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
_llseek(4, 0, [0], SEEK_CUR)            = 0
read(4, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 987
close(4)                                = 0
munmap(0x40014000, 4096)                = 0
open("/etc/shadow", O_RDONLY)           = 4
fcntl(4, F_GETFD)                       = 0
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
fstat(4, {st_mode=S_IFREG|0640, st_size=768, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
_llseek(4, 0, [0], SEEK_CUR)            = 0
read(4, "root:$1$pr8rRlVB$Bp0cngWMIniJeaB"..., 4096) = 768
close(4)                                = 0
munmap(0x40014000, 4096)                = 0
open("/etc/passwd", O_RDONLY)           = 4
fcntl(4, F_GETFD)                       = 0
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
open("/etc/passwd", O_RDONLY)           = 5
fcntl(5, F_GETFD)                       = 0
fcntl(5, F_SETFD, FD_CLOEXEC)           = 0
fstat(5, {st_mode=S_IFREG|0644, st_size=987, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
_llseek(5, 0, [0], SEEK_CUR)            = 0
read(5, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 987
close(5)                                = 0
munmap(0x40014000, 4096)                = 0
close(4)                                = 0
open("/etc/shadow", O_RDONLY)           = 4
fcntl(4, F_GETFD)                       = 0
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
open("/etc/shadow", O_RDONLY)           = 5
fcntl(5, F_GETFD)                       = 0
fcntl(5, F_SETFD, FD_CLOEXEC)           = 0
fstat(5, {st_mode=S_IFREG|0640, st_size=768, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
_llseek(5, 0, [0], SEEK_CUR)            = 0
read(5, "root:$1$pr8rRlVB$Bp0cngWMIniJeaB"..., 4096) = 768
close(5)                                = 0
munmap(0x40014000, 4096)                = 0
close(4)                                = 0
close(3)                                = 0
write(2, "passwd: Critical error - immedia"..., 41passwd: Critical error - immediate abort
) = 41
munmap(0x40150000, 31072)               = 0
munmap(0x40159000, 46208)               = 0
munmap(0x40165000, 93652)               = 0
_exit(10)                               = ?

I'm looking in the 0.75 source code, but nothing is jumping out at me.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index] []