Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Feb 2004 13:30:56 -0500
From:      Scott W <wegster@mindcore.net>
To:        Peter Risdon <peter@circlesquared.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Search Path in bash2
Message-ID:  <4040DE60.7050906@mindcore.net>
In-Reply-To: <403FB11C.8060308@circlesquared.com>
References:  <200402271741.i1RHfuB7095761@dc.cis.okstate.edu> <403FB11C.8060308@circlesquared.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Peter Risdon wrote:

> Martin McCormick wrote:
>
>>     I am trying to modify the execution path on a FreeBSD system
>> for all the bash2 users on that system.  The man page says that
>>  
>>
>>>           default path is system-dependent, and is set by the
>>>           administrator who installs bash.    A common value is
>>>           ``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:.''.
>>>   
>>
>>
>>     How do I set, or in this case, reset it?  
>>
> The man page also says:
>
> When  bash is invoked as an interactive login shell, or as a non-inter-
>       active shell with the --login option, it first reads and 
> executes  com-
>       mands  from  the file /etc/profile, if that file exists.  After 
> reading
>       that file, it looks for ~/.bash_profile, ~/.bash_login, and 
> ~/.profile,
>       in  that order, and reads and executes commands from the first 
> one that
>       exists and is readable.  The --noprofile option may be  used  
> when  the
>       shell is started to inhibit this behavior.
>
> But so far as I have seen, at least on FreeBSD, /etc/profile does not 
> generally contain path info. This is normally set in ~/.profile and 
> the default contains something like this:
>
> # remove /usr/games and /usr/X11R6/bin if you want
> PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/ 
>
> bin:$HOME/bin; export PATH
>
> So my guess is that to conform closely to this way of doing things, 
> add the path to each user's ~/.profile and also to 
> /usr/share/skel/dot.profile so it is there immediately for new users.
>
> Alternatively, unless someone contradicts this, the man page seems to 
> suggest you could add a path to /etc/profile and it would then be 
> system-wide. I have never done this myself, though, so can't vouch for 
> it whereas I have edited ~/.profile frequently.
>
> HTH.
>
> PWR.
>
>
>
> _______________________________________________
> freebsd-questions@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to 
> "freebsd-questions-unsubscribe@freebsd.org"
>
You can add any environment vars you'd like to /etc/profile- this is 
still the preferred method for some cases...for example, if you're the 
sysadmin for a project group that all needs additional software that may 
have been installed in the /usr/local/<somewhere>/bin tree, instead of 
binaries in /usr/local/bin.  So if it's assumed that all users will need 
a given PATH, add it to /etc/profile.  If it's a per user addition, add 
it in ~/.bash_profile..

There are a mixture of other ways to do this, with the 'new thing' being 
application dependent env vars (LD_LIBRARY_PATH, PATH, etc)- in Linux, 
this is generally done via /etc/profile.d/<appname>.sh, but is not 
generally used for correcting user-owned variables.  So in other words, 
/etc/profile is fine ;-)

Scott



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4040DE60.7050906>