3 # This script should be run after the webmin archive is unpacked, in order
4 # to setup the various config files
6 # Find install directory
10 if [ -x /bin/pwd ]; then
16 ver=`cat "$wadir/version"`
19 if [ "$tempdir" = "" ]; then
23 if [ $? != "0" ]; then
24 echo "ERROR: Cannot find the Webmin install directory";
29 echo "***********************************************************************"
30 echo "* Welcome to the Webmin setup script, version $ver *"
31 echo "***********************************************************************"
32 echo "Webmin is a web-based interface that allows Unix-like operating"
33 echo "systems and common Unix services to be easily administered."
36 # Only root can run this
37 id | grep "uid=0(" >/dev/null
38 if [ $? != "0" ]; then
39 uname -a | grep -i CYGWIN >/dev/null
40 if [ $? != "0" ]; then
41 echo "ERROR: The Webmin install script must be run as root";
47 # Use the supplied destination directory, if any
48 if [ "$1" != "" ]; then
50 echo "Installing Webmin from $srcdir to $wadir ..."
51 if [ ! -d "$wadir" ]; then
53 if [ "$?" != "0" ]; then
54 echo "ERROR: Failed to create $wadir"
59 # Make sure dest dir is not in use
60 ls "$wadir" | grep -v rpmsave >/dev/null 2>&1
61 if [ "$?" = "0" -a ! -r "$wadir/setup.sh" ]; then
62 echo "ERROR: Installation directory $wadir contains other files"
68 echo "Installing Webmin in $wadir ..."
72 # Work out perl library path
74 if [ "$perllib" != "" ]; then
75 PERLLIB="$PERLLIB:$perllib"
78 # Validate source directory
79 allmods=`cd "$srcdir"; echo */module.info | sed -e 's/\/module.info//g'`
80 if [ "$allmods" = "" ]; then
81 echo "ERROR: Failed to get module list"
87 # Load package-defined variable overrides
88 if [ -r "$srcdir/setup-pre.sh" ]; then
89 . "$srcdir/setup-pre.sh"
92 # Ask for webmin config directory
93 echo "***********************************************************************"
94 echo "Webmin uses separate directories for configuration files and log files."
95 echo "Unless you want to run multiple versions of Webmin at the same time"
96 echo "you can just accept the defaults."
98 printf "Config file directory [/etc/webmin]: "
99 if [ "$config_dir" = "" ]; then
102 if [ "$config_dir" = "" ]; then
103 config_dir=/etc/webmin
105 abspath=`echo $config_dir | grep "^/"`
106 if [ "$abspath" = "" ]; then
107 echo "Config directory must be an absolute path"
111 if [ ! -d $config_dir ]; then
114 echo "ERROR: Failed to create directory $config_dir"
119 if [ -r "$config_dir/config" ]; then
120 echo "Found existing Webmin configuration in $config_dir"
125 # Check if upgrading from an old version
126 if [ "$upgrading" = 1 ]; then
129 # Get current var path
130 var_dir=`cat $config_dir/var-path`
132 # Force creation if non-existant
133 mkdir -p $var_dir >/dev/null 2>&1
135 # Get current perl path
136 perl=`cat $config_dir/perl-path`
138 # Create temp files directory
139 $perl "$srcdir/maketemp.pl"
140 if [ "$?" != "0" ]; then
141 echo "ERROR: Failed to create or check temp files directory $tempdir"
146 # Get old os name and version
147 os_type=`grep "^os_type=" $config_dir/config | sed -e 's/os_type=//g'`
148 os_version=`grep "^os_version=" $config_dir/config | sed -e 's/os_version=//g'`
149 real_os_type=`grep "^real_os_type=" $config_dir/config | sed -e 's/real_os_type=//g'`
150 real_os_version=`grep "^real_os_version=" $config_dir/config | sed -e 's/real_os_version=//g'`
152 # Get old root, host, port, ssl and boot flag
153 oldwadir=`grep "^root=" $config_dir/miniserv.conf | sed -e 's/root=//g'`
154 port=`grep "^port=" $config_dir/miniserv.conf | sed -e 's/port=//g'`
155 ssl=`grep "^ssl=" $config_dir/miniserv.conf | sed -e 's/ssl=//g'`
156 atboot=`grep "^atboot=" $config_dir/miniserv.conf | sed -e 's/atboot=//g'`
157 inetd=`grep "^inetd=" $config_dir/miniserv.conf | sed -e 's/inetd=//g'`
159 if [ "$inetd" != "1" ]; then
161 $config_dir/stop >/dev/null 2>&1
164 # Copy files to target directory
165 if [ "$wadir" != "$srcdir" ]; then
166 echo "Copying files to $wadir .."
167 (cd "$srcdir" ; tar cf - . | (cd "$wadir" ; tar xf -))
173 $perl "$wadir/newmods.pl" $config_dir $allmods
175 # Update miniserv.conf with new root directory and mime types file
176 grep -v "^root=" $config_dir/miniserv.conf | grep -v "^mimetypes=" | grep -v "^server=" >$tempdir/$$.miniserv.conf
177 if [ $? != "0" ]; then exit 1; fi
178 mv $tempdir/$$.miniserv.conf $config_dir/miniserv.conf
179 echo "root=$wadir" >> $config_dir/miniserv.conf
180 echo "mimetypes=$wadir/mime.types" >> $config_dir/miniserv.conf
181 echo "server=MiniServ/$ver" >> $config_dir/miniserv.conf
182 grep logout= $config_dir/miniserv.conf >/dev/null
183 if [ $? != "0" ]; then
184 echo "logout=$config_dir/logout-flag" >> $config_dir/miniserv.conf
187 # Check for third-party modules in old version
188 if [ "$wadir" != "$oldwadir" ]; then
189 echo "Checking for third-party modules .."
190 if [ "$webmin_upgrade" != "" ]; then
193 $perl "$wadir/thirdparty.pl" "$wadir" "$oldwadir" $autothird
198 # Remove old cache of module infos
199 rm -f $config_dir/module.infos.cache
201 # Config directory exists .. make sure it is not in use
202 ls $config_dir | grep -v rpmsave >/dev/null 2>&1
203 if [ "$?" = "0" -a "$config_dir" != "/etc/webmin" ]; then
204 echo "ERROR: Config directory $config_dir is not empty"
209 # Ask for log directory
210 printf "Log file directory [/var/webmin]: "
211 if [ "$var_dir" = "" ]; then
214 if [ "$var_dir" = "" ]; then
217 abspath=`echo $var_dir | grep "^/"`
218 if [ "$abspath" = "" ]; then
219 echo "Log file directory must be an absolute path"
223 if [ "$var_dir" = "/" ]; then
224 echo "Log directory cannot be /"
228 if [ ! -d $var_dir ]; then
231 echo "ERROR: Failed to create directory $var_dir"
238 # Ask where perl is installed
239 echo "***********************************************************************"
240 echo "Webmin is written entirely in Perl. Please enter the full path to the"
241 echo "Perl 5 interpreter on your system."
243 if [ -x /usr/bin/perl ]; then
244 perldef=/usr/bin/perl
245 elif [ -x /usr/local/bin/perl ]; then
246 perldef=/usr/local/bin/perl
250 if [ "$perl" = "" ]; then
251 if [ "$perldef" = "" ]; then
252 printf "Full path to perl: "
254 if [ "$perl" = "" ]; then
255 echo "ERROR: No path entered!"
260 printf "Full path to perl (default $perldef): "
262 if [ "$perl" = "" ]; then
270 echo "Testing Perl ..."
271 if [ ! -x $perl ]; then
272 echo "ERROR: Failed to find perl at $perl"
276 $perl -e 'print "foobar\n"' 2>/dev/null | grep foobar >/dev/null
277 if [ $? != "0" ]; then
278 echo "ERROR: Failed to run test perl script. Maybe $perl is"
279 echo "not the perl interpreter, or is not installed properly"
283 $perl -e 'exit ($] < 5.002 ? 1 : 0)'
284 if [ $? = "1" ]; then
285 echo "ERROR: Detected old perl version. Webmin requires"
286 echo "perl 5.002 or better to run"
290 $perl -e 'use Socket; print "foobar\n"' 2>/dev/null | grep foobar >/dev/null
291 if [ $? != "0" ]; then
292 echo "ERROR: Perl Socket module not installed. Maybe Perl has"
293 echo "not been properly installed on your system"
297 $perl -e '$c = crypt("xx", "yy"); exit($c ? 0 : 1)'
298 if [ $? != "0" ]; then
299 $perl -e 'use Crypt::UnixCrypt' >/dev/null 2>&1
301 if [ $? != "0" ]; then
302 echo "ERROR: Perl crypt function does not work. Maybe Perl has"
303 echo "not been properly installed on your system"
307 echo "Perl seems to be installed ok"
310 # Create temp files directory
311 $perl "$srcdir/maketemp.pl"
312 if [ "$?" != "0" ]; then
313 echo "ERROR: Failed to create or check temp files directory $tempdir"
318 # Ask for operating system type
319 echo "***********************************************************************"
320 if [ "$os_type" = "" ]; then
321 if [ "$autoos" = "" ]; then
324 $perl "$srcdir/oschooser.pl" "$srcdir/os_list.txt" $tempdir/$$.os $autoos
331 echo "Operating system name: $real_os_type"
332 echo "Operating system version: $real_os_version"
335 # Ask for web server port, name and password
336 echo "***********************************************************************"
337 echo "Webmin uses its own password protected web server to provide access"
338 echo "to the administration programs. The setup script needs to know :"
339 echo " - What port to run the web server on. There must not be another"
340 echo " web server already using this port."
341 echo " - The login name required to access the web server."
342 echo " - The password required to access the web server."
343 echo " - If the webserver should use SSL (if your system supports it)."
344 echo " - Whether to start webmin at boot time."
346 printf "Web server port (default 10000): "
347 if [ "$port" = "" ]; then
349 if [ "$port" = "" ]; then
353 if [ $port -lt 1 ]; then
354 echo "ERROR: $port is not a valid port number"
358 if [ $port -gt 65535 ]; then
359 echo "ERROR: $port is not a valid port number. Port numbers cannot be"
360 echo " greater than 65535"
364 $perl -e 'use Socket; socket(FOO, PF_INET, SOCK_STREAM, getprotobyname("tcp")); setsockopt(FOO, SOL_SOCKET, SO_REUSEADDR, pack("l", 1)); bind(FOO, pack_sockaddr_in($ARGV[0], INADDR_ANY)) || exit(1); exit(0);' $port
365 if [ $? != "0" ]; then
366 echo "ERROR: TCP port $port is already in use by another program"
370 printf "Login name (default admin): "
371 if [ "$login" = "" ]; then
373 if [ "$login" = "" ]; then
377 echo "$login" | grep : >/dev/null
378 if [ "$?" = "0" ]; then
379 echo "ERROR: Username contains a : character"
383 echo $login | grep " " >/dev/null
384 if [ "$?" = "0" ]; then
385 echo "ERROR: Username contains a space"
389 if [ "$login" = "webmin" ]; then
390 echo "ERROR: Username 'webmin' is reserved for internal use"
394 printf "Login password: "
395 if [ "$password" = "" -a "$crypt" = "" ]; then
400 printf "Password again: "
405 if [ "$password" != "$password2" ]; then
406 echo "ERROR: Passwords don't match"
410 echo $password | grep : >/dev/null
411 if [ "$?" = "0" ]; then
412 echo "ERROR: Password contains a : character"
418 # Ask the user if SSL should be used
419 if [ "$ssl" = "" ]; then
421 $perl -e 'use Net::SSLeay' >/dev/null 2>/dev/null
422 if [ $? = "0" ]; then
423 printf "Use SSL (y/n): "
425 if [ "$sslyn" = "y" -o "$sslyn" = "Y" ]; then
429 echo "The Perl SSLeay library is not installed. SSL not available."
434 # Don't use SSL if missing Net::SSLeay
435 if [ "$ssl" = "1" ]; then
436 $perl -e 'use Net::SSLeay' >/dev/null 2>/dev/null
437 if [ $? != "0" ]; then
442 # Ask whether to run at boot time
443 if [ "$atboot" = "" ]; then
444 initsupp=`grep "^os_support=" "$srcdir/init/module.info" | sed -e 's/os_support=//g' | grep $os_type`
446 if [ "$initsupp" != "" ]; then
447 printf "Start Webmin at boot time (y/n): "
449 if [ "$atbootyn" = "y" -o "$atbootyn" = "Y" ]; then
453 echo "Webmin does not support being started at boot time on your system."
457 # Copy files to target directory
458 echo "***********************************************************************"
459 if [ "$wadir" != "$srcdir" ]; then
460 echo "Copying files to $wadir .."
461 (cd "$srcdir" ; tar cf - . | (cd "$wadir" ; tar xf -))
466 # Create webserver config file
467 echo $perl > $config_dir/perl-path
468 echo $var_dir > $config_dir/var-path
469 echo "Creating web server config files.."
470 cfile=$config_dir/miniserv.conf
471 echo "port=$port" >> $cfile
472 echo "root=$wadir" >> $cfile
473 echo "mimetypes=$wadir/mime.types" >> $cfile
474 echo "addtype_cgi=internal/cgi" >> $cfile
475 echo "realm=Webmin Server" >> $cfile
476 echo "logfile=$var_dir/miniserv.log" >> $cfile
477 echo "errorlog=$var_dir/miniserv.error" >> $cfile
478 echo "pidfile=$var_dir/miniserv.pid" >> $cfile
479 echo "logtime=168" >> $cfile
480 echo "ppath=$ppath" >> $cfile
481 echo "ssl=$ssl" >> $cfile
482 echo "env_WEBMIN_CONFIG=$config_dir" >> $cfile
483 echo "env_WEBMIN_VAR=$var_dir" >> $cfile
484 echo "atboot=$atboot" >> $cfile
485 echo "logout=$config_dir/logout-flag" >> $cfile
486 if [ "$listen" != "" ]; then
487 echo "listen=$listen" >> $cfile
489 echo "listen=10000" >> $cfile
491 echo "denyfile=\\.pl\$" >> $cfile
492 echo "log=1" >> $cfile
493 echo "blockhost_failures=5" >> $cfile
494 echo "blockhost_time=60" >> $cfile
495 echo "syslog=1" >> $cfile
496 if [ "$allow" != "" ]; then
497 echo "allow=$allow" >> $cfile
499 if [ "$session" != "" ]; then
500 echo "session=$session" >> $cfile
502 echo "session=1" >> $cfile
504 if [ "$pam" != "" ]; then
505 echo "pam=$pam" >> $cfile
507 echo premodules=WebminCore >> $cfile
508 echo "server=MiniServ/$ver" >> $cfile
510 # Append package-specific info to config file
511 if [ -r "$wadir/miniserv-conf" ]; then
512 cat "$wadir/miniserv-conf" >>$cfile
515 md5pass=`$perl -e 'print crypt("test", "\\$1\\$A9wB3O18\\$zaZgqrEmb9VNltWTL454R/") eq "\\$1\\$A9wB3O18\\$zaZgqrEmb9VNltWTL454R/" ? "1\n" : "0\n"'`
517 ufile=$config_dir/miniserv.users
518 if [ "$crypt" != "" ]; then
519 echo "$login:$crypt:0" > $ufile
521 if [ "$md5pass" = "1" ]; then
522 $perl -e 'print "$ARGV[0]:",crypt($ARGV[1], "\$1\$XXXXXXXX"),":0\n"' "$login" "$password" > $ufile
524 $perl -e 'print "$ARGV[0]:",crypt($ARGV[1], "XX"),":0\n"' "$login" "$password" > $ufile
528 echo "userfile=$ufile" >> $cfile
530 kfile=$config_dir/miniserv.pem
531 openssl version >/dev/null 2>&1
532 if [ "$?" = "0" ]; then
533 # We can generate a new SSL key for this host
535 openssl req -newkey rsa:512 -x509 -nodes -out $tempdir/cert -keyout $tempdir/key -days 1825 >/dev/null 2>&1 <<EOF
539 Webmin Webserver on $host
544 if [ "$?" = "0" ]; then
545 cat $tempdir/cert $tempdir/key >$kfile
547 rm -f $tempdir/cert $tempdir/key
549 if [ ! -r $kfile ]; then
550 # Fall back to the built-in key
551 cp "$wadir/miniserv.pem" $kfile
554 echo "keyfile=$config_dir/miniserv.pem" >> $cfile
560 echo "Creating access control file.."
561 afile=$config_dir/webmin.acl
563 if [ "$defaultmods" = "" ]; then
564 echo "$login: $allmods" >> $afile
566 echo "$login: $defaultmods" >> $afile
572 if [ "$login" != "root" -a "$login" != "admin" ]; then
573 # Allow use of RPC by this user
574 echo rpc=1 >>$config_dir/$login.acl
578 if [ "$noperlpath" = "" ]; then
579 echo "Inserting path to perl into scripts.."
580 (find "$wadir" -name '*.cgi' -print ; find "$wadir" -name '*.pl' -print) | $perl "$wadir/perlpath.pl" $perl -
585 echo "Creating start and stop scripts.."
586 rm -f $config_dir/stop $config_dir/start $config_dir/restart $config_dir/reload
587 echo "#!/bin/sh" >>$config_dir/start
588 echo "echo Starting Webmin server in $wadir" >>$config_dir/start
589 echo "trap '' 1" >>$config_dir/start
590 echo "LANG=" >>$config_dir/start
591 echo "export LANG" >>$config_dir/start
592 echo "#PERLIO=:raw" >>$config_dir/start
593 echo "unset PERLIO" >>$config_dir/start
594 echo "export PERLIO" >>$config_dir/start
595 echo "PERLLIB=$PERLLIB" >>$config_dir/start
596 echo "export PERLLIB" >>$config_dir/start
597 uname -a | grep -i 'HP/*UX' >/dev/null
598 if [ $? = "0" ]; then
599 echo "exec '$wadir/miniserv.pl' $config_dir/miniserv.conf &" >>$config_dir/start
601 echo "exec '$wadir/miniserv.pl' $config_dir/miniserv.conf" >>$config_dir/start
604 echo "#!/bin/sh" >>$config_dir/stop
605 echo "echo Stopping Webmin server in $wadir" >>$config_dir/stop
606 echo "pidfile=\`grep \"^pidfile=\" $config_dir/miniserv.conf | sed -e 's/pidfile=//g'\`" >>$config_dir/stop
607 echo "kill \`cat \$pidfile\`" >>$config_dir/stop
609 echo "#!/bin/sh" >>$config_dir/restart
610 echo "$config_dir/stop && $config_dir/start" >>$config_dir/restart
612 echo "#!/bin/sh" >>$config_dir/reload
613 echo "echo Reloading Webmin server in $wadir" >>$config_dir/reload
614 echo "pidfile=\`grep \"^pidfile=\" $config_dir/miniserv.conf | sed -e 's/pidfile=//g'\`" >>$config_dir/reload
615 echo "kill -USR1 \`cat \$pidfile\`" >>$config_dir/reload
617 chmod 755 $config_dir/start $config_dir/stop $config_dir/restart $config_dir/reload
621 if [ "$upgrading" = 1 ]; then
622 echo "Updating config files.."
624 echo "Copying config files.."
626 newmods=`$perl "$wadir/copyconfig.pl" "$os_type/$real_os_type" "$os_version/$real_os_version" "$wadir" $config_dir "" $allmods`
627 if [ "$upgrading" != 1 ]; then
628 # Store the OS and version
629 echo "os_type=$os_type" >> $config_dir/config
630 echo "os_version=$os_version" >> $config_dir/config
631 echo "real_os_type=$real_os_type" >> $config_dir/config
632 echo "real_os_version=$real_os_version" >> $config_dir/config
633 if [ -r /etc/system.cnf ]; then
634 # Found a caldera system config file .. get the language
635 source /etc/system.cnf
636 if [ "$CONF_LST_LANG" = "us" ]; then
638 elif [ "$CONF_LST_LANG" = "uk" ]; then
641 grep "lang=$CONF_LST_LANG," "$wadir/lang_list.txt" >/dev/null 2>&1
642 if [ "$?" = 0 ]; then
643 echo "lang=$CONF_LST_LANG" >> $config_dir/config
647 # Turn on logging by default
648 echo "log=1" >> $config_dir/config
650 # Use licence module specified by environment variable
651 if [ "$licence_module" != "" ]; then
652 echo licence_module=$licence_module >>$config_dir/config
655 # Disallow unknown referers by default
656 echo "referers_none=1" >>$config_dir/config
658 # one-off hack to set log variable in config from miniserv.conf
659 grep log= $config_dir/config >/dev/null
660 if [ "$?" = "1" ]; then
661 grep log= $config_dir/miniserv.conf >> $config_dir/config
662 grep logtime= $config_dir/miniserv.conf >> $config_dir/config
663 grep logclear= $config_dir/miniserv.conf >> $config_dir/config
666 # Disallow unknown referers if not set
667 grep referers_none= $config_dir/config >/dev/null
668 if [ "$?" != "0" ]; then
669 echo "referers_none=1" >>$config_dir/config
672 echo $ver > $config_dir/version
676 # Set passwd_ fields in miniserv.conf from global config
677 for field in passwd_file passwd_uindex passwd_pindex passwd_cindex passwd_mindex; do
678 grep $field= $config_dir/miniserv.conf >/dev/null
679 if [ "$?" != "0" ]; then
680 grep $field= $config_dir/config >> $config_dir/miniserv.conf
683 grep passwd_mode= $config_dir/miniserv.conf >/dev/null
684 if [ "$?" != "0" ]; then
685 echo passwd_mode=0 >> $config_dir/miniserv.conf
688 # If Perl crypt supports MD5, then make it the default
689 if [ "$md5pass" = "1" ]; then
690 echo md5pass=1 >> $config_dir/config
693 # Set a special theme if none was set before
694 if [ "$theme" = "" ]; then
695 theme=`cat "$wadir/defaulttheme" 2>/dev/null`
697 oldthemeline=`grep "^theme=" $config_dir/config`
698 oldtheme=`echo $oldthemeline | sed -e 's/theme=//g'`
699 if [ "$theme" != "" ] && [ "$oldthemeline" = "" ] && [ -d "$wadir/$theme" ]; then
703 # Set a special overlay if none was set before
704 if [ "$overlay" = "" ]; then
705 overlay=`cat "$wadir/defaultoverlay" 2>/dev/null`
707 if [ "$overlay" != "" ] && [ "$theme" != "" ] && [ -d "$wadir/$overlay" ]; then
708 themelist="$themelist $overlay"
711 # Apply the theme and maybe overlay
712 if [ "$themelist" != "" ]; then
713 echo "theme=$themelist" >> $config_dir/config
714 echo "preroot=$themelist" >> $config_dir/miniserv.conf
717 # Set the product field in the global config
718 grep product= $config_dir/config >/dev/null
719 if [ "$?" != "0" ]; then
720 echo product=webmin >> $config_dir/config
723 if [ "$makeboot" = "1" ]; then
724 echo "Configuring Webmin to start at boot time.."
725 (cd "$wadir/init" ; WEBMIN_CONFIG=$config_dir WEBMIN_VAR=$var_dir "$wadir/init/atboot.pl" $bootscript)
730 # If password delays are not specifically disabled, enable them
731 grep passdelay= $config_dir/miniserv.conf >/dev/null
732 if [ "$?" != "0" ]; then
733 echo passdelay=1 >> $config_dir/miniserv.conf
736 if [ "$nouninstall" = "" ]; then
737 echo "Creating uninstall script $config_dir/uninstall.sh .."
738 cat >$config_dir/uninstall.sh <<EOF
740 printf "Are you sure you want to uninstall Webmin? (y/n) : "
743 if [ "\$answer" = "y" ]; then
745 echo "Running uninstall scripts .."
746 (cd "$wadir" ; WEBMIN_CONFIG=$config_dir WEBMIN_VAR=$var_dir LANG= "$wadir/run-uninstalls.pl")
747 echo "Deleting $wadir .."
749 echo "Deleting $config_dir .."
754 chmod +x $config_dir/uninstall.sh
759 echo "Changing ownership and permissions .."
760 # Make all config dirs non-world-readable
761 for m in $newmods; do
762 chown -R root $config_dir/$m
763 chgrp -R bin $config_dir/$m
764 chmod -R og-rw $config_dir/$m
766 # Make miniserv config files non-world-readable
767 for f in miniserv.conf miniserv.pem miniserv.users; do
768 chown -R root $config_dir/$f
769 chgrp -R bin $config_dir/$f
770 chmod -R og-rw $config_dir/$f
772 chmod +r $config_dir/version
773 if [ "$nochown" = "" ]; then
774 # Make program directory non-world-writable, but executable
775 chown -R root "$wadir"
776 chgrp -R bin "$wadir"
777 chmod -R og-w "$wadir"
778 chmod -R a+rx "$wadir"
780 if [ $var_dir != "/var" ]; then
781 # Make log directory non-world-readable or writable
782 chown -R root $var_dir
783 chgrp -R bin $var_dir
784 chmod -R og-rwx $var_dir
786 # Fix up bad permissions from some older installs
787 for m in ldap-client ldap-server ldap-useradmin mailboxes mysql postgresql servers virtual-server; do
788 if [ -d "$config_dir/$m" ]; then
789 chown root $config_dir/$m
790 chgrp bin $config_dir/$m
791 chmod og-rw $config_dir/$m
792 chmod og-rw $config_dir/$m/config 2>/dev/null
798 # Save target directory if one was specified
799 if [ "$wadir" != "$srcdir" ]; then
800 echo $wadir >$config_dir/install-dir
802 rm -f $config_dir/install-dir
805 if [ "$nopostinstall" = "" ]; then
806 echo "Running postinstall scripts .."
807 (cd "$wadir" ; WEBMIN_CONFIG=$config_dir WEBMIN_VAR=$var_dir "$wadir/run-postinstalls.pl")
812 # Enable background collection
813 if [ "$upgrading" != 1 -a -r $config_dir/system-status/enable-collection.pl ]; then
814 echo "Enabling background status collection .."
815 $config_dir/system-status/enable-collection.pl 5
820 # Run package-defined post-install script
821 if [ -r "$srcdir/setup-post.sh" ]; then
822 . "$srcdir/setup-post.sh"
825 if [ "$nostart" = "" ]; then
826 if [ "$inetd" != "1" ]; then
827 echo "Attempting to start Webmin mini web server.."
829 if [ $? != "0" ]; then
830 echo "ERROR: Failed to start web server!"
838 echo "***********************************************************************"
839 echo "Webmin has been installed and started successfully. Use your web"
840 echo "browser to go to"
843 if [ "$ssl" = "1" ]; then
844 echo " https://$host:$port/"
846 echo " http://$host:$port/"
849 echo "and login with the name and password you entered previously."
851 if [ "$ssl" = "1" ]; then
852 echo "Because Webmin uses SSL for encryption only, the certificate"
853 echo "it uses is not signed by one of the recognized CAs such as"
854 echo "Verisign. When you first connect to the Webmin server, your"
855 echo "browser will ask you if you want to accept the certificate"
856 echo "presented, as it does not recognize the CA. Say yes."
861 if [ "$oldwadir" != "$wadir" -a "$upgrading" = 1 -a "$deletedold" != 1 ]; then
862 echo "The directory from the previous version of Webmin"
864 echo "Can now be safely deleted to free up disk space, assuming"
865 echo "that all third-party modules have been copied to the new"