#! /bin/sh # # This file is part of DisOrder # Copyright (C) 2004, 2007 Richard Kettlewell # # 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; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA # set -e . /usr/share/debconf/confmodule add_jukebox_user() { adduser --quiet --system --group --shell /bin/sh --home /var/lib/disorder \ --no-create-home jukebox } configure_init_d() { update-rc.d disorder defaults 92 19 > /dev/null } restart_server() { /etc/init.d/disorder restart } case "$1" in configure ) if grep -q ^jukebox: /etc/passwd; then : else add_jukebox_user fi if test ! -f /etc/disorder/config.private; then rootpw=`pwgen 16 1` webpw=`pwgen 16 1` if test -z "$rootpw" || test -z "$webpw"; then # We used to ignore the exit status of pwgen due to a bug in an old # version of Debian. That bug seems to be gone, but this check is # harmless and could catch future bugs. echo "$0: pwgen failed" 1>&2 exit 1 fi # We set the umask so that private files aren't transiently world-readable u=`umask` umask 077 echo allow root "$rootpw" > /etc/disorder/config.private.new echo allow www-data "$webpw" >> /etc/disorder/config.private.new chgrp jukebox /etc/disorder/config.private.new chmod 640 /etc/disorder/config.private.new mv /etc/disorder/config.private.new /etc/disorder/config.private if test ! -f /etc/disorder/config.www-data; then echo password "$webpw" > /etc/disorder/config.www-data.new chgrp www-data /etc/disorder/config.www-data.new chmod 640 /etc/disorder/config.www-data.new mv /etc/disorder/config.www-data.new /etc/disorder/config.www-data fi umask $u fi if test ! -f /etc/disorder/http.users; then u=`umask` umask 077 touch /etc/disorder/http.users chgrp www-data /etc/disorder/http.users chmod 640 /etc/disorder/http.users umask $u fi chown jukebox:jukebox /var/lib/disorder configure_init_d restart_server db_stop ;; abort-upgrade ) /etc/init.d/disorder restart ;; reconfigure ) /etc/init.d/disorder reload ;; esac