xfstests: fix NIS detection damage
PATCH 1/1 xfstests: fix NIS detection damage
From: Dave Chinner <[email protected]>
NIS detection wasn't tested on machines without NIS enabled, so many tests are failing on non-NIS machines. the _yp_active function has no specific return value so always evaluates as 0 (active) and the "_cat_passwd" function is called from within an awk script which is not valid as the shell may run with a sanitised environment. Hence the functions do not need specific export calls, either, as unsanitised subshells will automatically inherit the parent's environment.
--- common.attr | 9 +++++++-- common.rc | 6 +++--- 2 files changed, 10 insertions(+), 5 deletions(-)
common.attr +7 -2
@@ -90,10 +90,14 @@ _create_n_aces() # _filter_aces() { - $AWK_PROG ' + tmp_file=`mktemp /tmp/ace.XXXXXX` + + (_cat_passwd; _cat_group) > $tmp_file + + $AWK_PROG -v tmpfile=$tmp_file ' BEGIN { FS=":" - while ( "_cat_passwd" | getline > 0 ) { + while ( getline <tmpfile > 0 ) { idlist[$1] = $3 } }
@@ -102,6 +106,7 @@ _filter_aces() /^default:user/ { if ($3 in idlist) sub($3, idlist[$3]); print; next} {print} ' + rm -f $tmp_file } _filter_aces_notypes()
common.rc +3 -3
@@ -800,13 +800,14 @@ _yp_active() local dn dn=$(domainname 2>/dev/null) test -n "${dn}" -a "${dn}" != "(none)" + echo $? } # cat the password file # _cat_passwd() { - [ _yp_active ] && ypcat passwd + [ $(_yp_active) -eq 0 ] && ypcat passwd cat /etc/passwd }
@@ -814,10 +815,9 @@ _cat_passwd() # _cat_group() { - [ _yp_active ] && ypcat group + [ $(_yp_active) -eq 0 ] && ypcat group cat /etc/group } -export -f _yp_active _cat_passwd _cat_group # check for the fsgqa user on the machine #
Signature · 6 lines
1.7.1 _______________________________________________ xfs mailing list [email protected] http://oss.sgi.com/mailman/listinfo/xfs
Quoted 11 lines · Dave Chinner
From: Dave Chinner <[email protected]>
NIS detection wasn't tested on machines without NIS enabled, so many tests are failing on non-NIS machines. the
_yp_activefunction has no specific return value so always evaluates as 0 (active) and the "_cat_passwd" function is called from within an awk script which is not valid as the shell may run with a sanitised environment. Hence the functions do not need specific export calls, either, as unsanitised subshells will automatically inherit the parent's environment.Signed-off-by Dave Chinner <[email protected]>
Looks good,
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Dave Chinner <[email protected]> said,
Quoted 15 lines
NIS detection wasn't tested on machines without NIS enabled, so many tests are
failing on non-NIS machines. the_yp_activefunction has no specific return
value so always evaluates as 0 (active) and the "_cat_passwd" function is
called from within an awk script which is not valid as the shell may run with a
sanitised environment. Hence the functions do not need specific export calls,
either, as unsanitised subshells will automatically inherit the parent's
environment.
Is there any reason why getent passwd/group cannot be used for these, as it would get local and nss defined accounts? This would add support for people using LDAP as well.
Quoted 76 lines
Signed-off-by Dave Chinner <[email protected]>---
common.attr | 9 +++++++-- common.rc | 6 +++--- 2 files changed, 10 insertions(+), 5 deletions(-)common.attr +7
-2@@ -90,10 +90,14 @@ _create_n_aces() # _filter_aces() { - $AWK_PROG ' + tmp_file=`mktemp /tmp/ace.XXXXXX` + + (_cat_passwd; _cat_group) > $tmp_file + + $AWK_PROG -v tmpfile=$tmp_file ' BEGIN { FS=":" - while ( "_cat_passwd" | getline > 0 ) { + while ( getline <tmpfile > 0 ) { idlist[$1] = $3 } }@@ -102,6 +106,7 @@ _filter_aces() /^default:user/ { if ($3 in idlist) sub($3, idlist[$3]); print; next} {print} ' + rm -f $tmp_file }
_filter_aces_notypes()common.rc +3
-3@@ -800,13 +800,14 @@ _yp_active() local dn dn=$(domainname 2>/dev/null) test -n "${dn}" -a "${dn}" != "(none)" + echo $? } # cat the password file # _cat_passwd() { - [ _yp_active ] && ypcat passwd + [ $(_yp_active) -eq 0 ] && ypcat passwd cat /etc/passwd }@@ -814,10 +815,9 @@ _cat_passwd() # _cat_group() { - [ _yp_active ] && ypcat group + [ $(_yp_active) -eq 0 ] && ypcat group cat /etc/group } -export -f _yp_active _cat_passwd _cat_group # check for the fsgqa user on the machine #Signature · 6 lines
1.7.1 _______________________________________________ xfs mailing list [email protected] http://oss.sgi.com/mailman/listinfo/xfs
This email communication and any files transmitted with it may contain confidential and or proprietary information and is provided for the use of the intended recipient only. Any review, retransmission or dissemination of this information by anyone other than the intended recipient is prohibited. If you receive this email in error, please contact the sender and delete this communication and any copies immediately. Thank you.
http://www.encana.com
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Quoted 17 lines · David
Dave Chinner <[email protected]> said,
Quoted 15 lines
NIS detection wasn't tested on machines without NIS enabled, so many tests are
failing on non-NIS machines. the_yp_activefunction has no specific return
value so always evaluates as 0 (active) and the "_cat_passwd" function is
called from within an awk script which is not valid as the shell may run with a
sanitised environment. Hence the functions do not need specific export calls,
either, as unsanitised subshells will automatically inherit the parent's
environment.
Quoted 3 lines
Is there any reason why getent passwd/group cannot be used for these, as it would get local and nss defined accounts? This would add support for people using LDAP as well.
If you want your test box to use this stuff, then feel free to submit patches that support this.
In general, though, I think that running anything other than a single user account on a filesystem test box is not necessary - you don't want random users to be able to log in to the machine you are running potentially destructive tests on.
Cheers,
Dave.
Signature · 7 lines
Dave Chinner [email protected] _______________________________________________ xfs mailing list [email protected] http://oss.sgi.com/mailman/listinfo/xfs