# # @(#) Test logins using pam_winbind.so module using telnet # load_lib util-defs.exp load_lib nsswitch-config.exp # # @(#) Test user can login # spawn telnet localhost set test_desc "telnet localhost (login)" expect { "login:" { } timeout { fail "timed out in $test_desc"; return } eof { fail "end of file in $test_desc"; return } } send "$domain/$USER\r" set test_desc "telnet localhost (password)" expect { "Password:" { } timeout { fail "timed out in $test_desc"; return } eof { fail "end of file in $test_desc"; return } } send "$PASSWORD\r" expect { "$ " { } "Login incorrect" { fail "login incorrect"; return } timeout { fail "timed out in $test_desc"; return } eof { fail "end of file in $test_desc"; return } } pass "login $domain/$USER" # # @(#) Check supplementary group membership # set test_desc "supplementary groups" # Get list of groups send "id -G\r" expect { -re "((\[0-9]+ )*\[0-9]+\r)" { exp_continue; } "$ " { } timeout { fail "timed out in $test_desc"; return } eof { fail "end of file in $test_desc"; return } } set groups $expect_out(1,string) set wb_groups [util_start "bin/wbinfo" "-r $domain/$USER"] verbose "id groups are $groups" verbose "wbinfo groups are $wb_groups" # Check all groups from id are in wbinfo and vice-versa set failed 0 foreach { group } $groups { set got_group 0 foreach { wb_group } $wb_groups { if { $wb_group == $group } { set got_group 1 break } } if { !$got_group } { fail "group $group not in output of wbinfo -r" set failed 1 } } foreach { wb_group } $wb_groups { set got_group 0 foreach { group } $groups { if { $group == $wb_group } { set got_group 1 break } } if { !$got_group } { fail "group $group not in output of id -G" set failed 1 } } if { !$failed } { pass "id/wbinfo groups match" }