Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 04 Nov 2002 11:32:38 -0800
From:      Tim Kientzle <kientzle@acm.org>
To:        Miguel Mendez <flynn@energyhq.homeip.net>
Cc:        morganw@chemikals.org, current@FreeBSD.ORG
Subject:   Re: libc size
Message-ID:  <3DC6CB56.8090809@acm.org>
References:  <3DC17C7F.9020308@acm.org>	<20021031140542.W86715-100000@volatile.chemikals.org>	<20021031220633.3acd0b53.flynn@energyhq.homeip.net>	<3DC1AB26.5020708@acm.org> <20021103155858.3be6eda9.flynn@energyhq.homeip.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Miguel Mendez wrote:

> Tim Kientzle <kientzle@acm.org> wrote:

>>1) Fragility.  Could a naive sysadmin (or a dying
>>    disk) break /[s]bin?
>>    What if the ldconfig hints files were hosed?
>>    Is ld-elf.so truly bulletproof?
> 
> Agreed, and, fortunately, that was taken into account with the
> introduction of the /rescue dir:
> 
> christine: {48} du -h /rescue
> 2.4M    /rescue


Oh.  So the real size of NetBSD's /bin and /sbin includes
another 2.4M for /rescue.  That makes it less
impressive.  I don't find the duplication appealing, either.
(Why not just put the /rescue versions directly
into /bin and /sbin?  That would be smaller still,
wouldn't it?)


>>2) Security.  Can LD_LIBRARY_PATH (or other mechanisms)
>>    be used to deliberately subvert any of these programs?
>>    (especially the handful of suid/sgid programs here)


Several people have pointed out that FreeBSD has
certain protections against LD_LIBRARY_PATH exploits,
but there are still real questions here.  (Kernel
races, possibly?)  Privilege elevation is an
interesting idea, but tricky to audit.


>>the results from ls -l /bin on your NetBSD system

> christine: {66} ls -l /bin
> -r-xr-xr-x  1 root  wheel    8480 Oct 29 22:59 cat

> -r-xr-xr-x  1 root  wheel    4892 Oct 29 23:00 echo

 > -r-xr-xr-x  1 root  wheel    5568 Oct 29 23:01 rmdir

> -r-xr-xr-x  1 root  wheel    5892 Oct 29 23:02 sleep
> -r-xr-xr-x  1 root  wheel    4652 Oct 29 23:02 sync

 > [[ others omitted ]]



<sigh>  I've been looking at some of the FreeBSD standard utils,
and with a very little bit of work got this:

-rwxr-xr-x  1 tim  tim  9552 Nov  4 11:10 cat
-rwxr-xr-x  1 tim  tim  2776 Nov  4 11:10 echo
-rwxr-xr-x  1 tim  tim  3288 Nov  1 13:48 rmdir
-rwxr-xr-x  1 tim  tim  2904 Nov  4 11:10 sleep
-rwxr-xr-x  1 tim  tim  2424 Nov  4 11:10 sync

All statically linked, all portable C, with identical
functionality to the originals.  If statically-linked
versions can be 1/2 the size of the dynamic versions,
then I _really_ don't see the advantage of dynamic linking.
Perhaps some more careful programming is all that's needed?  ;-)
(Admittedly, a space-conscious overhaul of sh, csh, or ed
is not entirely trivial; but most of /bin and /sbin is pretty simple
to prune down.)


> rcNG has been in work for a long time. Is it worth it? Absolutely,
> try it once and you'll wonder how you could live with the old system, or
> even with the sysV symlink crazyness.


As it happens, I've been looking closely at RCng
just recently.  Though I really like the core design, I do
have some quibbles with the implementation.  It
is usable today, and does address the worst problems
of SysV-style init.  Still needs some work, though.  ;-)

Tim Kientzle


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3DC6CB56.8090809>