mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-07-07 13:00:00 +01:00
Merge branch 'xry111/tester-nohack' into trunk
Use a fixed UID for "tester" user, instead of the tty owner's UID. The problem using tty owner's UID is, when tty is owned by "root" the UID of "tester" will be 0. This cause a namesis between "tester" and root. And, the "tester" is introduced to run some tests which are not expected to be ran as root. If "tester" has UID 0, it will have root priviledge and the tests will fail again. Bash tests require the user to own the tty. To satisify it, we use Expect to spawn a new pseudoterminal to run Bash tests.
This commit is contained in:
commit
908a3c34c9
@ -218,7 +218,7 @@
|
|||||||
<segmentedlist id="bash-testdeps">
|
<segmentedlist id="bash-testdeps">
|
||||||
<segtitle>&testsuites;</segtitle>
|
<segtitle>&testsuites;</segtitle>
|
||||||
<seglistitem>
|
<seglistitem>
|
||||||
<seg>Shadow</seg>
|
<seg>Expect and Shadow</seg>
|
||||||
</seglistitem>
|
</seglistitem>
|
||||||
</segmentedlist>
|
</segmentedlist>
|
||||||
|
|
||||||
|
@ -175,7 +175,7 @@ EOF</userinput></screen>
|
|||||||
user. We add this user here and delete this account at the end of that
|
user. We add this user here and delete this account at the end of that
|
||||||
chapter.</para>
|
chapter.</para>
|
||||||
|
|
||||||
<screen><userinput>echo "tester:x:$(ls -n $(tty) | cut -d" " -f3):101::/home/tester:/bin/bash" >> /etc/passwd
|
<screen><userinput>echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd
|
||||||
echo "tester:x:101:" >> /etc/group
|
echo "tester:x:101:" >> /etc/group
|
||||||
install -o tester -d /home/tester</userinput></screen>
|
install -o tester -d /home/tester</userinput></screen>
|
||||||
|
|
||||||
|
@ -73,11 +73,18 @@
|
|||||||
|
|
||||||
<screen><userinput remap="test">chown -Rv tester .</userinput></screen>
|
<screen><userinput remap="test">chown -Rv tester .</userinput></screen>
|
||||||
|
|
||||||
<para>Now, run the tests as the <systemitem
|
<para>The testsuite of the package is designed to be ran as a non-root
|
||||||
|
user, owning the terminal connected to standard input. To satisify the
|
||||||
|
requirement, spawn a new pseudoterminal using
|
||||||
|
<application>Expect</application> and run the tests as the <systemitem
|
||||||
class="username">tester</systemitem> user:</para>
|
class="username">tester</systemitem> user:</para>
|
||||||
|
|
||||||
<screen><userinput remap="test">su tester << EOF
|
<screen><userinput remap="test">su -s /usr/bin/expect tester << EOF
|
||||||
PATH=$PATH make tests < $(tty)
|
set timeout -1
|
||||||
|
spawn make tests
|
||||||
|
expect eof
|
||||||
|
lassign [wait] _ _ _ value
|
||||||
|
exit $value
|
||||||
EOF</userinput></screen>
|
EOF</userinput></screen>
|
||||||
|
|
||||||
<para>Install the package:</para>
|
<para>Install the package:</para>
|
||||||
|
Loading…
Reference in New Issue
Block a user