diff mbox series

[v2,1/1] isofs.sh: Use nobody user

Message ID 20240902062738.267190-1-pvorel@suse.cz
State Accepted
Headers show
Series [v2,1/1] isofs.sh: Use nobody user | expand

Commit Message

Petr Vorel Sept. 2, 2024, 6:27 a.m. UTC
From: Wei Gao <wegao@suse.com>

Some distros don't have user/group 'bin' (e.g. SUSE SLE-Micro).
Although this user/group is required and created IDcheck.sh.
(This script should be replaced in the future with library call,
but it's still supported).

Replace 'bin' user/group with 'nobody' user (more common on various
Linux distributions). Most of the distros name have 'nobody' user's
group also 'nobody', but at least Debian name it 'nogroup'. Therefore
detect this name with 'id -g -n'.

Reported-by: Wei Gao <wegao@suse.com>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
Changes v1->v2:
* Correct fallback condition (thanks Wei for the report):
-	[ "$TEST_USER" ] || TEST_GROUP="$TEST_USER"
+	[ "$TEST_GROUP" ] || TEST_GROUP="$TEST_USER"

 testcases/kernel/fs/iso9660/isofs.sh | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

Comments

Wei Gao Sept. 2, 2024, 6:51 a.m. UTC | #1
On Mon, Sep 02, 2024 at 08:27:38AM +0200, Petr Vorel wrote:
> From: Wei Gao <wegao@suse.com>
> 
> Some distros don't have user/group 'bin' (e.g. SUSE SLE-Micro).
> Although this user/group is required and created IDcheck.sh.
> (This script should be replaced in the future with library call,
> but it's still supported).
> 
> Replace 'bin' user/group with 'nobody' user (more common on various
> Linux distributions). Most of the distros name have 'nobody' user's
> group also 'nobody', but at least Debian name it 'nogroup'. Therefore
> detect this name with 'id -g -n'.
> 
> Reported-by: Wei Gao <wegao@suse.com>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> Changes v1->v2:
> * Correct fallback condition (thanks Wei for the report):
> -	[ "$TEST_USER" ] || TEST_GROUP="$TEST_USER"
> +	[ "$TEST_GROUP" ] || TEST_GROUP="$TEST_USER"
> 
>  testcases/kernel/fs/iso9660/isofs.sh | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/testcases/kernel/fs/iso9660/isofs.sh b/testcases/kernel/fs/iso9660/isofs.sh
> index d1a362d979..088e062d67 100755
> --- a/testcases/kernel/fs/iso9660/isofs.sh
> +++ b/testcases/kernel/fs/iso9660/isofs.sh
> @@ -13,10 +13,19 @@ TST_NEEDS_CMDS="mount umount"
>  TST_NEEDS_TMPDIR=1
>  TST_TESTFUNC=do_test
>  TST_CNT=3
> +TST_SETUP="setup"
>  
>  MAX_DEPTH=3
>  MAX_DIRS=4
>  
> +TEST_USER='nobody'
> +
> +setup()
> +{
> +	TEST_GROUP="$(id -g -n $TEST_USER)"
> +	[ "$TEST_GROUP" ] || TEST_GROUP="$TEST_USER"
If $TEST_GROUP can not be found then this case will failed unless we create new group.
My suggestion is remove above line totally or we start create group for nobody user.
> +}
> +
>  gen_fs_tree()
>  {
>  	local cur_path="$1"
> @@ -92,8 +101,8 @@ do_test()
>  			"loop,block=512,unhide" \
>  			"loop,block=1024,cruft" \
>  			"loop,block=2048,nocompress" \
> -			"loop,check=strict,map=off,gid=bin,uid=bin" \
> -			"loop,check=strict,map=acorn,gid=bin,uid=bin" \
> +			"loop,check=strict,map=off,gid=$TEST_GROUP,uid=$TEST_USER" \
> +			"loop,check=strict,map=acorn,gid=$TEST_GROUP,uid=$TEST_USER" \
>  			"loop,check=relaxed,map=normal" \
>  			"loop,block=512,unhide,session=2"
>  		do
> -- 
> 2.45.2
>
Petr Vorel Sept. 2, 2024, 7:16 a.m. UTC | #2
Hi Wei,

> > +TEST_USER='nobody'
> > +
> > +setup()
> > +{
> > +	TEST_GROUP="$(id -g -n $TEST_USER)"
> > +	[ "$TEST_GROUP" ] || TEST_GROUP="$TEST_USER"
> If $TEST_GROUP can not be found then this case will failed unless we create new group.
> My suggestion is remove above line totally or we start create group for nobody user.

That check is a fallback if 'id' is not installed but there is requested
nobody:nobody or nobody/nogroup group set by IDcheck.sh or manually.

But sure, I can delete it if we expect id to be installed. I just did not want
to require 'id' for this test when there can be a workaround.

Kind regards,
Petr
Wei Gao Sept. 2, 2024, 8 a.m. UTC | #3
On Mon, Sep 02, 2024 at 09:16:15AM +0200, Petr Vorel wrote:
> Hi Wei,
> 
> > > +TEST_USER='nobody'
> > > +
> > > +setup()
> > > +{
> > > +	TEST_GROUP="$(id -g -n $TEST_USER)"
> > > +	[ "$TEST_GROUP" ] || TEST_GROUP="$TEST_USER"
> > If $TEST_GROUP can not be found then this case will failed unless we create new group.
> > My suggestion is remove above line totally or we start create group for nobody user.
> 
> That check is a fallback if 'id' is not installed but there is requested
> nobody:nobody or nobody/nogroup group set by IDcheck.sh or manually.
Thanks for your explaination. Then no question from my side.

Acked-by: Wei Gao <wegao@suse.com>

> 
> But sure, I can delete it if we expect id to be installed. I just did not want
> to require 'id' for this test when there can be a workaround.
> 
> Kind regards,
> Petr
Cyril Hrubis Sept. 3, 2024, 10:06 a.m. UTC | #4
Hi!
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
Petr Vorel Sept. 3, 2024, 12:47 p.m. UTC | #5
Hi Cyril,

thanks for your review, merged!

Kind regards,
Petr
diff mbox series

Patch

diff --git a/testcases/kernel/fs/iso9660/isofs.sh b/testcases/kernel/fs/iso9660/isofs.sh
index d1a362d979..088e062d67 100755
--- a/testcases/kernel/fs/iso9660/isofs.sh
+++ b/testcases/kernel/fs/iso9660/isofs.sh
@@ -13,10 +13,19 @@  TST_NEEDS_CMDS="mount umount"
 TST_NEEDS_TMPDIR=1
 TST_TESTFUNC=do_test
 TST_CNT=3
+TST_SETUP="setup"
 
 MAX_DEPTH=3
 MAX_DIRS=4
 
+TEST_USER='nobody'
+
+setup()
+{
+	TEST_GROUP="$(id -g -n $TEST_USER)"
+	[ "$TEST_GROUP" ] || TEST_GROUP="$TEST_USER"
+}
+
 gen_fs_tree()
 {
 	local cur_path="$1"
@@ -92,8 +101,8 @@  do_test()
 			"loop,block=512,unhide" \
 			"loop,block=1024,cruft" \
 			"loop,block=2048,nocompress" \
-			"loop,check=strict,map=off,gid=bin,uid=bin" \
-			"loop,check=strict,map=acorn,gid=bin,uid=bin" \
+			"loop,check=strict,map=off,gid=$TEST_GROUP,uid=$TEST_USER" \
+			"loop,check=strict,map=acorn,gid=$TEST_GROUP,uid=$TEST_USER" \
 			"loop,check=relaxed,map=normal" \
 			"loop,block=512,unhide,session=2"
 		do