diff options
Diffstat (limited to 'source/n/yptools')
-rw-r--r-- | source/n/yptools/rc.yp | 153 | ||||
-rwxr-xr-x | source/n/yptools/yptools.SlackBuild | 15 |
2 files changed, 120 insertions, 48 deletions
diff --git a/source/n/yptools/rc.yp b/source/n/yptools/rc.yp index 4c3b8dec..eda9634e 100644 --- a/source/n/yptools/rc.yp +++ b/source/n/yptools/rc.yp @@ -10,49 +10,114 @@ # documentation in /usr/doc/yp-tools, /usr/doc/ypbind, # /usr/doc/ypserv, and /usr/doc/Linux-HOWTOs/NIS-HOWTO. -# # First, we must setup the NIS domainname. NOTE: this is not necessarily -# # the same as your DNS domainname, set in /etc/resolv.conf. The NIS -# # domainname is the name of a domain served by your NIS server. -# -# if [ -r /etc/defaultdomain ]; then -# nisdomainname `cat /etc/defaultdomain` -# fi -# -# # NIS SERVER CONFIGURATION: -# # If you are the master server for the NIS domain, you must run ypserv to -# # service clients on the domain. -# if [ -x /usr/sbin/ypserv ]; then -# echo "Starting NIS server: /usr/sbin/ypserv" -# /usr/sbin/ypserv -# fi -# -# # If you are the master server for the NIS domain, you must also run -# # rpc.yppasswdd, which is the RPC server that lets users change their -# # passwords. You might also want users to be able to change their shell -# # and GECOS information, in which case you should comment out the first -# # yppasswdd line and uncomment out the second one. -# if [ -x /usr/sbin/rpc.yppasswdd ]; then -# echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd" -# /usr/sbin/rpc.yppasswdd -# # echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd -e chsh -e chfn" -# # /usr/sbin/rpc.yppasswdd -e chsh -e chfn -# fi -# -# # If you have NIS slave servers, you might also want to start up -# # rpc.ypxfrd, which transfers changes in the NIS domain to slave servers. -# # Alternatively, rpc.ypxfrd can be run out of inetd. -# if [ -x /usr/sbin/rpc.ypxfrd ]; then -# echo "Starting NIS transfer server: /usr/sbin/rpc.ypxfrd" -# /usr/sbin/rpc.ypxfrd -# fi -# -# # NIS CLIENT CONFIGURATION: -# # If you are a NIS client, all you need to do is run ypbind, which will -# # broadcast across the network to find a server. Your NIS server might -# # also be a client. -# if [ -d /var/yp ]; then -# echo "Starting NIS services: /usr/sbin/ypbind -broadcast" -# /usr/sbin/ypbind -broadcast -# fi +# Set non-zero to enable yp client functions +YP_CLIENT_ENABLE=1 + +# Set non-zero to enable yp server functions +YP_SERVER_ENABLE=0 + +# If YP_SERVER_ENABLE is set, a non-zero YP_XFRD_ENABLE setting will +# enable ypxfrd. +YP_XFRD_ENABLE=0 + +PID_PATH=/var/run + +yp_start() { + + if [ $YP_SERVER_ENABLE -ne 0 ]; then + # NIS SERVER CONFIGURATION: + # If you are the master server for the NIS domain, you must run ypserv to + # service clients on the domain. + if [ -x /usr/sbin/ypserv ]; then + echo "Starting NIS server: /usr/sbin/ypserv" + /usr/sbin/ypserv + fi + + # If you are the master server for the NIS domain, you must also run + # rpc.yppasswdd, which is the RPC server that lets users change their + # passwords. You might also want users to be able to change their shell + # and GECOS information, in which case you should comment out the first + # yppasswdd line and uncomment out the second one. + + if [ -x /usr/sbin/rpc.yppasswdd ]; then + echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd" + /usr/sbin/rpc.yppasswdd + # echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd -e chsh -e chfn" + # /usr/sbin/rpc.yppasswdd -e chsh -e chfn + fi + + # If you have NIS slave servers, you might also want to start up + # rpc.ypxfrd, which transfers changes in the NIS domain to slave servers. + # Alternatively, rpc.ypxfrd can be run out of inetd. + if [ $YP_XFRD_ENABLE -ne 0 ]; then + if [ -x /usr/sbin/rpc.ypxfrd ]; then + echo "Starting NIS transfer server: /usr/sbin/rpc.ypxfrd" + /usr/sbin/rpc.ypxfrd + fi + fi + fi + + if [ $YP_CLIENT_ENABLE -ne 0 ]; then + # NIS CLIENT CONFIGURATION: + # If you are a NIS client, all you need to do is run ypbind, which will + # broadcast across the network to find a server. Your NIS server might + # also be a client. + if [ -d /var/yp ]; then + echo "Starting NIS services: /usr/sbin/ypbind -broadcast" + /usr/sbin/ypbind -broadcast + fi + fi +} + +yp_stop() { + if [ -r ${PID_PATH}/ypbind.pid ]; then + echo "Stopping NIS services." + kill $(cat ${PID_PATH}/ypbind.pid) + fi + + if [ -r ${PID_PATH}/ypxfrd.pid ]; then + echo "Stopping NIS transfer server." + kill $(cat ${PID_PATH}/ypxfrd.pid) + fi + + if [ -r ${PID_PATH}/yppasswdd.pid ]; then + echo "Stopping NIS master password server." + kill $(cat ${PID_PATH}/yppasswdd.pid) + fi + + if [ -r ${PID_PATH}/ypserv.pid ]; then + echo "Stopping NIS server." + kill $(cat ${PID_PATH}/ypserv.pid) + fi +} + +# First, we must setup the NIS domainname. NOTE: this is not necessarily +# the same as your DNS domainname, set in /etc/resolv.conf. The NIS +# domainname is the name of a domain served by your NIS server. # +# If /etc/defaultdomain has not been configured we'll bail out. +if [ -r /etc/defaultdomain -a -x /bin/nisdomainname ]; then + if [ "$(nisdomainname)" == "(none)" ]; then + nisdomainname `cat /etc/defaultdomain` + fi +else + echo "/etc/rc.d/rc.yp: NIS not configured. Hint: set up /etc/defaultdomain." + exit 0 +fi + +case "$1" in +'start') + yp_start + ;; +'stop') + yp_stop + ;; +'restart') + yp_stop + yp_start + ;; +*) + echo "usage $0 start|stop|restart" +esac + # # Done setting up NIS. diff --git a/source/n/yptools/yptools.SlackBuild b/source/n/yptools/yptools.SlackBuild index 6a213b2a..42d96a30 100755 --- a/source/n/yptools/yptools.SlackBuild +++ b/source/n/yptools/yptools.SlackBuild @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -23,7 +23,7 @@ # Package version number: VERSION=2.12 -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} YPTOOLS=$VERSION YPBINDMT=1.32 @@ -208,7 +208,7 @@ make CFLAGS="$SLKCFLAGS" || exit 1 mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/yp ( cd scripts for file in create_printcap match_printcap pwupdate ypinit ypxfr_1perday ypxfr_1perhour ypxfr_2perday ; do - cat $file > $PKG/usr/lib${LIBDIRSUFFIX}/yp/$file + cat $file | sed -e "s#/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#" > $PKG/usr/lib${LIBDIRSUFFIX}/yp/$file chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/yp/$file done for file in pwupdate.8 ypinit.8 ; do @@ -246,7 +246,7 @@ chown root:root $PKG/usr/doc/ypserv-$YPSERV/* mkdir -p $PKG/etc/rc.d zcat $CWD/rc.yp.gz > $PKG/etc/rc.d/rc.yp.new -chmod 755 $PKG/etc/rc.d/rc.yp.new +chmod 644 $PKG/etc/rc.d/rc.yp.new find $PKG | xargs file | grep -e "executable" -e "shared object" \ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null @@ -266,6 +266,13 @@ config() { # Otherwise, we leave the .new copy for the admin to consider... } +# Keep same perms on rc.yp.new: +if [ -e etc/rc.d/rc.yp ]; then + cp -a etc/rc.d/rc.yp etc/rc.d/rc.yp.new.incoming + cat etc/rc.d/rc.yp.new > etc/rc.d/rc.yp.new.incoming + mv etc/rc.d/rc.yp.new.incoming etc/rc.d/rc.yp.new +fi + config etc/nsswitch.conf-nis.new config etc/netgroup.new config etc/yp.conf.new |