* [PATCH v3 0/4] tst_sudo.c, ima_{conditionals, measurements}.sh enhancements
@ 2025-11-27 8:26 Petr Vorel
2025-11-27 8:26 ` [PATCH v3 1/4] shell: Add tst_sudo.c helper Petr Vorel
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Petr Vorel @ 2025-11-27 8:26 UTC (permalink / raw)
To: ltp
Cc: Petr Vorel, Mimi Zohar, linux-integrity, selinux, Cyril Hrubis,
Jan Stancek, Li Wang
From: Petr Vorel <petr.vorel@gmail.com>
Changes v2->v3:
Rebased due conflict when 69b28f1f78 ("shell: Add support for runtime")
was merged.
Links to v2:
https://lore.kernel.org/ltp/20251121152111.10419-1-pvorel@suse.cz/
https://patchwork.ozlabs.org/project/ltp/list/?series=483104&state=*
Changes v1->v2:
Main change is implementing LTP binary tst_sudo.c as suggested by Jan
Stancek [1] instead of creating new user.
Links to v1:
https://lore.kernel.org/ltp/20251002083701.315334-1-pvorel@suse.cz/
https://patchwork.ozlabs.org/project/ltp/list/?series=476004&state=*
[1] https://lore.kernel.org/ltp/CAASaF6yjdrLLVnehESx1TjsrB_z48nmN_2i585GPfkG3Vvg15Q@mail.gmail.com/
Petr Vorel (4):
shell: Add tst_sudo.c helper
tst_test.sh: Add TST_USR_{G,U}ID variables
ima_{conditionals,measurements}.sh: Use tst_sudo
ima_conditionals.sh: Split test by request
doc/users/setup_tests.rst | 4 +
runtest/ima | 5 +-
.../integrity/ima/tests/ima_conditionals.sh | 78 +++++++++++--------
.../integrity/ima/tests/ima_measurements.sh | 11 +--
testcases/lib/.gitignore | 1 +
testcases/lib/Makefile | 2 +-
testcases/lib/tst_sudo.c | 51 ++++++++++++
testcases/lib/tst_test.sh | 6 +-
8 files changed, 115 insertions(+), 43 deletions(-)
create mode 100644 testcases/lib/tst_sudo.c
--
2.51.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v3 1/4] shell: Add tst_sudo.c helper
2025-11-27 8:26 [PATCH v3 0/4] tst_sudo.c, ima_{conditionals, measurements}.sh enhancements Petr Vorel
@ 2025-11-27 8:26 ` Petr Vorel
[not found] ` <CAEemH2cUYekSphFW_uj2w1FzYt3RWXDDnhmQ5TFAyr0T3HFxow@mail.gmail.com>
2025-11-27 8:26 ` [PATCH v3 2/4] tst_test.sh: Add TST_USR_{G,U}ID variables Petr Vorel
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: Petr Vorel @ 2025-11-27 8:26 UTC (permalink / raw)
To: ltp
Cc: Petr Vorel, Mimi Zohar, linux-integrity, selinux, Cyril Hrubis,
Jan Stancek, Li Wang
It will be used in LTP IMA tests. Not only it removes external
dependency, but also fixes problem when 'nobody' user is not possible to
use due using /usr/sbin/nologin shell.
Suggested-by: Jan Stancek <jstancek@redhat.com>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
doc/users/setup_tests.rst | 4 ++++
testcases/lib/.gitignore | 1 +
testcases/lib/Makefile | 2 +-
testcases/lib/tst_sudo.c | 50 +++++++++++++++++++++++++++++++++++++++
4 files changed, 56 insertions(+), 1 deletion(-)
create mode 100644 testcases/lib/tst_sudo.c
diff --git a/doc/users/setup_tests.rst b/doc/users/setup_tests.rst
index 38976f3b0a..9c49852830 100644
--- a/doc/users/setup_tests.rst
+++ b/doc/users/setup_tests.rst
@@ -71,6 +71,10 @@ users.
* - LTP_IMA_LOAD_POLICY
- Load IMA example policy, see :master:`testcases/kernel/security/integrity/ima/README.md`.
+ * - LTP_USR_UID, LTP_USR_GID
+ - Set UID and GID of ``nobody`` user for :doc:`../developers/api_shell_tests`,
+ see :master:`testcases/lib/tst_sudo.c`.
+
* - LTP_VIRT_OVERRIDE
- Overrides virtual machine detection in the test library. Setting it to
empty string, tells the library that system is not a virtual machine.
diff --git a/testcases/lib/.gitignore b/testcases/lib/.gitignore
index 19d7c67bbe..785d638cba 100644
--- a/testcases/lib/.gitignore
+++ b/testcases/lib/.gitignore
@@ -26,3 +26,4 @@
/tst_res_
/tst_run_shell
/tst_remaining_runtime
+/tst_sudo
diff --git a/testcases/lib/Makefile b/testcases/lib/Makefile
index 2309a42a3d..9be9946057 100644
--- a/testcases/lib/Makefile
+++ b/testcases/lib/Makefile
@@ -17,6 +17,6 @@ MAKE_TARGETS := tst_sleep tst_random tst_checkpoint tst_rod tst_kvcmp\
tst_get_median tst_hexdump tst_get_free_pids tst_timeout_kill\
tst_check_kconfigs tst_cgctl tst_fsfreeze tst_ns_create tst_ns_exec\
tst_ns_ifmove tst_lockdown_enabled tst_secureboot_enabled tst_res_\
- tst_run_shell tst_remaining_runtime
+ tst_run_shell tst_remaining_runtime tst_sudo
include $(top_srcdir)/include/mk/generic_trunk_target.mk
diff --git a/testcases/lib/tst_sudo.c b/testcases/lib/tst_sudo.c
new file mode 100644
index 0000000000..e8d5d8dd9d
--- /dev/null
+++ b/testcases/lib/tst_sudo.c
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) 2025 Petr Vorel <pvorel@suse.cz>
+ */
+
+#define LTP_USR_UID 65534
+#define LTP_USR_GID 65534
+
+#define TST_NO_DEFAULT_MAIN
+#include "tst_test.h"
+
+static void print_help(void)
+{
+ fprintf(stderr, "Usage: %s cmd [args] ...\n", __FILE__);
+ fprintf(stderr, "Usage: %s cmd [-h] print help\n\n", __FILE__);
+
+ fprintf(stderr, "Environment Variables\n");
+ fprintf(stderr, "LTP_USR_UID: UID of 'nobody' user, defaults %d\n",
+ LTP_USR_UID);
+ fprintf(stderr, "LTP_USR_GID: GID of 'nobody' user, defaults %d\n",
+ LTP_USR_GID);
+}
+
+int main(int argc, char *argv[])
+{
+ if (argc < 2 || !strcmp(argv[1], "-h")) {
+ print_help();
+ return 1;
+ }
+
+ unsigned uid = LTP_USR_UID, gid = LTP_USR_GID;
+
+ char *uid_env = getenv(TST_TO_STR_(LTP_USR_UID));
+ char *gid_env = getenv(TST_TO_STR_(LTP_USR_GID));
+
+ if (uid_env)
+ uid = SAFE_STRTOL(uid_env, 1, INT_MAX);
+
+ if (gid_env)
+ gid = SAFE_STRTOL(gid_env, 1, INT_MAX);
+
+ tst_res(TINFO, "UID: %d, GID: %d", uid, gid);
+ SAFE_SETGROUPS(0, NULL);
+ SAFE_SETRESGID(gid, gid, gid);
+ SAFE_SETRESUID(uid, uid, uid);
+
+ SAFE_CMD((const char * const *)&argv[1], NULL, NULL);
+
+ return 0;
+}
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 2/4] tst_test.sh: Add TST_USR_{G,U}ID variables
2025-11-27 8:26 [PATCH v3 0/4] tst_sudo.c, ima_{conditionals, measurements}.sh enhancements Petr Vorel
2025-11-27 8:26 ` [PATCH v3 1/4] shell: Add tst_sudo.c helper Petr Vorel
@ 2025-11-27 8:26 ` Petr Vorel
2025-11-27 8:26 ` [PATCH v3 3/4] ima_{conditionals,measurements}.sh: Use tst_sudo Petr Vorel
2025-11-27 8:26 ` [PATCH v3 4/4] ima_conditionals.sh: Split test by request Petr Vorel
3 siblings, 0 replies; 8+ messages in thread
From: Petr Vorel @ 2025-11-27 8:26 UTC (permalink / raw)
To: ltp
Cc: Petr Vorel, Mimi Zohar, linux-integrity, selinux, Cyril Hrubis,
Jan Stancek, Li Wang
Add TST_USR_{G,U}ID variables with the default values from tst_sudo.c.
These can be used as a default values for tests which use tst_sudo and
need to know UID/GID for other commands.
It will be used in LTP IMA tests.
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
testcases/lib/tst_sudo.c | 1 +
testcases/lib/tst_test.sh | 6 +++++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/testcases/lib/tst_sudo.c b/testcases/lib/tst_sudo.c
index e8d5d8dd9d..e937828273 100644
--- a/testcases/lib/tst_sudo.c
+++ b/testcases/lib/tst_sudo.c
@@ -3,6 +3,7 @@
* Copyright (c) 2025 Petr Vorel <pvorel@suse.cz>
*/
+/* update also tst_test.sh */
#define LTP_USR_UID 65534
#define LTP_USR_GID 65534
diff --git a/testcases/lib/tst_test.sh b/testcases/lib/tst_test.sh
index 4be10a4f94..49f282d7c8 100644
--- a/testcases/lib/tst_test.sh
+++ b/testcases/lib/tst_test.sh
@@ -17,6 +17,10 @@ export TST_ITERATIONS=1
export TST_TMPDIR_RHOST=0
export TST_LIB_LOADED=1
+# see testcases/lib/tst_sudo.c
+export TST_USR_UID="${LTP_USR_UID:-65534}"
+export TST_USR_GID="${LTP_USR_GID:-65534}"
+
. tst_ansi_color.sh
. tst_security.sh
@@ -689,7 +693,7 @@ tst_run()
CHECKPOINT_WAKE2|CHECKPOINT_WAKE_AND_WAIT);;
DEV_EXTRA_OPTS|DEV_FS_OPTS|FORMAT_DEVICE|MOUNT_DEVICE);;
SKIP_FILESYSTEMS|SKIP_IN_LOCKDOWN|SKIP_IN_SECUREBOOT);;
- DEVICE_SIZE);;
+ DEVICE_SIZE|USR_UID|USR_GID);;
*) tst_res TWARN "Reserved variable TST_$_tst_i used!";;
esac
done
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 3/4] ima_{conditionals,measurements}.sh: Use tst_sudo
2025-11-27 8:26 [PATCH v3 0/4] tst_sudo.c, ima_{conditionals, measurements}.sh enhancements Petr Vorel
2025-11-27 8:26 ` [PATCH v3 1/4] shell: Add tst_sudo.c helper Petr Vorel
2025-11-27 8:26 ` [PATCH v3 2/4] tst_test.sh: Add TST_USR_{G,U}ID variables Petr Vorel
@ 2025-11-27 8:26 ` Petr Vorel
2025-11-27 8:26 ` [PATCH v3 4/4] ima_conditionals.sh: Split test by request Petr Vorel
3 siblings, 0 replies; 8+ messages in thread
From: Petr Vorel @ 2025-11-27 8:26 UTC (permalink / raw)
To: ltp
Cc: Petr Vorel, Mimi Zohar, linux-integrity, selinux, Cyril Hrubis,
Jan Stancek, Li Wang
Replace 'sudo' and 'sg' with 'tst_sudo'.
This not only removes 'sudo' external dependency, but it s required
because new releases of many distros (e.g. Debian, openSUSE Tumbleweed,
SLES, ...) switched shell for 'nobody' user from /bin/bash (or /bin/sh)
to /usr/sbin/nologin. That effectively disables using 'sudo', 'su', 'sg':
ima_conditionals 1 TINFO: verify measuring user files when requested via uid
sudo: Account expired or PAM config lacks an "account" section for sudo, contact your system administrator
sudo: a password is required
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
.../integrity/ima/tests/ima_conditionals.sh | 13 ++++++-------
.../integrity/ima/tests/ima_measurements.sh | 11 ++---------
2 files changed, 8 insertions(+), 16 deletions(-)
diff --git a/testcases/kernel/security/integrity/ima/tests/ima_conditionals.sh b/testcases/kernel/security/integrity/ima/tests/ima_conditionals.sh
index ba19176039..e290dcdaaa 100755
--- a/testcases/kernel/security/integrity/ima/tests/ima_conditionals.sh
+++ b/testcases/kernel/security/integrity/ima/tests/ima_conditionals.sh
@@ -9,7 +9,7 @@
# gid and fgroup options test kernel commit 40224c41661b ("ima: add gid
# support") from v5.16.
-TST_NEEDS_CMDS="cat chgrp chown id sg sudo"
+TST_NEEDS_CMDS="cat chgrp chown"
TST_SETUP="setup"
TST_CNT=1
@@ -27,8 +27,8 @@ verify_measurement()
local test_file="$PWD/test.txt"
local cmd="cat $test_file > /dev/null"
- local value="$(id -u $user)"
- [ "$request" = 'gid' -o "$request" = 'fgroup' ] && value="$(id -g $user)"
+ local value="$TST_USR_UID"
+ [ "$request" = 'gid' -o "$request" = 'fgroup' ] && value="$TST_USR_GID"
# needs to be checked each run (not in setup)
require_policy_writable
@@ -41,15 +41,14 @@ verify_measurement()
case "$request" in
fgroup)
- chgrp $user $test_file
+ chgrp $TST_USR_GID $test_file
sh -c "$cmd"
;;
fowner)
- chown $user $test_file
+ chown $TST_USR_UID $test_file
sh -c "$cmd"
;;
- gid) sg $user "sh -c '$cmd'";;
- uid) sudo -n -u $user sh -c "$cmd";;
+ gid|uid) tst_sudo sh -c "$cmd";;
*) tst_brk TBROK "Invalid res type '$1'";;
esac
diff --git a/testcases/kernel/security/integrity/ima/tests/ima_measurements.sh b/testcases/kernel/security/integrity/ima/tests/ima_measurements.sh
index 60350f3926..30bfe3e629 100755
--- a/testcases/kernel/security/integrity/ima/tests/ima_measurements.sh
+++ b/testcases/kernel/security/integrity/ima/tests/ima_measurements.sh
@@ -68,30 +68,23 @@ test2()
test3()
{
- local user="nobody"
local dir="$PWD/user"
local file="$dir/test.txt"
local cmd="grep $file $ASCII_MEASUREMENTS"
# Default policy does not measure user files
tst_res TINFO "verify not measuring user files"
- tst_check_cmds sudo || return
if [ "$IMA_MISSING_POLICY_CONTENT" = 1 ]; then
tst_res TCONF "test requires specific policy, try load it with LTP_IMA_LOAD_POLICY=1"
return
fi
- if ! id $user >/dev/null 2>/dev/null; then
- tst_res TCONF "missing system user $user (wrong installation)"
- return
- fi
-
[ -d "$dir" ] || mkdir -m 0700 $dir
- chown $user $dir
+ chown $TST_USR_UID $dir
cd $dir
# need to read file to get updated $ASCII_MEASUREMENTS
- sudo -n -u $user sh -c "echo $(cat /proc/uptime) user file > $file; cat $file > /dev/null"
+ tst_sudo sh -c "echo $(cat /proc/uptime) user file > $file; cat $file > /dev/null"
cd ..
if ! tst_rod "$cmd" 2> /dev/null; then
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 4/4] ima_conditionals.sh: Split test by request
2025-11-27 8:26 [PATCH v3 0/4] tst_sudo.c, ima_{conditionals, measurements}.sh enhancements Petr Vorel
` (2 preceding siblings ...)
2025-11-27 8:26 ` [PATCH v3 3/4] ima_{conditionals,measurements}.sh: Use tst_sudo Petr Vorel
@ 2025-11-27 8:26 ` Petr Vorel
3 siblings, 0 replies; 8+ messages in thread
From: Petr Vorel @ 2025-11-27 8:26 UTC (permalink / raw)
To: ltp
Cc: Petr Vorel, Mimi Zohar, linux-integrity, selinux, Cyril Hrubis,
Jan Stancek, Li Wang
This helps to run all testcases on systems without CONFIG_IMA_WRITE_POLICY=y
(disabled by default in mainline, therefore disabled for some distros,
e.g. openSUSE Tumbleweed), if SUT reboots.
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
runtest/ima | 5 +-
.../integrity/ima/tests/ima_conditionals.sh | 67 ++++++++++++-------
2 files changed, 46 insertions(+), 26 deletions(-)
diff --git a/runtest/ima b/runtest/ima
index 01942eefa3..c8d0c6801e 100644
--- a/runtest/ima
+++ b/runtest/ima
@@ -6,5 +6,8 @@ ima_violations ima_violations.sh
ima_keys ima_keys.sh
ima_kexec ima_kexec.sh
ima_selinux ima_selinux.sh
-ima_conditionals ima_conditionals.sh
+ima_conditionals_uid ima_conditionals.sh -r uid
+ima_conditionals_fowner ima_conditionals.sh -r fowner
+ima_conditionals_gid ima_conditionals.sh -r gid
+ima_conditionals_fgroup ima_conditionals.sh -r fgroup
evm_overlay evm_overlay.sh
diff --git a/testcases/kernel/security/integrity/ima/tests/ima_conditionals.sh b/testcases/kernel/security/integrity/ima/tests/ima_conditionals.sh
index e290dcdaaa..8eed0b6a9d 100755
--- a/testcases/kernel/security/integrity/ima/tests/ima_conditionals.sh
+++ b/testcases/kernel/security/integrity/ima/tests/ima_conditionals.sh
@@ -11,35 +11,66 @@
TST_NEEDS_CMDS="cat chgrp chown"
TST_SETUP="setup"
-TST_CNT=1
+TST_OPTS="r:"
+TST_USAGE="usage"
+TST_PARSE_ARGS="parse_args"
+REQUEST="uid"
+
+parse_args()
+{
+ REQUEST="$2"
+}
+
+usage()
+{
+ cat << EOF
+usage: $0 [-r <uid|fowner|gid|fgroup>]
+
+OPTIONS
+-r Specify the request to be measured. One of:
+ uid, fowner, gid, fgroup
+ Default: uid
+EOF
+}
setup()
{
+ case "$REQUEST" in
+ fgroup|fowner|gid|uid)
+ tst_res TINFO "request '$REQUEST'"
+ ;;
+ *) tst_brk TBROK "Invalid -r '$REQUEST', use: -r <uid|fowner|gid|fgroup>";;
+ esac
+
if check_need_signed_policy; then
tst_brk TCONF "policy have to be signed"
fi
}
-verify_measurement()
+test()
{
+ # needs to be checked each run (not in setup)
+ require_policy_writable
+
local request="$1"
- local user="nobody"
local test_file="$PWD/test.txt"
local cmd="cat $test_file > /dev/null"
-
local value="$TST_USR_UID"
- [ "$request" = 'gid' -o "$request" = 'fgroup' ] && value="$TST_USR_GID"
- # needs to be checked each run (not in setup)
- require_policy_writable
+ if [ "$REQUEST" = 'gid' -o "$REQUEST" = 'fgroup' ]; then
+ if tst_kvcmp -lt 5.16; then
+ tst_brk TCONF "gid and fgroup options require kernel 5.16 or newer"
+ fi
+ value="$TST_USR_GID"
+ fi
ROD rm -f $test_file
- tst_res TINFO "verify measuring user files when requested via $request"
- ROD echo "measure $request=$value" \> $IMA_POLICY
- ROD echo "$(cat /proc/uptime) $request test" \> $test_file
+ tst_res TINFO "verify measuring user files when requested via $REQUEST"
+ ROD echo "measure $REQUEST=$value" \> $IMA_POLICY
+ ROD echo "$(cat /proc/uptime) $REQUEST test" \> $test_file
- case "$request" in
+ case "$REQUEST" in
fgroup)
chgrp $TST_USR_GID $test_file
sh -c "$cmd"
@@ -49,24 +80,10 @@ verify_measurement()
sh -c "$cmd"
;;
gid|uid) tst_sudo sh -c "$cmd";;
- *) tst_brk TBROK "Invalid res type '$1'";;
esac
ima_check $test_file
}
-test1()
-{
- verify_measurement uid
- verify_measurement fowner
-
- if tst_kvcmp -lt 5.16; then
- tst_brk TCONF "gid and fgroup options require kernel 5.16 or newer"
- fi
-
- verify_measurement gid
- verify_measurement fgroup
-}
-
. ima_setup.sh
tst_run
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v3 1/4] shell: Add tst_sudo.c helper
[not found] ` <CAEemH2e6ivP0rzfTBp5LnZ8n-oe7moqfHszgs2QyYVMUTUQ_wQ@mail.gmail.com>
@ 2025-11-27 12:55 ` Petr Vorel
2025-12-09 13:19 ` Cyril Hrubis
1 sibling, 0 replies; 8+ messages in thread
From: Petr Vorel @ 2025-11-27 12:55 UTC (permalink / raw)
To: Li Wang
Cc: ltp, Mimi Zohar, linux-integrity, selinux, Cyril Hrubis,
Jan Stancek
> On Thu, Nov 27, 2025 at 7:57 PM Li Wang <liwang@redhat.com> wrote:
> > Hi Petr,
> > I feel that the filename tst_sudo.c is a bit misleading. The helper
> > doesn’t
> > replicate sudo behavior (authentication, privilege escalation), it simply
> > drops from root to a fixed UID/GID before executing a command.
> > So readers may expect a “sudo-like” elevation wrapper when, however
> > it’s a privilege-dropping trampoline.
Thanks, makes sense.
> > What about renaming it to:
> > tst_runas.c,
> > tst_runas_nobody.c, or
> > tst_drop_privs.c?
> Personally, I prefer the tst_runas_nody.c because it reflects the
> default privilege,
> but due it supports the more env so contains "su" maybe better:
> tst_su_switch.c, tst_su_cmd.c
I'd be ok with tst_su.c, but sure tst_su_cmd.c is ok as well.
I'll wait little longer for feedback from others.
Kind regards,
Petr
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 1/4] shell: Add tst_sudo.c helper
[not found] ` <CAEemH2e6ivP0rzfTBp5LnZ8n-oe7moqfHszgs2QyYVMUTUQ_wQ@mail.gmail.com>
2025-11-27 12:55 ` Petr Vorel
@ 2025-12-09 13:19 ` Cyril Hrubis
2025-12-09 18:44 ` Petr Vorel
1 sibling, 1 reply; 8+ messages in thread
From: Cyril Hrubis @ 2025-12-09 13:19 UTC (permalink / raw)
To: Li Wang; +Cc: Petr Vorel, ltp, Mimi Zohar, linux-integrity, selinux,
Jan Stancek
Hi!
> > I feel that the filename tst_sudo.c is a bit misleading. The helper
> > doesn’t
> > replicate sudo behavior (authentication, privilege escalation), it simply
> > drops from root to a fixed UID/GID before executing a command.
> >
> > So readers may expect a “sudo-like” elevation wrapper when, however
> > it’s a privilege-dropping trampoline.
> >
> > What about renaming it to:
> > tst_runas.c,
> > tst_runas_nobody.c, or
> > tst_drop_privs.c?
> >
>
>
> Personally, I prefer the tst_runas_nody.c because it reflects the
> default privilege,
> but due it supports the more env so contains "su" maybe better:
> tst_su_switch.c, tst_su_cmd.c
Maybe just tst_runas.c I think that 'runas' in the name is probably the
best description.
--
Cyril Hrubis
chrubis@suse.cz
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 1/4] shell: Add tst_sudo.c helper
2025-12-09 13:19 ` Cyril Hrubis
@ 2025-12-09 18:44 ` Petr Vorel
0 siblings, 0 replies; 8+ messages in thread
From: Petr Vorel @ 2025-12-09 18:44 UTC (permalink / raw)
To: Cyril Hrubis
Cc: Li Wang, ltp, Mimi Zohar, linux-integrity, selinux, Jan Stancek
> Hi!
> > > I feel that the filename tst_sudo.c is a bit misleading. The helper
> > > doesn’t
> > > replicate sudo behavior (authentication, privilege escalation), it simply
> > > drops from root to a fixed UID/GID before executing a command.
> > > So readers may expect a “sudo-like” elevation wrapper when, however
> > > it’s a privilege-dropping trampoline.
> > > What about renaming it to:
> > > tst_runas.c,
> > > tst_runas_nobody.c, or
> > > tst_drop_privs.c?
> > Personally, I prefer the tst_runas_nody.c because it reflects the
> > default privilege,
> > but due it supports the more env so contains "su" maybe better:
> > tst_su_switch.c, tst_su_cmd.c
> Maybe just tst_runas.c I think that 'runas' in the name is probably the
> best description.
LGTM. I'll send v4.
Kind regards,
Petr
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-12-09 18:44 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-27 8:26 [PATCH v3 0/4] tst_sudo.c, ima_{conditionals, measurements}.sh enhancements Petr Vorel
2025-11-27 8:26 ` [PATCH v3 1/4] shell: Add tst_sudo.c helper Petr Vorel
[not found] ` <CAEemH2cUYekSphFW_uj2w1FzYt3RWXDDnhmQ5TFAyr0T3HFxow@mail.gmail.com>
[not found] ` <CAEemH2e6ivP0rzfTBp5LnZ8n-oe7moqfHszgs2QyYVMUTUQ_wQ@mail.gmail.com>
2025-11-27 12:55 ` Petr Vorel
2025-12-09 13:19 ` Cyril Hrubis
2025-12-09 18:44 ` Petr Vorel
2025-11-27 8:26 ` [PATCH v3 2/4] tst_test.sh: Add TST_USR_{G,U}ID variables Petr Vorel
2025-11-27 8:26 ` [PATCH v3 3/4] ima_{conditionals,measurements}.sh: Use tst_sudo Petr Vorel
2025-11-27 8:26 ` [PATCH v3 4/4] ima_conditionals.sh: Split test by request Petr Vorel
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).