RE: [Bastille-linux-discuss] Bastille-2.1 on LM8.2 (fwd)
This tool locks down Linux and UNIX systems.
Brought to you by:
jay
From: BUCK,KEITH (HP-FtCollins,ex1) <kei...@hp...> - 2003-03-26 16:16:04
|
Lee, Actually, at the place where 'id' is called, we're in shell (bash or posix, depending on /bin/sh). We did the check before trying to call the Perl routines. This is essentially a safety check...things would fail miserably later on if the user isn't root, so it's just nice to warn the user very early. Since we're in shell, we could actually use the which command instead of writing our own, if that's really what we want to do. I prefer hardcoding in general, but setting a sane path would be ok too. So, PATH=/usr/bin:/bin; id would work, and be a smaller change at this point. This is essentially in the same spirit as what you suggest...just less code and with no default setting (what's the point...if we haven't found it in the places we know to look, the default will be wrong too) Soon I'd like to see the front end able to save to arbitrary locations so you can run front-end only without having to be root. There's still some infrastructure there to put in place...to make sure the tests ask the question if the non-root user can't read the configuration files, etc. Also, we'd need to make the permissions on the Bastille directories open enough to let non-root read/execute. maybe in 2.2. -Keith > -----Original Message----- > From: Lee E. Brotzman [mailto:le...@gm...] > Sent: Tuesday, March 25, 2003 10:36 PM > To: bastille-linux > Subject: Re: [Bastille-linux-discuss] Bastille-2.1 on LM8.2 (fwd) > > > On Tue, 25 Mar 2003 22:53:21 EST, "BUCK,KEITH > (HP-FtCollins,ex1)" said: > > So, what did it look like to the user? > > > > The test for root actually happens before the distro is > setup (IIRC), > > which means we can't just run the correct command. We'd > have to look > > for one, if it didn't exist, look for the other... > > > > Thoughts, anyone? > > > > -Keith > > sub which { > my $prog = shift; > my $path = $::ENV{PATH}; > > foreach $dir (split( /:/, $path)) { > $dir = '.' unless $dir; > my $place = $dir.'/'.$prog; > return $place if -x $place; > } > return undef; > } > > $SENDMAIL = &which('sendmail') || '/usr/lib/sendmail'; > $ID = &which('id') || '/usr/bin/id'; > > This function searches the directories in the PATH > environment variable for the > requested executable, returning the first instance it finds, > or undef. In the > example following, the variable $SENDMAIL is set to wherever > 'sendmail' is > found in the path, or it defaults to '/usr/lib/sendmail' > (since '/usr/lib' > usually isn't in PATH the default is most likely). Then there > is a setting > for $ID, which points to wherever the 'id' program is found. > > Caveat: make sure PATH is sane and safe. I usually set it to > something like > this very early on (actual path depends on the application): > > $ENV{PATH} = '/bin:/usr/bin:/usr/local/bin'; > > I see this line in the "bastille" script: > > export PATH="/bin:/usr/bin:/usr/sbin:$PATH" > > So the which() function would search for id in /bin, then > /usr/bin and should > find it sooner or later. > > > -- > -- Lee E. Brotzman > -- Allied Technology Group > > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: > The Definitive IT and Networking Event. Be There! > NetWorld+Interop Las Vegas 2003 -- Register today! > http://ads.sourceforge.net/cgi-bin/redirect.pl?keyn0001en > _______________________________________________ > bastille-linux-discuss mailing list > bas...@li... > https://lists.sourceforge.net/lists/listinfo/bastille-linux-discuss > |