home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / live / usr / sbin / fdutilsconfig < prev    next >
Text File  |  1999-01-24  |  3KB  |  91 lines

  1. #!/bin/sh
  2. # /usr/sbin/fdutilsconfig - configuration script for suid bit of fdmount.
  3. # Originally written by Tibor Simko <simko@debian.org> for gnuplot.
  4. # Adapted by Anthony Fok <foka@debian.org> for fdmount in fdutils.
  5. # note: this script modifies `/etc/fdmount.conf' configuration file.
  6.  
  7. set -e
  8. set -C
  9.  
  10. if [ "root" != "`whoami`" ]
  11. then 
  12.    echo "Sorry, only root can run this script.  Exiting."
  13.    exit 1
  14. fi
  15.  
  16. echo "Fdmount suid configuration:"
  17. echo
  18.  
  19. if [ ! -e /etc/fdmount.conf ] 
  20. then 
  21.    echo "Sorry, /etc/fdmount.conf not found.  Exiting."
  22.    exit 1
  23. fi
  24.  
  25. TMPFILE=`mktemp -q /tmp/fdmount.conf.tmp.XXXXXX`
  26. if [ $? -ne 0 ]; then
  27.     echo "$0: Can't create temp file, exiting..."
  28.     exit 1
  29. fi
  30.  
  31. if grep -q "^is_suid=y.*$" /etc/fdmount.conf; then old=y; else old=n; fi
  32.  
  33. while true; do
  34.  
  35. if [ "$old" = "y" ] 
  36. then 
  37.    echo "  Currently, fdmount is set up as setuid root, beware!"
  38. else 
  39.    echo "  Currently, fdmount is not set up as setuid root.  Good."
  40. fi
  41. echo -n "  Do you want to change it?  (y/n/?) [n] "
  42. read yn
  43. echo
  44. test -n "$yn" || yn="n"
  45. case "$yn" in
  46.    [Nn]*)
  47.           echo "Okay, keeping the old configuration."
  48.           exit 0
  49.           ;;
  50.    [Yy]*)
  51.           if [ "$old" = "n" ]
  52.           then 
  53.             sed -e "s/^is_suid=.*$/is_suid=yes/" </etc/fdmount.conf >>$TMPFILE
  54.         chmod 644 $TMPFILE
  55.             mv $TMPFILE /etc/fdmount.conf
  56.             if [ -e /etc/suid.conf -a -x /usr/sbin/suidregister ]; then
  57.                echo "Hmm, you seem to have suidmanager installed.  Will use it."
  58.                suidregister -s fdutils /usr/bin/fdmount root root 4755
  59.                echo "Okay, fdmount is now set up and registered as setuid root."
  60.             else
  61.                echo "Hmm, you don't seem to have suidmanager installed."
  62.                echo "Please consider installing suidmanager in the future."
  63.                chown root.root /usr/bin/fdmount
  64.                chmod 4755 /usr/bin/fdmount
  65.                echo "Okay, fdmount is now manually set up as setuid root."
  66.             fi
  67.             exit 0
  68.           else
  69.             sed -e "s/^is_suid=.*$/is_suid=no/" </etc/fdmount.conf >>$TMPFILE
  70.         chmod 644 $TMPFILE
  71.             mv $TMPFILE /etc/fdmount.conf
  72.             chmod u-s /usr/bin/fdmount
  73.             if [ -e /etc/suid.conf -a -x /usr/sbin/suidunregister ]; then
  74.                echo "Unregistering fdmount from suidmanager database."
  75.                suidunregister -s fdutils /usr/bin/fdmount
  76.             fi
  77.             echo "Okay, fdmount is not set up as setuid root anymore."
  78.             exit 0
  79.           fi
  80.           ;;
  81.       *)
  82.           echo "    In order to enable ordinary users to mount a floppy to mount"
  83.           echo "    a floppy disk using fdmount, fdmount needs to be set up as"
  84.           echo "    setuid root.  Please note that this is usually considered to"
  85.           echo "    be a security hazard."
  86.           echo
  87.           ;;
  88. esac
  89.  
  90. done
  91.