#!/bin/bash # # SSHCHAT INSTALLATION # # NOTE: Instructions for a debian-based system with sysvinit # 0. Compile program (if it has already been compiled, do nothing) cd src && make || exit 1 # 1. Install program to /var/local/sshchat/bin mkdir -p /var/local/sshchat/bin cp sshchat sshchatd /var/local/sshchat/bin # 2. Add user "chat" adduser --system --group --gecos -,-,-,-,- --home /var/local/sshchat --shell /bin/false --disabled-password chat # 3. Add the directory for ssh login and data mkdir -p /var/local/sshchat/.ssh/../users/../invites/../run chown chat:chat /var/local/sshchat/.ssh /var/local/sshchat/users /var/local/sshchat/invites chmod 700 /var/local/sshchat/.ssh # 4. Make sshchatd an startable daemon. For sysvinit: cat > /etc/init.d/sshchatd <<'EOF' #! /bin/sh # /etc/init.d/sshchatd: start or stop sshchatd. ### BEGIN INIT INFO # Provides: sshchatd # Required-Start: $network $local_fs $remote_fs # Required-Stop:: $network $local_fs $remote_fs # Should-Start: $all # Should-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start sshchatd at boot time # Description: Manage the sschatd daemon. ### END INIT INFO FLAGS="start 20 2 3 4 5 . stop 20 0 1 6 ." # NO_RESTART_ON_UPGRADE test -x /var/local/sshchat/bin/sshchatd || exit 0 case "$1" in start) echo -n "Starting up sshchatd: sshchatd" /sbin/start-stop-daemon --chdir /var/local/sshchat --chuid chat --background --make-pidfile --pidfile /var/local/sshchat/run/sshchatd.pid --start --quiet --exec /var/local/sshchat/bin/sshchatd echo "." ;; stop) echo -n "Shutting down sshchatd: sshchatd" /sbin/start-stop-daemon --stop --quiet --pidfile /var/local/sshchat/run/sshchatd.pid echo "." ;; restart|force-reload) $0 stop $0 start ;; *) echo "Usage: /etc/init.d/sshchatd {start|stop|restart|force-reload}" exit 1 ;; esac exit 0 EOF chmod 755 /etc/init.d/sshchatd update-rc.d sshchatd defaults # XXX: TODO