[Ultrapossum-cvs 168] ultrapossum/module/server ...

Back to archive index

Masato Taruishi taru****@sourc*****
2004年 6月 16日 (水) 17:52:51 JST


===================================================================
RCS file: ultrapossum/module/server/00server,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- ultrapossum/module/server/00server	2004/06/15 04:36:55	1.33
+++ ultrapossum/module/server/00server	2004/06/16 08:52:51	1.34
@@ -31,6 +31,8 @@
 SLAPADD=`ultrapossum_getconf SLAPADD "slapadd"`
 SLAPADD_EXTRA_ARGS=`ultrapossum_getconf SLAPADD_EXTRA_ARGS ""`
 
+UCDATA_PATH=`ultrapossum_getconf UCDATA_PATH $ldapdatadir/ucdata`
+
 SLAPD_RPM_PACKAGE=`ultrapossum_getconf SLAPD_RPM_PACKAG openldap-servers`
 SLAPD_EXTRA_ARGS=`ultrapossum_getconf SLAPD_EXTRA_ARGS `
 SLURPD_EXTRA_ARGS=`ultrapossum_getconf SLURPD_EXTRA_ARGS `
@@ -64,9 +66,12 @@
 DBCACHESIZE=`ultrapossum_getconf DBCACHESIZE 1000000`
 CACHESIZE=`ultrapossum_getconf CACHESIZE 1000`
 CREDENTIALS=`ultrapossum_getconf CREDENTIALS ultrapossum-replica`
+CHROOTDIRECTORY=`ultrapossum_getconf CHROOTDIRECTORY ""`
 DBDIRECTORY=`ultrapossum_getconf DBDIRECTORY $localstatedir/lib/$PACKAGE/$ULTRAPOSSUM_PROJECT/db`
 LOGDIR=`ultrapossum_getconf LOGDIR $localstatedir/log/$PACKAGE`
 UPDATERDN=`ultrapossum_getconf UPDATERDN cn=replica,ou=application`
+CHROOTFILES=`ultrapossum_getconf CHROOTFILES "$SLAPDMASTERCONF $ULTRAPOSSUM_MASTER_SLAPD_CONF $ULTRAPOSSUM_SLAPD_CONF $(egrep '^include' $SLAPDMASTERCONF 2> /dev/null | awk -F' ' '{print $2;}') $UCDATA_PATH $ldaplibdir"`
+CHROOTEXTRAFILES=`ultrapossum_getconf CHROOTEXTRAFILES ""`
 
 LDAPLISTENPORT=`ultrapossum_getconf LDAPLISTENPORT "$ldaplistenport"`
 LDAPURILIST=`ultrapossum_getconf LDAPURILIST ldap://:$LDAPLISTENPORT/`
===================================================================
RCS file: ultrapossum/module/server/2.0,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- ultrapossum/module/server/2.0	2004/06/14 05:55:28	1.14
+++ ultrapossum/module/server/2.0	2004/06/16 08:52:51	1.15
@@ -30,7 +30,7 @@
       echo "E: $SLAPD abnormally exits. Probably you can see the error by syslog" 1>&2
       return 1
     fi
-    wait_pid  $SLAPD_PIDFILE
+    wait_pid  $CHROOTDIRECTORY/$SLAPD_PIDFILE
     echo -n "`basename $SLAPD`"
 
     touch $DIRECTORY/ultrapossum-environ
@@ -59,7 +59,7 @@
 }
 
 ldapmaster_stop() {
-    stop_pid $SLAPD_PIDFILE
+    stop_pid $CHROOTDIRECTORY/$SLAPD_PIDFILE
     echo -n "`basename $SLAPD`"
     if test "`ldapslurp_status`" = "running"; then
       ldapslurp_stop
@@ -77,7 +77,7 @@
 }
 
 ldapmaster_status() {
-  status_pid $SLAPD_PIDFILE
+  status_pid $CHROOTDIRECTORY/$SLAPD_PIDFILE
 }
 
 ldapslurp_start() {
@@ -99,18 +99,18 @@
 }
 
 ldapslave_stop() {
-  stop_pid $SLAPD_SLAVE_PIDFILE
+  stop_pid $CHROOTDIRECTORY$SLAPD_SLAVE_PIDFILE
   echo -n "`basename $SLAPD`"
 }
 
 ldapslave_start() {
   $SLAPD -h "$SLAPDURILIST"
-  wait_pid  $SLAPD_SLAVE_PIDFILE
+  wait_pid  $CHROOTDIRECTORY/$SLAPD_SLAVE_PIDFILE
   echo -n "`basename $SLAPD`"
 }
 
 ldapslave_status() {
-  status_pid $SLAPD_SLAVE_PIDFILE
+  status_pid $CHROOTDIRECTORY/$SLAPD_SLAVE_PIDFILE
 }
 
 # status <pidfile>
===================================================================
RCS file: ultrapossum/module/server/createdb.sh,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- ultrapossum/module/server/createdb.sh	2004/06/14 09:18:29	1.17
+++ ultrapossum/module/server/createdb.sh	2004/06/16 08:52:51	1.18
@@ -23,8 +23,8 @@
 
 eval `ultrapossum-config init` 2> /dev/null
 
-if test -d "$DIRECTORY"; then
-  echo "W: $DIRECTORY already exist" 1>&2
+if test -d "$CHROOTDIRECTORY$DIRECTORY"; then
+  echo "W: $CHROOTDIRECTORY$DIRECTORY already exist" 1>&2
   exit 0
 fi
 
