Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
server:irc
ngircd
ngircd-start-pre
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ngircd-start-pre of Package ngircd
#!/bin/bash # # Set up chroot environment for ngircd # when required by /etc/ngircd.conf # CONFIG='/etc/ngircd.conf' MOTD='/etc/ngircd.motd' CHROOTDIR='/var/lib/ngircd' # Actual directory set by spec file PIDDIR='__piddir__' TAB=' ' WHICH='/usr/bin/which' CPCMD=$($WHICH cp) CP="$CPCMD -du --preserve=all" MDCMD=$($WHICH mkdir) MD="$MDCMD -p" RMCMD=$($WHICH rm) RM="$RMCMD -f" LNCMD=$($WHICH ln) LN="$LNCMD -sf" CAT=$($WHICH cat) CHOWN=$($WHICH chown) CHMOD=$($WHICH chmod) SED='/usr/bin/sed' USER='ngircd' GROUP='ngircd' warn_user() { echo -e "*** WARNING ***" echo -e $1 } if test -r $CONFIG ; then CHROOTED=$($CAT $CONFIG | $SED \ -e "/ChrootDir/!d; /^[$TAB ]*[;#]/d" \ -e "s|.*ChrootDir *= *$CHROOTDIR *|foobar|" \ -e 's/.*ChrootDir.*/false/; s/foobar/true/' | /usr/bin/tail -n 1) if test -z "$CHROOTED" ; then if ! test -d ${PIDDIR} ; then $MD ${PIDDIR} $CHOWN $USER.$GROUP ${PIDDIR} fi if test -L $PIDDIR/ngircd.pid ; then $RM $PIDDIR/ngircd.pid fi exit 0 elif ! $CHROOTED ; then warn_user "Chroot directory for ngircd must be $CHROOTDIR" exit 1 fi else warn_user "File $CONFIG not found. This should not happen." exit 1 fi # Set up chroot environment if $CHROOTED ; then if test -r /lib64/libresolv.so.2 ; then LIBDIR='lib64' else LIBDIR='lib' fi $MD $CHROOTDIR/$LIBDIR $MD $CHROOTDIR/$LIBDIR/security $MD $CHROOTDIR/usr/$LIBDIR $CP /$LIBDIR/libresolv* $CHROOTDIR/$LIBDIR/ $CP /$LIBDIR/libnss_* $CHROOTDIR/$LIBDIR/ $CP /$LIBDIR/security/pam_permit.so $CHROOTDIR/$LIBDIR/security/ $CP /$LIBDIR/security/pam_warn.so $CHROOTDIR/$LIBDIR/security/ $CP /$LIBDIR/security/pam_deny.so $CHROOTDIR/$LIBDIR/security/ $LN ../../$LIBDIR/libresolv.so.2 $CHROOTDIR/usr/$LIBDIR/libresolv.so LIBNSS=$(ls -1 /usr/$LIBDIR/libnss_*) for LINK in $LIBNSS ; do TRUNC=$(echo $LINK | sed -e 's|^/usr||') TARGET=$(ls -1 $TRUNC.*) $LN ../..$TARGET ${CHROOTDIR}$LINK done $MD $CHROOTDIR/etc/pam.d $CP /etc/hosts $CHROOTDIR/etc/ $CP /etc/nsswitch.conf $CHROOTDIR/etc/ $CP /etc/resolv.conf $CHROOTDIR/etc/ $CP /etc/pam.d/ngircd $CHROOTDIR/etc/pam.d/ $CP /etc/pam.d/other $CHROOTDIR/etc/pam.d/ $CP $CONFIG $CHROOTDIR/etc/ $CHOWN root.$GROUP ${CHROOTDIR}${CONFIG} if test -r $MOTD ; then $CP $MOTD $CHROOTDIR/etc/ fi $CAT /etc/passwd | /usr/bin/sed -e '/^ngircd/!d' \ > $CHROOTDIR/etc/passwd $CAT /etc/group | /usr/bin/sed -e '/^ngircd/!d' \ > $CHROOTDIR/etc/group if ! test -d ${CHROOTDIR}${PIDDIR} ; then $MD ${CHROOTDIR}${PIDDIR} $CHOWN $USER.$GROUP ${CHROOTDIR}${PIDDIR} $CHMOD g-w ${CHROOTDIR}${PIDDIR} fi if ! test -d $PIDDIR ; then $MD $PIDDIR $CHOWN $USER.$GROUP $PIDDIR fi $RM $PIDDIR/ngircd.pid $LN ${CHROOTDIR}${PIDDIR}/ngircd.pid $PIDDIR/ngircd.pid fi
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor