system/usermin: Added (web-based interface for system administration)

Signed-off-by: Erik Hanson <erik@slackbuilds.org>
This commit is contained in:
Willy Sudiarto Raharjo 2014-06-01 22:00:27 -05:00
parent c483dcab0c
commit b2ede92854
5 changed files with 234 additions and 0 deletions

26
system/usermin/README Normal file
View File

@ -0,0 +1,26 @@
Usermin is a web-based interface for webmail, password changing,
mail filters, fetchmail and much more.
It is designed for use by regular non-root users on a Unix system,
and limits them to tasks that they would be able to perform if
logged in via SSH or at the console.
After installing:
- start the usermin modules: /etc/usermin/start
- login into webmin
- refresh webmin modules
- restart webmin.
You will see a new menu called Usermin Configuration under Webmin.
By default usermin runs at port 20000. After the webmin service is
started, point your web browser to http://localhost:20000 and
login as normal user to use usermin.
NOTES:
If you want to use SSL/HTTPS support, change the ssl=0 into ssl=1 in
/etc/usermin/miniserv.conf. SSL/HTTPS support requires additional
dependency: Net-SSLeay.
By default, this script set usermin to be accessible only on localhost.
If you want global/public access, comment or remove this line in
/etc/usermin/miniserv.conf: allow=127.0.0.1

48
system/usermin/doinst.sh Normal file
View File

