From ef61313366e6ca42298c4a48ecbe50c50c125b12 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 18 Jul 2021 01:04:22 +0800 Subject: [PATCH] do not use UID hack for tester It's causing "root-tester namesis" (both have UID 0) if the tty is owned by root. To fix bash test, use Expect to spawn a new PTY for it. --- appendices/dependencies.xml | 2 +- chapter07/createfiles.xml | 2 +- chapter08/bash.xml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 46a016465..7beb8fa3a 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -218,7 +218,7 @@ &testsuites; - Shadow + Expect and Shadow diff --git a/chapter07/createfiles.xml b/chapter07/createfiles.xml index 93abeaf8e..c55d40836 100644 --- a/chapter07/createfiles.xml +++ b/chapter07/createfiles.xml @@ -175,7 +175,7 @@ EOF user. We add this user here and delete this account at the end of that chapter. -echo "tester:x:$(ls -n $(tty) | cut -d" " -f3):101::/home/tester:/bin/bash" >> /etc/passwd +echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd echo "tester:x:101:" >> /etc/group install -o tester -d /home/tester diff --git a/chapter08/bash.xml b/chapter08/bash.xml index bb0f2b0fb..99ee2e3f4 100644 --- a/chapter08/bash.xml +++ b/chapter08/bash.xml @@ -76,8 +76,8 @@ Now, run the tests as the tester user: -su tester << EOF -PATH=$PATH make tests < $(tty) +su -s /usr/bin/expect tester << EOF +spawn make tests; expect EOF; EOF Install the package: