You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							99 lines
						
					
					
						
							2.7 KiB
						
					
					
				
			
		
		
	
	
							99 lines
						
					
					
						
							2.7 KiB
						
					
					
				# --- SDE-COPYRIGHT-NOTE-BEGIN --- | 
						|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. | 
						|
# | 
						|
# Filename: package/.../webmin/stone_mod_webmin.sh | 
						|
# Copyright (C) 2004 - 2006 The T2 SDE Project | 
						|
# Copyright (C) 1998 - 2003 Clifford Wolf | 
						|
# | 
						|
# More information can be found in the files COPYING and README. | 
						|
# | 
						|
# This program is free software; you can redistribute it and/or modify | 
						|
# it under the terms of the GNU General Public License as published by | 
						|
# the Free Software Foundation; version 2 of the License. A copy of the | 
						|
# GNU General Public License can be found in the file COPYING. | 
						|
# --- SDE-COPYRIGHT-NOTE-END --- | 
						|
# | 
						|
# [MAIN] 80 webmin Webmin Configuration | 
						|
 | 
						|
WEBMINDIR=/opt/webmin | 
						|
USERFILE=/etc/opt/webmin/miniserv.users | 
						|
CONFFILE=/etc/opt/webmin/miniserv.conf | 
						|
ACLFILE=/etc/opt/webmin/webmin.acl | 
						|
 | 
						|
set_pw() { | 
						|
	LOGIN="$1" | 
						|
	PASSWORD=1 | 
						|
	PASSWORD2=2 | 
						|
	while [ "$PASSWORD" != "$PASSWORD2" ] ; do | 
						|
		gui_input "Enter $LOGIN password" "" PASSWORD ; | 
						|
		gui_input "Re-Enter $LOGIN password" "" PASSWORD2 ; | 
						|
		if [ "$PASSWORD" != "$PASSWORD2" ] ; then | 
						|
			gui_message "Passwords are different: no change!" | 
						|
		fi | 
						|
	done | 
						|
	if [ "$2" = 1 ] ; then | 
						|
		gui_message "Changeing $LOGIN password." | 
						|
		tmp="`mktemp`" | 
						|
		sed "/^$LOGIN:.*/ s/^$LOGIN:[^:]*:/$LOGIN:`perl -e 'print crypt($ARGV[0], "XX");' "$PASSWORD"`:/ ;" < $USERFILE > $tmp | 
						|
		cat $tmp > $USERFILE ; rm -f $tmp | 
						|
	else | 
						|
		gui_message "Setting $LOGIN password." | 
						|
		perl -e 'print "$ARGV[0]:",crypt($ARGV[1], "XX"),":0::\n"' "$LOGIN" "$PASSWORD" >> $USERFILE | 
						|
	fi | 
						|
 | 
						|
} | 
						|
 | 
						|
set_acl() { | 
						|
	LOGIN="$1" | 
						|
	ALLMODS=`echo $WEBMINDIR/*/module.info | sed -e "s,$WEBMINDIR/,,g ; s,/module.info,,g"` | 
						|
	if [ "$2" = 1 ] ; then | 
						|
		gui_message "Resetting $LOGIN acls to default." | 
						|
		tmp="`mktemp`" | 
						|
		sed "/^$LOGIN:.*/ s/:.*/: $ALLMODS/ ;" < $ACLFILE > $tmp | 
						|
		cat $tmp > $ACLFILE ; rm -f $tmp | 
						|
	else | 
						|
		gui_message "Setting $LOGIN acls to default." | 
						|
		echo "$LOGIN: $ALLMODS" >> $ACLFILE | 
						|
	fi | 
						|
} | 
						|
 | 
						|
set_user() { | 
						|
	gui_input "Enter user login" "admin" LOGIN ; | 
						|
	if [ "`grep \"^$LOGIN:\" $USERFILE`" = "" ] ; then | 
						|
		gui_message "New user $LOGIN !" | 
						|
		set_pw $LOGIN 0 | 
						|
		set_acl $LOGIN 0 | 
						|
	else | 
						|
		gui_message "Existing user $LOGIN !" | 
						|
		if gui_yesno "Change $LOGIN password?" ; then | 
						|
			set_pw $LOGIN 1 | 
						|
		fi | 
						|
		if gui_yesno "Reset $LOGIN acls?" ; then | 
						|
			set_acl $LOGIN 1 | 
						|
		fi | 
						|
	fi | 
						|
} | 
						|
 | 
						|
edit() { | 
						|
	gui_edit "Edit file $1" "$1" | 
						|
	exec $STONE webmin | 
						|
} | 
						|
 | 
						|
main() { | 
						|
    while | 
						|
	cmd="gui_menu webmin 'Webmin Configuration - Select an item to'" | 
						|
 | 
						|
	cmd="$cmd 'Add/(Re-)Set user password and acls' 'set_user'" | 
						|
 | 
						|
	cmd="$cmd '' '' 'Configure runlevels for webmin service'" | 
						|
	cmd="$cmd '$STONE runlevel edit_srv webmin'" | 
						|
	cmd="$cmd '(Re-)Start webmin init script'" | 
						|
	cmd="$cmd '$STONE runlevel restart webmin'" | 
						|
	cmd="$cmd '' ''" | 
						|
 | 
						|
	cmd="$cmd 'View/Edit $CONFFILE file'  'edit $CONFFILE'" | 
						|
 | 
						|
	eval "$cmd" | 
						|
    do : ; done | 
						|
} | 
						|
 | 
						|
 |