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> </itemizedlist>
</listitem> </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> <listitem>
<para>2007-04-01</para> <para>2007-04-01</para>
<itemizedlist> <itemizedlist>

View File

@ -56,6 +56,15 @@
<screen><userinput>make install</userinput></screen> <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>
<sect2 role="content"> <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> <screen><userinput>make</userinput></screen>
<para>To test the results, issue: <para>To test the results, issue:</para>
<userinput>make tests</userinput>.</para>
<screen><userinput>chown -Rv nobody ./
su-tools nobody -s /bin/bash -c "make tests"</userinput></screen>
<para>Install the package:</para> <para>Install the package:</para>

View File

@ -72,31 +72,18 @@
<screen><userinput>make</userinput></screen> <screen><userinput>make</userinput></screen>
<para>The test suite of Coreutils makes several assumptions about the <para>Skip down to <quote>Install 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
package</quote> if not running the test suite.</para> 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 <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> 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 <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> <screen><userinput>su-tools nobody -s /bin/bash -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>
<para>Install the package:</para> <para>Install the package:</para>

View File

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