Invoking ldconfig without arguments wipes all hints and makes me very sad

Mel fbsd.questions at rachie.is-a-geek.net
Thu Apr 10 22:35:09 UTC 2008


On Thursday 10 April 2008 23:44:39 Shelby Cain wrote:
> On Thu, 2008-04-10 at 23:09 +0200, Mel wrote:
> > First of all, running ldconfig without arguments does nothing bad.
> > Running ldconfig without flags and with arguments does.
> >
> > Secondly, what is the command:
> > ldconfig /usr/lib
> >
> > supposed to do, according to newbie friendly logic?
> > Because it should be possible to "just have the linker create hints for
> > one directory".
>
> Your example seems perfectly reasonable should one wish to create hints
> for only one directory.
>
> However, in my particular case it seems that my blunder of running
> ldconfig -v (and not ldconfig by itself as I had assumed - my bad) is
> sufficient to render it impossible to log in as my regular user account
> since I had set my default login shell to bash.  That, in conjunction
> with root being disallowed by default in sshd effectively locked me out
> of my machine once I closed my only open ssh session.
>
> Modifying my original suggestion slightly, is there any reason why it
> would be a bad thing for ldconfig to assume -r when either -v with no
> other arguments (or no arguments at all) is passed to ldconfig or is
> there some specific reason for the current behavior?


It translates to "be verbose about restoring factory settings", because 
without arguments it will restore the built-in set.
The 'alias' shell command is suitable for user protection:
alias ldconfig='/sbin/ldconfig -r'
   This will default to -r if called as ldconfig. If you really do want to
   modify the search path on the command line, you can type the full path
   to the ldconfig binary, as in: /sbin/ldconfig -vm /usr/local/lib.

Similar:
alias rm='rm -i'
alias cp='cp -i'

-- 
Mel

Problem with today's modular software: they start with the modules
    and never get to the software part.


More information about the freebsd-questions mailing list