The OpenNET Project
 
Search (keywords):  SOFT ARTICLES TIPS & TRICKS SECURITY
LINKS NEWS MAN DOCUMENTATION


Dirty patch for slocate v1.5


<< Previous INDEX Search src Set bookmark Go to bookmark Next >>
Date: Sun, 23 May 1999 09:30:36 -0400
From: matt <matt@MLINK.NET>
To: BUGTRAQ@netspace.org
Subject: Dirty patch for slocate v1.5

Well, I'm sure some people will want to use Secure Locate  on FreeBSD. I
know I certaintly did, so I made a quick and dirty patch for it which will
make it run nicely on FreeBSD. Tested on FreeBSD 3.1-RELEASE, patch sent
to author to be fixed up (I hope =) and included in the 1.6 release of
slocate. I cannot say it too many times that this is a DIRTY HACK. It's
been running perfectly fine on my FreeBSD machine ever since I did it
though, so at least I know it works.. Patch follows. This will make a
link in /usr/libexec/ to updatedb which basically just calls slocate with
the -u option.. I personally run it from crontab as /usr/libexec/updatedb.

Oh yeah, don't forget to get rid of your old "normal" locate databases,
and if you wish, chmod 000 the normal locate binaries in /usr/libexec
like I did, or you could make links to updatedb from them, depending
if you call them alot from scripts.. Anyhow, be creative!

--- START DIFF ---

diff -urb slocate-1.5-original/install slocate-1.5/install
--- slocate-1.5-original/install        Wed May  5 21:51:29 1999
+++ slocate-1.5/install Thu May 13 02:15:03 1999
@@ -1,52 +1,79 @@
 #!/bin/sh

-groupadd >/dev/null 2>&1
+SYSTEM=`uname -s`
+echo "Finding your system type....."

-if [ $? -eq 127 ] ; then
+case ${SYSTEM} in
+
+    "Linux")
+
+        GPATH="/usr/sbin/groupadd"
+        GOPTS="slocate"
+
+        DBPATH="/var/lib/slocate"
+       UPREFIX="/usr/bin"
+
+       echo "We have a winner! SYSTEM=Linux"
+    ;;
+    "FreeBSD")
+
+        GPATH="/usr/sbin/pw"
+        GOPTS="groupadd slocate"
+
+        DBPATH="/var/db/slocate"
+       UPREFIX="/usr/libexec"
+
+       echo "We have a winner! SYSTEM=FreeBSD"
+    ;;
+    *)
    echo
-   echo "Could not find groupadd utility."
+   echo "Could not find system type for groupadd."
    echo
    echo "Read the README.DOC file to install Secure Locate manually."
    echo
    exit 1
-fi
+esac

 user=`id -un`
-
 instdir="/usr/bin"
 echo
 echo "Copying slocate to $instdir"
 install -m 0755 slocate /usr/bin
-groupadd slocate
+$GPATH $GOPTS

 CWD="`pwd`"

 cd $instdir
 echo
 echo "Changing permisions on slocate"
+
 chown $user:slocate slocate
 chmod g+s ./slocate
+
 cd $CWD
+
 echo "Making Database Directory"
-install -d -m 0750 /var/lib/slocate
-chown $user:slocate /var/lib/slocate
-echo "Creating Symlinks"
+install -d -m 0750 $DBPATH
+chown $user:slocate $DBPATH

+echo "Creating Symlinks"
 if [ -f /usr/bin/locate ] ; then
    rm -f /usr/bin/locate.old
    mv /usr/bin/locate /usr/bin/locate.old
+   chmod 700 /usr/bin/locate.old
 fi

 ln -s /usr/bin/slocate /usr/bin/locate

-if [ -f /usr/bin/updatedb ] ; then
-   rm -f /usr/bin/updatedb.old
-   mv /usr/bin/locate /usr/bin/locate.old
+if [ -f $UPREFIX/updatedb ] ; then
+   rm -f $UPREFIX/updatedb.old
+   mv $UPREFIX/updatedb $UPREFIX/updatedb.old
 fi

-ln -s /usr/bin/slocate /usr/bin/updatedb
+ln -s /usr/bin/slocate $UPREFIX/updatedb

 echo "Installing man page"
+
 if [ -d /usr/man ] ; then
   mandir="/usr/man"
 elif [ -d /usr/share/man ] ; then
diff -urb slocate-1.5-original/link.c slocate-1.5/link.c
--- slocate-1.5-original/link.c Wed May  5 14:21:05 1999
+++ slocate-1.5/link.c  Thu May 13 02:12:50 1999
@@ -6,7 +6,9 @@

 #include <stdio.h>
 #include <stdlib.h>
-
+#ifdef __FreeBSD__
+  #include <unistd.h> /* make it work on FreeBSD -matt */
+#endif
 #include "link.h"

 /* Initialize 2D List */
diff -urb slocate-1.5-original/main.c slocate-1.5/main.c
--- slocate-1.5-original/main.c Wed May  5 14:52:52 1999
+++ slocate-1.5/main.c  Thu May 13 02:12:50 1999
@@ -85,9 +85,18 @@
 #define WARN_MESSAGE "8 days"

 char **SLOCATE_PATH = NULL;
+
+/* More fitting paths for FreeBSD -matt */
+#ifdef __FreeBSD__
+char *SLOCATEDB = "/var/db/slocate/slocate.db";
+char *TMPSLOCATEDB = "/var/db/slocate/slocate.tmp";
+char *SLOCATEDB_DIR = "/var/db/slocate/";
+#else
+/* Leave the normal paths for non-FreeBSD machines -matt */
 char *SLOCATEDB = "/var/lib/slocate/slocate.db";
 char *TMPSLOCATEDB = "/var/lib/slocate/slocate.tmp";
 char *SLOCATEDB_DIR = "/var/lib/slocate/";
+#endif
 char *EXCLUDE_DIR;
 int EXCLUDE=0;
 int VERBOSE=0;

--- END DIFF ---

--
Mail: matt@mlink.net && matt@ccia.cc
@IRC: irc.idirect.ca && mlink.ca.relic.net

<< Previous INDEX Search src Set bookmark Go to bookmark Next >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру