diff options
| author | cgoesche <cgoesc2@wgu.edu> | 2025-11-02 12:54:02 -0500 |
|---|---|---|
| committer | cgoesche <cgoesc2@wgu.edu> | 2025-11-03 16:16:08 -0500 |
| commit | 28e91d087ed1b9e3851bb16b129a1acda9253986 (patch) | |
| tree | 911505918d3cb4ad96cf9032915087686c0d12bc | |
| parent | ac0147fd14b348097c82c1c89a5417b582e26bad (diff) | |
| download | util-linux-28e91d087ed1b9e3851bb16b129a1acda9253986.tar.gz | |
tests: (su) add more options tests
Signed-off-by: cgoesche <cgoesc2@wgu.edu>
| -rw-r--r-- | tests/expected/su/group-primary-login | 1 | ||||
| -rw-r--r-- | tests/expected/su/group-primary-no-login | 1 | ||||
| -rw-r--r-- | tests/expected/su/group-supplemental-login | 1 | ||||
| -rw-r--r-- | tests/expected/su/group-supplemental-no-login | 1 | ||||
| -rw-r--r-- | tests/expected/su/shell-additional-args | 1 | ||||
| -rw-r--r-- | tests/expected/su/shell-command-option | 1 | ||||
| -rwxr-xr-x | tests/ts/su/group | 78 | ||||
| -rwxr-xr-x | tests/ts/su/shell | 35 |
8 files changed, 119 insertions, 0 deletions
diff --git a/tests/expected/su/group-primary-login b/tests/expected/su/group-primary-login new file mode 100644 index 0000000000..b4b6910249 --- /dev/null +++ b/tests/expected/su/group-primary-login @@ -0,0 +1 @@ +ts_grp diff --git a/tests/expected/su/group-primary-no-login b/tests/expected/su/group-primary-no-login new file mode 100644 index 0000000000..b4b6910249 --- /dev/null +++ b/tests/expected/su/group-primary-no-login @@ -0,0 +1 @@ +ts_grp diff --git a/tests/expected/su/group-supplemental-login b/tests/expected/su/group-supplemental-login new file mode 100644 index 0000000000..b4b6910249 --- /dev/null +++ b/tests/expected/su/group-supplemental-login @@ -0,0 +1 @@ +ts_grp diff --git a/tests/expected/su/group-supplemental-no-login b/tests/expected/su/group-supplemental-no-login new file mode 100644 index 0000000000..b4b6910249 --- /dev/null +++ b/tests/expected/su/group-supplemental-no-login @@ -0,0 +1 @@ +ts_grp diff --git a/tests/expected/su/shell-additional-args b/tests/expected/su/shell-additional-args new file mode 100644 index 0000000000..01dca2d74b --- /dev/null +++ b/tests/expected/su/shell-additional-args @@ -0,0 +1 @@ +/bin/bash diff --git a/tests/expected/su/shell-command-option b/tests/expected/su/shell-command-option new file mode 100644 index 0000000000..01dca2d74b --- /dev/null +++ b/tests/expected/su/shell-command-option @@ -0,0 +1 @@ +/bin/bash diff --git a/tests/ts/su/group b/tests/ts/su/group new file mode 100755 index 0000000000..9bb4b14f0a --- /dev/null +++ b/tests/ts/su/group @@ -0,0 +1,78 @@ +#!/bin/bash + +# This file is part of util-linux. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Copyright (C) 2025 Christian Goeschel Ndjomouo <cgoesc2@wgu.edu> + +TS_TOPDIR="${0%/*}/../.." +TS_DESC="group" + +. "$TS_TOPDIR/functions.sh" +ts_init "$*" + +ts_skip_nonroot +ts_check_test_command "$TS_CMD_SU" +ts_check_prog "groupadd" +ts_check_prog "groupdel" +ts_check_prog "getent" + +TS_CMD_ID="id" + +username="$(whoami)" +grp_name="ts_grp" + +if ! groupadd --force "$grp_name"; then + ts_skip "could not create group '$grp_name'" +fi + +# Since here '-c' comes after <user> it'll be passed to the actual shell +# instead of being interpreted by su(1). +ts_init_subtest "primary-no-login" + +"$TS_CMD_SU" --group "$grp_name" "$username" \ + -c "$TS_CMD_ID --groups --name" 2>> "$TS_ERRLOG" \ + | grep -o "$grp_name" \ + | uniq >> "$TS_OUTPUT" + +ts_finalize_subtest + +ts_init_subtest "primary-login" +"$TS_CMD_SU" --group "$grp_name" - "$username" \ + -c "$TS_CMD_ID --groups --name" 2>> "$TS_ERRLOG" \ + | grep -o "$grp_name" \ + | uniq >> "$TS_OUTPUT" + +grep -q 'Authentication failure' "$TS_ERRLOG" +[ "$?" -eq 0 ] && ts_skip_subtest "authentication failure" +ts_finalize_subtest + +ts_init_subtest "supplemental-no-login" +"$TS_CMD_SU" --supp-group "$grp_name" "$username" \ + -c "$TS_CMD_ID --groups --name" 2>> "$TS_ERRLOG" \ + | grep -o "$grp_name" \ + | uniq >> "$TS_OUTPUT" +ts_finalize_subtest + +ts_init_subtest "supplemental-login" +"$TS_CMD_SU" --supp-group "$grp_name" - "$username" \ + -c "$TS_CMD_ID --groups --name" 2>> "$TS_ERRLOG" \ + | grep -o "$grp_name" \ + | uniq >> "$TS_OUTPUT" + +grep -q 'Authentication failure' "$TS_ERRLOG" +[ "$?" -eq 0 ] && ts_skip_subtest "authentication failure" +ts_finalize_subtest + +groupdel "$grp_name" + +ts_finalize
\ No newline at end of file diff --git a/tests/ts/su/shell b/tests/ts/su/shell new file mode 100755 index 0000000000..dc77b0b4fb --- /dev/null +++ b/tests/ts/su/shell @@ -0,0 +1,35 @@ +#!/bin/bash + +# This file is part of util-linux. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Copyright (C) 2025 Christian Goeschel Ndjomouo <cgoesc2@wgu.edu> + +TS_TOPDIR="${0%/*}/../.." +TS_DESC="shell" + +. "$TS_TOPDIR/functions.sh" +ts_init "$*" + +ts_skip_nonroot + +username="$(whoami)" + +ts_init_subtest "command-option" +"$TS_CMD_SU" --shell "/bin/bash" --command "echo \$SHELL" "$username" >> "$TS_OUTPUT" 2>> "$TS_ERRLOG" +ts_finalize_subtest + +ts_init_subtest "additional-args" +"$TS_CMD_SU" --shell "/bin/bash" "$username" -c "echo \$SHELL" >> "$TS_OUTPUT" 2>> "$TS_ERRLOG" +ts_finalize_subtest + +ts_finalize
\ No newline at end of file |
