mirror of
https://github.com/samba-team/samba.git
synced 2025-03-12 20:58:37 +03:00
selftest: Test ID_TYPE_BOTH with idmap_rid module
ID_TYPE_BOTH means that each user and group has two mappings, a uid and gid. In addition the calls to getpwent, getpwuid, getgrent and getgrgid always return some information, so that uid and gid can be mapped to a name. Establish a test to verify that the expected information is returned. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14141 Signed-off-by: Christof Schmitt <cs@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org> (cherry picked from commit 485874d6bb328c50c9a98785e85270f28ade7497)
This commit is contained in:
parent
d689042dff
commit
8a2ca386df
@ -63,4 +63,136 @@ test "$out" = "$SID -> unmapped"
|
||||
ret=$?
|
||||
testit "Bogus SID returns unmapped" test $ret -eq 0 || failed=$(expr $failed + 1)
|
||||
|
||||
#
|
||||
# Test 3: ID_TYPE_BOTH mappings for group
|
||||
#
|
||||
|
||||
GROUP="$DOMAIN/Domain Users"
|
||||
GROUP_SID=$($wbinfo --name-to-sid="$GROUP" | sed -e 's/ .*//')
|
||||
|
||||
uid=$($wbinfo --sid-to-uid=$GROUP_SID)
|
||||
ret=$?
|
||||
testit "ID_TYPE_BOTH group map to uid succeeds" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
testit "ID_TYPE_BOTH group map to uid has result" test -n $uid ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
gid=$($wbinfo --sid-to-gid=$GROUP_SID)
|
||||
ret=$?
|
||||
testit "ID_TYPE_BOTH group map to gid succeeds" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
testit "ID_TYPE_BOTH group map to gid has result" test -n $gid ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
testit "ID_TYPE_BOTH group uid equals gid" test $uid -eq $gid ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
group_pw="$DOMAIN/domain users:*:$uid:$gid::/home/$DOMAIN/domain users:/bin/false"
|
||||
|
||||
out=$(getent passwd "$GROUP")
|
||||
ret=$?
|
||||
testit "getpwnam for ID_TYPE_BOTH group succeeds" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
test "$out" = "$group_pw"
|
||||
ret=$?
|
||||
testit "getpwnam for ID_TYPE_BOTH group output" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
out=$(getent passwd $uid)
|
||||
ret=$?
|
||||
testit "getpwuid for ID_TYPE_BOTH group succeeds" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
test "$out" = "$group_pw"
|
||||
ret=$?
|
||||
testit "getpwuid for ID_TYPE_BOTH group output" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
group_gr="$DOMAIN/domain users:x:$gid:"
|
||||
|
||||
out=$(getent group "$GROUP")
|
||||
ret=$?
|
||||
testit "getgrnam for ID_TYPE_BOTH group succeeds" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
test "$out" = "$group_gr"
|
||||
ret=$?
|
||||
testit "getgrnam for ID_TYPE_BOTH group output" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
out=$(getent group "$gid")
|
||||
ret=$?
|
||||
testit "getgrgid for ID_TYPE_BOTH group succeeds" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
test "$out" = "$group_gr"
|
||||
ret=$?
|
||||
testit "getgrgid for ID_TYPE_BOTH group output" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
#
|
||||
# Test 4: ID_TYPE_BOTH mappings for user
|
||||
#
|
||||
|
||||
dom_users_gid=$gid
|
||||
|
||||
USER="$DOMAIN/Administrator"
|
||||
USER_SID=$($wbinfo --name-to-sid="$USER" | sed -e 's/ .*//')
|
||||
|
||||
uid=$($wbinfo --sid-to-uid=$USER_SID)
|
||||
ret=$?
|
||||
testit "ID_TYPE_BOTH user map to uid succeeds" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
testit "ID_TYPE_BOTH user map to uid has result" test -n $uid ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
gid=$($wbinfo --sid-to-gid=$USER_SID)
|
||||
ret=$?
|
||||
testit "ID_TYPE_BOTH user map to gid succeeds" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
testit "ID_TYPE_BOTH user map to gid has result" test -n $gid ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
testit "ID_TYPE_BOTH user uid equals gid" test $uid -eq $gid ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
user_pw="$DOMAIN/administrator:*:$uid:$dom_users_gid::/home/$DOMAIN/administrator:/bin/false"
|
||||
|
||||
out=$(getent passwd "$USER")
|
||||
ret=$?
|
||||
testit "getpwnam for ID_TYPE_BOTH user succeeds" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
test "$out" = "$user_pw"
|
||||
ret=$?
|
||||
testit "getpwnam for ID_TYPE_BOTH user output" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
out=$(getent passwd $uid)
|
||||
ret=$?
|
||||
testit "getpwuid for ID_TYPE_BOTH user succeeds" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
test "$out" = "$user_pw"
|
||||
ret=$?
|
||||
testit "getpwuid for ID_TYPE_BOTH user output" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
user_gr="$DOMAIN/administrator:x:$gid:$DOMAIN/administrator"
|
||||
|
||||
out=$(getent group "$USER")
|
||||
ret=$?
|
||||
testit "getgrnam for ID_TYPE_BOTH user succeeds" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
test "$out" = "$user_gr"
|
||||
ret=$?
|
||||
testit "getgrnam for ID_TYPE_BOTH user output" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
out=$(getent group "$gid")
|
||||
ret=$?
|
||||
testit "getgrgid for ID_TYPE_BOTH user succeeds" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
test "$out" = "$user_gr"
|
||||
ret=$?
|
||||
testit "getgrgid for ID_TYPE_BOTH user output" test $ret -eq 0 ||\
|
||||
failed=$(expr $failed + 1)
|
||||
|
||||
exit $failed
|
||||
|
4
selftest/knownfail.d/passwd-id-type-both
Normal file
4
selftest/knownfail.d/passwd-id-type-both
Normal file
@ -0,0 +1,4 @@
|
||||
idmap\.rid.getpwnam for ID_TYPE_BOTH group succeeds\(ad_member_idmap_rid\)
|
||||
idmap\.rid.getpwnam for ID_TYPE_BOTH group output\(ad_member_idmap_rid\)
|
||||
idmap\.rid.getpwuid for ID_TYPE_BOTH group succeeds\(ad_member_idmap_rid\)
|
||||
idmap\.rid.getpwuid for ID_TYPE_BOTH group output\(ad_member_idmap_rid\)
|
Loading…
x
Reference in New Issue
Block a user