envvar.exp
来自「samba-3.0.22.tar.gz 编译smb服务器的源码」· EXP 代码 · 共 283 行
EXP
283 行
## @(#) Test operation of WINBINDD_DOMAIN environment variable#load_lib "util-defs.exp"load_lib "$srcdir/lib/nsswitch-config.exp"## @(#) Test that there is at least one domain user and domain group# @(#) in the output of getent passwd and getent group.## Get list of users and groupsset user_list [util_start "getent passwd"]set group_list [util_start "getent group"]verbose "user list is:\n$user_list"verbose "group list is:\n$group_list"# Check for domain usersset no_dom 0if { ![regexp "$domain/" $user_list] } { fail "no domain users in getent" set no_dom 1}# Check for domain groupsif { ![regexp "$domain/" $group_list] } { fail "no domain groups in getent group" set no_dom 1}if { $no_dom } { return}## @(#) Check for "leakage" between different domains using the# @(#) WINBINDD_DOMAIN environment variable.#verbose "Domain is $domain"set output [util_start "bin/wbinfo" "-m"]verbose "Trusted domains are $output"set trusted_domain_list [split $output "\n"]# Test simple inclusion by setting $WINBINDD_DOMAIN to each trusted domain# in turn and checking there are no users/groups from other domains in the# output of getent.set domain_list $trusted_domain_listlappend domain_list $domainforeach { the_domain } $domain_list { set env(WINBINDD_DOMAIN) $the_domain set user_out [util_start "getent passwd"] set group_out [util_start "getent group"] verbose "users in $the_domain:\n$user_out\n" verbose "groups in $the_domain:\n$group_out\n" # Users set test_desc "users in WINBINDD_DOMAIN $the_domain" set failed 0 foreach { user } [split $user_out "\n"] { set user_name [lindex [split $user ":"] 0] if { [regexp "/" $user_name] && ![regexp $the_domain $user_name]} { set failed 1 } } if { $failed } { fail $test_desc } else { pass $test_desc } # Groups set test_desc "groups in WINBINDD_DOMAIN $the_domain" set failed 0 foreach { group } [split $group_out "\n"] { set group_name [lindex [split $group ":"] 0] if { [regexp "/" $group_name] && ![regexp $the_domain $group_name]} { set failed 1 } } if { $failed } { fail $test_desc } else { pass $test_desc }}## @(#) Test inclusion of a dummy domain doesn't generate users/groups# @(#) from that domain.#set env(WINBINDD_DOMAIN) "asmithee"set user_out [util_start "getent passwd"]set group_out [util_start "getent group"]# Usersset test_desc "users in different WINBINDD_DOMAIN"if { [regexp $domain $user_out] } { fail $test_desc} else { pass $test_desc}# Groupsset test_desc "groups in different WINBINDD_DOMAIN"if { [regexp $domain $group_out] } { fail $test_desc} else { pass $test_desc}## @(#) Test comma separated inclusion of dummy domain doesn't generate# @(#) users/groups in the dummy domain.#foreach { the_domain } $domain_list { set env(WINBINDD_DOMAIN) "$the_domain,asmithee" set user_out [util_start "getent passwd"] set group_out [util_start "getent group"] verbose "users in $the_domain:\n$user_out\n" verbose "groups in $the_domain:\n$group_out\n" # Users set test_desc "users in comma separated WINBINDD_DOMAIN $the_domain" set failed 0 foreach { user } [split $user_out "\n"] { set user_name [lindex [split $user ":"] 0] if { [regexp "/" $user_name] && ![regexp $the_domain $user_name]} { set failed 1 } } if { $failed } { fail $test_desc } else { pass $test_desc } # Groups set test_desc "groups in comma separated WINBINDD_DOMAIN $the_domain" set failed 0 foreach { group } [split $group_out "\n"] { set group_name [lindex [split $group ":"] 0] if { [regexp "/" $group_name] && ![regexp $the_domain $group_name]} { set failed 1 } } if { $failed } { fail $test_desc } else { pass $test_desc }}## @(#) Test two comma separated dummy domains do not generate any domain# @(#) users or groups.#foreach { the_domain } $domain_list { set env(WINBINDD_DOMAIN) "moose,asmithee" set user_out [util_start "getent passwd"] set group_out [util_start "getent group"] verbose "users in $the_domain:\n$user_out\n" verbose "groups in $the_domain:\n$group_out\n" # Users set test_desc "users in comma separated invalid WINBINDD_DOMAIN" if { [regexp $the_domain $user_out] } { fail $test_desc } else { pass $test_desc } # Groups set test_desc "groups in comma separated invalid WINBINDD_DOMAIN" if { [regexp $the_domain $group_out] } { fail $test_desc } else { pass $test_desc }}set env(WINBINDD_DOMAIN) ""## @(#) Test _NO_WINBINDD doesn't return any domain users or groups#set env(_NO_WINBINDD) "1"set user_out [util_start "getent passwd"]set group_out [util_start "getent group"]verbose "users with _NO_WINBINDD:\n$user_out\n"verbose "groups with _NO_WINBINDD:\n$group_out\n"foreach { the_domain } $domain_list { # Users set test_desc "users found with _NO_WINBINDD environment variable set" if { [regexp $the_domain $user_out] } { fail $test_desc } else { pass $test_desc } # Groups set test_desc "groups found with _NO_WINBINDD environment variable set" if { [regexp $the_domain $group_out] } { fail $test_desc } else { pass $test_desc }}# Unset _NO_WINBINDD and make sure everything still worksunset env(_NO_WINBINDD)set user_out [util_start "getent passwd"]set group_out [util_start "getent group"]verbose "users with _NO_WINBINDD unset:\n$user_out\n"verbose "groups with _NO_WINBINDD unset:\n$group_out\n"# Usersset test_desc "no users found with _NO_WINBINDD environment variable set"if { $user_out != $user_list } { fail $test_desc} else { pass $test_desc}# Groupsset test_desc "no groups found with _NO_WINBINDD environment variable set"if { $group_out != $group_list } { fail $test_desc} else { pass $test_desc}# Make sure we unset the environment vars so we don't cause subsequent tests# any grief.catch { unset env(WINBINDD_DOMAIN) } tmpcatch { unset env(_NO_WINBINDD) } tmp
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?