@ -0,0 +1,48 @@
config() {
NEW="$1"
OLD="$(dirname $NEW)/$(basename $NEW .new)"
# If there's no config file by that name, mv it over:
if [ ! -r $OLD ]; then
mv $NEW $OLD
elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
# toss the redundant copy
rm $NEW
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
config etc/usermin/miniserv.conf.new
config etc/usermin/miniserv.users.new
config etc/usermin/config.new
config etc/usermin/at/config.new
config etc/usermin/changepass/config.new
config etc/usermin/chfn/config.new
config etc/usermin/commands/config.new
config etc/usermin/cron/config.new
config etc/usermin/cshrc/config.new
config etc/usermin/fetchmail/config.new
config etc/usermin/file/config.new
config etc/usermin/filter/config.new
config etc/usermin/forward/config.new
config etc/usermin/gnupg/config.new
config etc/usermin/htaccess/config.new
config etc/usermin/htaccess-htpasswd/config.new
config etc/usermin/language/config.new
config etc/usermin/mailbox/config.new
config etc/usermin/mailcap/config.new
config etc/usermin/man/config.new
config etc/usermin/mysql/config.new
config etc/usermin/plan/config.new
config etc/usermin/postgresql/config.new
config etc/usermin/proc/config.new
config etc/usermin/procmail/config.new
config etc/usermin/quota/config.new
config etc/usermin/schedule/config.new
config etc/usermin/shell/config.new
config etc/usermin/spam/config.new
config etc/usermin/ssh/config.new
config etc/usermin/theme/config.new
config etc/usermin/telnet/config.new
config etc/usermin/tunnel/config.new
config etc/usermin/updown/config.new
config etc/usermin/usermount/config.new

19
system/usermin/slack-desc Normal file
View File

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
usermin: usermin (web-based interface for system administration)
usermin:
usermin: Usermin is a web-based interface for webmail, password changing,
usermin: mail filters, fetchmail and much more.
usermin: It is designed for use by regular non-root users on a Unix system,
usermin: and limits them to tasks that they would be able to perform if
usermin: logged in via SSH or at the console.
usermin:
usermin:
usermin: Homepage: http://www.webmin.com/usermin.html
usermin:

View File

@ -0,0 +1,131 @@
#!/bin/sh
# Slackware build script for usermin
# Copyright 2014 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=usermin
VERSION=${VERSION:-1.600}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
ARCH=noarch
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# Fix perl path
(find . -name '*.cgi' ; find . -name '*.pl') | perl perlpath.pl /usr/bin/perl -
sed -i "s|/usr/local/bin/perl|/usr/bin/perl|" miniserv.pl
sed -i "s|/usr/local/bin/perl|/usr/bin/perl|" acl_security.pl
sed -i "s|/usr/local/bin/perl|/usr/bin/perl|" config-lib.pl
sed -i "s|/usr/local/bin/perl|/usr/bin/perl|" copyconfig.pl
sed -i "s|/usr/local/bin/perl|/usr/bin/perl|" install-module.pl
sed -i "s|/usr/local/bin/perl|/usr/bin/perl|" javascript-lib.pl
sed -i "s|/usr/local/bin/perl|/usr/bin/perl|" maketemp.pl
sed -i "s|/usr/local/bin/perl|/usr/bin/perl|" newmods.pl
sed -i "s|/usr/local/bin/perl|/usr/bin/perl|" oschooser.pl
sed -i "s|/usr/local/bin/perl|/usr/bin/perl|" perlpath.pl
sed -i "s|/usr/local/bin/perl|/usr/bin/perl|" thirdparty.pl
sed -i "s|/usr/local/bin/perl|/usr/bin/perl|" ui-lib.pl
sed -i "s|/usr/local/bin/perl|/usr/bin/perl|" web-lib-funcs.pl
sed -i "s|/usr/local/bin/perl|/usr/bin/perl|" web-lib.pl
sed -i "s|/usr/local/bin/perl|/usr/bin/perl|" webmin-search-lib.pl
# remove init scripts for other distro
rm -rf usermin-debian-pam usermin-pam* usermin-daemon
mkdir -p $PKG/opt/usermin $PKG/var/log/usermin $PKG/etc/usermin
cp -rp * $PKG/opt/usermin
tar xvf $CWD/usermin-config.tar.bz2
cp -rf usermin-config/* $PKG/opt/usermin
# define parameters for setup.sh
config_dir=$PKG/etc/usermin
var_dir=$PKG/var/log/usermin
perl=/usr/bin/perl
autoos=1
port=20000
login=root
ssl=0
atboot=0
nostart=1
nochown=1
autothird=1
nouninstall=1
noperlpath=1
atbootyn=n
tempdir="$PKG/tmp"
export config_dir var_dir perl autoos port tempdir ssl nochown autothird nouninstall nostart noperlpath atbootyn login
# Fix setup.sh
sed -i -e "s:read atbootyn::g" -e "s:exit 13::g" $PKG/opt/usermin/setup.sh
$PKG/opt/usermin/setup.sh
# Fixup the config files to use their real locations
sed -i "s:^pidfile=.*$:pidfile=/var/run/usermin.pid:" $PKG/etc/usermin/miniserv.conf
find $PKG/etc/usermin -type f -exec sed -i "s:$PKG::g" {} \;
# make it only accessible by localhost
echo 'allow=127.0.0.1' >> $PKG/etc/usermin/miniserv.conf
CONFIG="postgresql telnet file fetchmail usermount forward schedule language filter theme cron \
ssh proc tunnel spam gnupg plan man commands chfn shell htaccess at mailcap mailbox \
htaccess-htpasswd changepass procmail cshrc mysql quota updown"
for L in $CONFIG
do
mv $PKG/etc/usermin/$L/config $PKG/etc/usermin/$L/config.new ;
done
mv $PKG/etc/usermin/config $PKG/etc/usermin/config.new
mv $PKG/etc/usermin/miniserv.conf $PKG/etc/usermin/miniserv.conf.new
mv $PKG/etc/usermin/miniserv.users $PKG/etc/usermin/miniserv.users.new
rm -rf $PKG/tmp
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a LICENCE README $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View File

@ -0,0 +1,10 @@
PRGNAM="usermin"
VERSION="1.600"
HOMEPAGE="http://webmin.com/usermin.html"
DOWNLOAD="http://prdownloads.sourceforge.net/webadmin/usermin-1.600.tar.gz"
MD5SUM="980c8d275de491f2d8ae37eba0765f4f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="webmin"
MAINTAINER="Willy Sudiarto Raharjo"
EMAIL="willysr@slackbuilds.org"