@@ -35,7 +35,10 @@
   ln -s $DBWORKDIR $DIRECTORY
   echo "done" 1>&2
 else
-  install -d $DIRECTORY > /dev/null
+  if test "x$CHROOTDIRECTORY" != "x"; then
+    ln -s $CHROOTDIRECTORY$DIRECTORY $DIRECTORY
+  fi
+  install -d $CHROOTDIRECTORY$DIRECTORY > /dev/null
 fi
 
 touch $DIRECTORY/ultrapossum-environ
@@ -55,7 +58,7 @@
   /bin/rm -f $tmp
   if test "x$DBWORKDIR" != "x"; then
     /bin/rm -rf $DBWORKDIR
-    if test -L "$DIRECTORY"; then
+    if ! /bin/ls -L "$DIRECTORY" > /dev/null 2> /dev/null; then
       /bin/rm $DIRECTORY
     fi
   fi
@@ -114,7 +117,7 @@
  fi
 fi
 
-echo -n "Creating Initial Directory in $DIRECTORY... " 1>&2
+echo -n "Creating Initial Directory in $CHROOTDIRECTORY$DIRECTORY... " 1>&2
 if $SLAPADD -b $SUFFIX -f $SLAPDCONF $SLAPADD_EXTRA_ARGS < $ldiffile; then
   echo "done" 1>&2
 else
@@ -149,6 +152,10 @@
 if test "x$DBWORKDIR" != "x"; then
   echo -n "Adjusting database... " 1>&2
   /bin/rm $DIRECTORY
-  /bin/cp -rp $DBWORKDIR $DIRECTORY
+  install -d $CHROOTDIRECTORY`dirname $DIRECTORY`
+  /bin/cp -rp $DBWORKDIR $CHROOTDIRECTORY$DIRECTORY
+  if test "x$CHROOTDIRECTORY" != "x"; then
+    /bin/ln -s $CHROOTDIRECTORY$DIRECTORY $DIRECTORY
+  fi
   echo "done" 1>&2
 fi
===================================================================
RCS file: ultrapossum/module/server/formatdb.sh,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ultrapossum/module/server/formatdb.sh	2004/06/02 02:39:20	1.5
+++ ultrapossum/module/server/formatdb.sh	2004/06/16 08:52:51	1.6
@@ -26,6 +26,6 @@
   exit 1
 fi
 
-/bin/rm -rf $DIRECTORY $CONFSTATUS
+/bin/rm -rf $DIRECTORY $CONFSTATUS $CHROOTDIRECTORY$DIRECTORY
 update-ultrapossum configure
 
===================================================================
RCS file: ultrapossum/module/server/server.cf,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ultrapossum/module/server/server.cf	2004/06/01 08:00:50	1.8
+++ ultrapossum/module/server/server.cf	2004/06/16 08:52:51	1.9
@@ -11,6 +11,18 @@
 #SLAPD_VERSION="2.0"
 
 ###
+### Chroot 'jail' directory Configuration
+###
+
+# Directory  after opening listeners but before reading any
+# configuration file or initializing any backend.
+#CHROOTDIRECTORY=/org/ultrapossum/
+CHROOTDIRECTORY=/org/ultrapossum/
+
+# Files or directories to be copied into the jailed directory
+#CHROOTEXTRAFILES=""
+
+###
 ### Database Configuration
 ###
 
===================================================================
RCS file: ultrapossum/module/server/startup,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ultrapossum/module/server/startup	2004/04/05 16:23:37	1.9
+++ ultrapossum/module/server/startup	2004/06/16 08:52:51	1.10
@@ -39,6 +39,18 @@
     $UPDATEDIR/update-server configure
   fi
   update-ultrapossum reconfigure
+  if test "x$CHROOTDIRECTORY" != "x"; then
+    setup_chroot_env
+  fi
+}
+
+setup_chroot_env() {
+  for f in $CHROOTFILES $CHROOTEXTRAFILES
+  do
+    install -d $CHROOTDIRECTORY`dirname $f`
+    /bin/cp -rp $f $CHROOTDIRECTORY`dirname $f`
+  done
+  SLAPD_EXTRA_ARGS="-r $CHROOTDIRECTORY $SLAPD_EXTRA_ARGS"
 }
 
 case "x$1" in
===================================================================
RCS file: ultrapossum/module/server/update-server,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- ultrapossum/module/server/update-server	2004/06/15 06:27:17	1.39
+++ ultrapossum/module/server/update-server	2004/06/16 08:52:51	1.40
@@ -99,10 +99,11 @@
     /bin/rm -f $INITLDIF
   fi
 
-  if ! test -d "`dirname $SLAPD_PIDFILE`"; then
-    progress "Creating `dirname $SLAPD_PIDFILE` for pidfile... "
-    install -d `dirname $SLAPD_PIDFILE`
-    progress "Creating `dirname $SLAPD_PIDFILE` for pidfile... done"
+  install -d `dirname $SLURPD_PIDFILE`
+  if ! test -d "`dirname $CHROOTDIRECTORY$SLAPD_PIDFILE`"; then
+    progress "Creating `dirname $CHROOTDIRECTORY$SLAPD_PIDFILE` for pidfile... "
+    install -d `dirname $CHROOTDIRECTORY$SLAPD_PIDFILE`
+    progress "Creating `dirname $CHROOTDIRECTORY$SLAPD_PIDFILE` for pidfile... done"
   fi
 
   if ! test -d "$DIRECTORY"; then



Ultrapossum-cvs メーリングリストの案内
Back to archive index