From patchwork Wed Aug 17 13:37:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tudor Cretu X-Patchwork-Id: 1667257 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it (client-ip=213.254.12.146; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Received: from picard.linux.it (picard.linux.it [213.254.12.146]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4M78DM6s50z1yYg for ; Wed, 17 Aug 2022 23:36:03 +1000 (AEST) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 0E1F03C9DB4 for ; Wed, 17 Aug 2022 15:35:58 +0200 (CEST) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-7.smtp.seeweb.it (in-7.smtp.seeweb.it [217.194.8.7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id 0DA333C9B4F for ; Wed, 17 Aug 2022 15:35:55 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by in-7.smtp.seeweb.it (Postfix) with ESMTP id 8751C2009E5 for ; Wed, 17 Aug 2022 15:35:54 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D7390113E; Wed, 17 Aug 2022 06:35:51 -0700 (PDT) Received: from e129169.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 34DE33F67D; Wed, 17 Aug 2022 06:35:50 -0700 (PDT) From: Tudor Cretu To: ltp@lists.linux.it Date: Wed, 17 Aug 2022 14:37:00 +0100 Message-Id: <20220817133700.233524-1-tudor.cretu@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 0.102.4 at in-7.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=-0.0 required=7.0 tests=SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on in-7.smtp.seeweb.it Subject: [LTP] [PATCH] IDcheck: Add check for root user/group X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" Some tests (e.g. getgid, getegid, etc.) need to have a valid user id and group for root. Add the check to IDcheck.sh. Also, make a user and a group for root if necessary. Signed-off-by: Tudor Cretu --- IDcheck.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/IDcheck.sh b/IDcheck.sh index 591695915..c6c41b965 100755 --- a/IDcheck.sh +++ b/IDcheck.sh @@ -26,9 +26,11 @@ echo "Checking for required user/group ids" echo "" # Check ids and create if needed. +NO_ROOT_ID=1 NO_NOBODY_ID=1 NO_BIN_ID=1 NO_DAEMON_ID=1 +NO_ROOT_GRP=1 NO_NOBODY_GRP=1 NO_BIN_GRP=1 NO_DAEMON_GRP=1 @@ -49,7 +51,7 @@ fe() { prompt_for_create() { if [ -z "$CREATE_ENTRIES" ] ; then - if [ $NO_NOBODY_ID -ne 0 -o $NO_BIN_ID -ne 0 -o $NO_DAEMON_ID -ne 0 -o $NO_NOBODY_GRP -ne 0 -o $NO_BIN_GRP -ne 0 -o $NO_DAEMON_GRP -ne 0 -o $NO_USERS_GRP -ne 0 -o $NO_SYS_GRP -ne 0 ] ; then + if [ $NO_ROOT_ID -ne 0 -o $NO_NOBODY_ID -ne 0 -o $NO_BIN_ID -ne 0 -o $NO_DAEMON_ID -ne 0 -o $NO_ROOT_GRP -ne 0 -o $NO_NOBODY_GRP -ne 0 -o $NO_BIN_GRP -ne 0 -o $NO_DAEMON_GRP -ne 0 -o $NO_USERS_GRP -ne 0 -o $NO_SYS_GRP -ne 0 ] ; then echo -n "If any required user ids and/or groups are missing, would you like these created? [y/N]" read ans case "$ans" in @@ -74,10 +76,12 @@ for i in "$passwd" "$group"; do fi done +fe root "$passwd"; NO_ROOT_ID=$? fe bin "$passwd"; NO_BIN_ID=$? fe daemon "$passwd"; NO_DAEMON_ID=$? fe nobody "$passwd"; NO_NOBODY_ID=$? +fe root "$group"; NO_ROOT_GRP=$? fe bin "$group"; NO_BIN_GRP=$? fe daemon "$group"; NO_DAEMON_GRP=$? fe nobody "$group" || fe nogroup "$group"; NO_NOBODY_GRP=$? @@ -91,9 +95,11 @@ debug_vals() { echo "Missing the following group / user entries:" echo "Group file: $group" echo "Password file: $passwd" +echo "root $NO_ROOT_ID" echo "nobody: $NO_NOBODY_ID" echo "bin: $NO_BIN_ID" echo "daemon: $NO_DAEMON_ID" +echo "root grp: $NO_ROOT_GRP" echo "nobody[/nogroup] grp: $NO_NOBODY_GRP" echo "bin grp: $NO_BIN_GRP" echo "daemon grp: $NO_DAEMON_GRP" @@ -130,6 +136,7 @@ make_user_group() { fi fi } +make_user_group root 0 $NO_ROOT_ID $NO_ROOT_GRP make_user_group nobody 65534 $NO_NOBODY_ID $NO_NOBODY_GRP make_user_group bin 1 $NO_BIN_ID $NO_BIN_GRP make_user_group daemon 2 $NO_DAEMON_ID $NO_DAEMON_GRP @@ -149,7 +156,7 @@ fi MISSING_ENTRY=0 # For entries that exist in both $group and $passwd. -for i in bin daemon; do +for i in root bin daemon; do for file in "$group" "$passwd"; do if ! fe "$i" "$file"; then MISSING_ENTRY=1