fstests.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/2] generic/079 test fails if 'nobody' and 'daemon' don't exist
@ 2021-09-27 10:58 Luis Henriques
  2021-09-27 10:58 ` [PATCH v3 1/2] common/rc: add _require_user_exists() to check if a user exists Luis Henriques
  2021-09-27 10:58 ` [PATCH v3 2/2] generic/079: make sure users 'nobody' and 'daemon' exist Luis Henriques
  0 siblings, 2 replies; 3+ messages in thread
From: Luis Henriques @ 2021-09-27 10:58 UTC (permalink / raw)
  To: fstests
  Cc: Zorro Lang, Eric Biggers, Darrick J . Wong, Eryu Guan,
	Luis Chamberlain, Luis Henriques

Hi!

Changes since v2:

- Make the 'grep' command more accurate, i.e. make sure user 'myuser'
  exists in /etc/passwd and not 'myuser123'.  Suggested by Zorro Lang.

Changed since v1:

- 'user' variable in _require_user_exists() is now local, as suggested
  by Eric Biggers.

(I've also added Darrick's Reviewed-by tag to the 2nd patch only.)

Original cover-letter:

Test generic/079 currently fails if for some reason the 'nobody' or
'daemon' users don't exist:

*** starting up
add_acl(/mnt/scratch/079/immutable.f) did not set errno == EPERM
add_acl(/mnt/scratch/079/immutable.d) did not set errno == EPERM
add_acl(/mnt/scratch/079/append-only.f) did not set errno == EPERM
add_acl(/mnt/scratch/079/append-only.d) did not set errno == EPERM
testing immutable...FAILED! (2 tests failed)
testing append-only...FAILED! (2 tests failed)
*** cleaning up

The first patch that follows adds a new function _require_user_exists()
that will verify a user exists in the system (and refactors existent
_require_user() to use the new function).

The second patch is the actual test fix.

Luis Henriques (2):
  common/rc: add _require_user_exists() to check if a user exists
  generic/079: make sure users 'nobody' and 'daemon' exist

 common/rc         | 27 ++++++++++++++++++---------
 tests/generic/079 |  2 ++
 2 files changed, 20 insertions(+), 9 deletions(-)


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH v3 1/2] common/rc: add _require_user_exists() to check if a user exists
  2021-09-27 10:58 [PATCH v3 0/2] generic/079 test fails if 'nobody' and 'daemon' don't exist Luis Henriques
@ 2021-09-27 10:58 ` Luis Henriques
  2021-09-27 10:58 ` [PATCH v3 2/2] generic/079: make sure users 'nobody' and 'daemon' exist Luis Henriques
  1 sibling, 0 replies; 3+ messages in thread
From: Luis Henriques @ 2021-09-27 10:58 UTC (permalink / raw)
  To: fstests
  Cc: Zorro Lang, Eric Biggers, Darrick J . Wong, Eryu Guan,
	Luis Chamberlain, Luis Henriques

Function _require_user() does check if a user exists *and* if it is able
to execute commands.  Add a new function to simply check if a user exists.

Signed-off-by: Luis Henriques <lhenriques@suse.de>
---
 common/rc | 27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/common/rc b/common/rc
index 154bc2dd7e94..7154d246b1fc 100644
--- a/common/rc
+++ b/common/rc
@@ -2289,18 +2289,27 @@ _cat_group()
 	cat /etc/group
 }
 
-# check for a user on the machine, fsgqa as default
+# check if a user exists in the system
+#
+_require_user_exists()
+{
+	local user=$1
+	_cat_passwd | grep -q "^$user:"
+	[ "$?" == "0" ] || _notrun "$user user not defined."
+}
+
+# check if a user exists and is able to execute commands.
+# Uses 'fsgqa' user as default.
 #
 _require_user()
 {
-    qa_user=fsgqa
-    if [ -n "$1" ];then
-        qa_user=$1
-    fi
-    _cat_passwd | grep -q $qa_user
-    [ "$?" == "0" ] || _notrun "$qa_user user not defined."
-    echo /bin/true | su $qa_user
-    [ "$?" == "0" ] || _notrun "$qa_user cannot execute commands."
+	qa_user=fsgqa
+	if [ -n "$1" ];then
+		qa_user=$1
+	fi
+	_require_user_exists $qa_user
+	echo /bin/true | su $qa_user
+	[ "$?" == "0" ] || _notrun "$qa_user cannot execute commands."
 }
 
 # check for a chown support

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH v3 2/2] generic/079: make sure users 'nobody' and 'daemon' exist
  2021-09-27 10:58 [PATCH v3 0/2] generic/079 test fails if 'nobody' and 'daemon' don't exist Luis Henriques
  2021-09-27 10:58 ` [PATCH v3 1/2] common/rc: add _require_user_exists() to check if a user exists Luis Henriques
@ 2021-09-27 10:58 ` Luis Henriques
  1 sibling, 0 replies; 3+ messages in thread
From: Luis Henriques @ 2021-09-27 10:58 UTC (permalink / raw)
  To: fstests
  Cc: Zorro Lang, Eric Biggers, Darrick J . Wong, Eryu Guan,
	Luis Chamberlain, Luis Henriques

Test 'src/t_immutable' assumes the existence of users 'nobody' and
'daemon' on the system.  If any of these users don't exist, the test will
fail with:

  add_acl(/media/scratch/079/immutable.f) did not set errno == EPERM
  ...

because it tries to set ACLs such as:

  u::rwx,g::rwx,o::rwx,u:daemon:rwx,m::rwx

Use the new _require_user_exists() function to ensure these users exist.

Signed-off-by: Luis Henriques <lhenriques@suse.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
---
 tests/generic/079 | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/generic/079 b/tests/generic/079
index 829275db8cdf..9e7ccd31c8e2 100755
--- a/tests/generic/079
+++ b/tests/generic/079
@@ -26,6 +26,8 @@ _cleanup()
 _supported_fs generic
 
 _require_chattr ia
+_require_user_exists "nobody"
+_require_user_exists "daemon"
 _require_test_program "t_immutable"
 _require_scratch
 

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-09-27 10:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-27 10:58 [PATCH v3 0/2] generic/079 test fails if 'nobody' and 'daemon' don't exist Luis Henriques
2021-09-27 10:58 ` [PATCH v3 1/2] common/rc: add _require_user_exists() to check if a user exists Luis Henriques
2021-09-27 10:58 ` [PATCH v3 2/2] generic/079: make sure users 'nobody' and 'daemon' exist Luis Henriques

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).