Install su from coreutils in chapter 5 as su-tools. Use su-tools to run test suites from coreutils and bash as user nobody. Fixes #1877

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@8006 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Jeremy Huntwork 2007-04-03 12:21:48 +00:00
parent 85d8df5044
commit f4c628cc80
5 changed files with 31 additions and 21 deletions

View File

@ -35,6 +35,18 @@
</itemizedlist>
</listitem>
-->
<listitem>
<para>2007-04-03</para>
<itemizedlist>
<listitem>
<para>[jhuntwork] - Install su from coreutils in chapter 5 as su-tools.
Use su-tools to run test suites from coreutils and bash as user nobody.
Fixes #1877.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2007-04-01</para>
<itemizedlist>

View File

@ -56,6 +56,15 @@
<screen><userinput>make install</userinput></screen>
<para>The above command refuses to install <filename>su</filename>
because it cannot install it setuid root as a non-privileged user. By
manually installing it with a different name, we can use it for running
tests in the final system as a non-privileged user and we keep a possibly
useful <command>su</command> from our host first place in our PATH. Install
it with:</para>
<screen><userinput>cp -v src/su /tools/bin/su-tools</userinput></screen>
</sect2>
<sect2 role="content">

View File

@ -70,8 +70,10 @@ sed -i "s|htmldir = @htmldir@|htmldir = /usr/share/doc/bash-&bash-version;|" \
<screen><userinput>make</userinput></screen>
<para>To test the results, issue:
<userinput>make tests</userinput>.</para>
<para>To test the results, issue:</para>
<screen><userinput>chown -Rv nobody ./
su-tools nobody -s /bin/bash -c "make tests"</userinput></screen>
<para>Install the package:</para>

View File

@ -72,31 +72,18 @@
<screen><userinput>make</userinput></screen>
<para>The test suite of Coreutils makes several assumptions about the
presence of system users and groups that are not valid within the minimal
environment that exists at the moment. Therefore, additional items need
to be set up before running the tests. Skip down to <quote>Install the
<para>Skip down to <quote>Install the
package</quote> if not running the test suite.</para>
<para>Create two dummy groups and a dummy user:</para>
<screen><userinput>echo "dummy1:x:1000:" &gt;&gt; /etc/group
echo "dummy2:x:1001:dummy" &gt;&gt; /etc/group
echo "dummy:x:1000:1000::/root:/bin/bash" &gt;&gt; /etc/passwd</userinput></screen>
<para>Now the test suite is ready to be run. First, run the tests that are
meant to be run as user <systemitem class="username">root</systemitem>:</para>
<screen><userinput>make NON_ROOT_USERNAME=dummy check-root</userinput></screen>
<screen><userinput>make NON_ROOT_USERNAME=nobody check-root</userinput></screen>
<para>Then run the remainder of the tests as the
<systemitem class="username">dummy</systemitem> user:</para>
<systemitem class="username">nobody</systemitem> user:</para>
<screen><userinput>src/su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"</userinput></screen>
<para>When testing is complete, remove the dummy user and groups:</para>
<screen><userinput>sed -i '/dummy/d' /etc/passwd /etc/group</userinput></screen>
<screen><userinput>su-tools nobody -s /bin/bash -c "make RUN_EXPENSIVE_TESTS=yes check"</userinput></screen>
<para>Install the package:</para>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!ENTITY version "SVN-20070401">
<!ENTITY releasedate "April 1, 2007">
<!ENTITY version "SVN-20070403">
<!ENTITY releasedate "April 3, 2007">
<!ENTITY milestone "6.3">
<!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" -->