FUN-PLUG 0.3 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. This fun-plug includes: System packages: busybox-1.6.1 dns323-utils-0.7.176 uclibc-utils-0.9.28 funplug-init-0.3 kernel-modules-0.3 strace-4.5.14 file-4.21 SSH+SFTP: dropbear-0.49 openssh-sftp-4.6p1 NFS: portmap-6.0 unfs3-0.9.17 RSYNC: rsync-2.6.9 Web-Server: zlib-1.2.3 pcre-7.1 lighttpd-1.4.15 Add-on packages: php-5.2.3 libpng-1.2.18 libjpeg-6b imagemagick-6.3.4_9 jhead-2.7 ruby-1.8.6 -- Installation -- Unpack funplug-0.3.tar.gz to the root of the first volume (contains two files: fun_plug and fun_plug.tar). Reboot and wait a minute. The telnet server will start automatically. -- Upgrade -- Copy the new fun_plug and fun_plug.tar files into the first volume. Before you reboot, rename/move the old fun_plug.d directory: telnet bob cd /mnt/HD_a2 mv fun_plug.d fun_plug.d-old reboot After reboot, use telnet to copy old config files and restart services, e.g.: telnet bob cd /mnt/HD_a2/fun_plug.d-old/etc cp -a lighttpd.conf /mnt/HD_a2/fun_plug.d/etc/ cp -aR dropbear /mnt/HD_a2/fun_plug.d/etc/ ... cd /mnt/HD_a2/fun_plug.d/start chmod a+x unfsd.sh sh unfsd.sh sh lighttpd.sh sh dropbear.sh -- start/ scripts -- The directory /mnt/HD_a2/fun_plug.d/start contains scripts to start, stop, and restart services. After installation, only telnet is enabled. To manually start a service, e.g. the Dropbear SSH server, do: telnet bob cd /mnt/HD_a2/fun_plug.d/start sh dropbear.sh start To stop it, do: sh dropbear.sh stop Script that have their executable bit set, will be run automatically by the fun_plug script after reboot. To set the executable bit of dropbear.sh, do: telnet bob cd /mnt/HD_a2/fun_plug.d/start chmod a+x dropbear.sh To disable: chmod a-x dropbear.sh -- Setting passwords -- passwd and smbpasswd can be used to change passwords on the command line. To make password changes permanent (i.e. survive reboots), the changed password files must be written to flash memory. A script is included for that purpose. After running passwd or smbpasswd, run: store-passwd.sh By default, root has no entry in /etc/shadow and passwd will store the password in /etc/passwd instead. If you want your root password in /etc/shadow, you can manually add an entry before running passwd: echo "root::0:0:99999:7:::" >>/etc/shadow IMPORTANT: Be sure you run the command exactly as shown. Screwing up the shadow file can cause serious problems. Another script is available to change a user's home directory: change-homedir.sh user If will change the home directory to /mnt/HD_a2/home/user (don't forget to run store-passwd.sh to make the change permanent). -- Telnet with password -- After installation, the telnet server does not ask for user-name and password, but jumps directly into a root shell. To make telnet use the login program, edit the telnetd.sh start script, comment the LOPT variable referring to "sh", and uncomment the LOPT variable using "login". Finally, reboot (or manually restart telnet). IMPORTANT: You cannot login as root unless you have set a password! -- Time-zone/DST -- fun_plug.d/start/timezone.sh is an example script to fix time zone configuration. It is run once after startup, and does three simple steps: 1. write correct time zone string to /etc/TZ 2. query a time server 3. update hardware clock (RTC) To customize the script for your time zone, edit the "timezone" and "timeserv" variables. For the related forum thread, see http://forum.dsmg600.info/t572-Pulls-Wrong-Time.html To find out about pool servers, start looking here: http://www.pool.ntp.org/zone/@ -- Dropbear SSH server -- On the first run, the dropbear.sh start script will automatically create host keys. IMPORTANT: You cannot login as root unless you have set a password! For public-key authentication, your home directory must exist and have correct permissions. E.g. if your home directory (stored in /etc/passwd) is /mnt/HD_a2/home/test, run: cd /mnt/HD_a2/home mkdir -p test chmod 0755 test chown test test Then create the .ssh/ directory and copy your public key as usual. If you want to create a key-pair on the DNS323, consult the dropbear documentation as dropbear keys need to be converted for use with openssh. IMPORTANT: Public-key authentication will not work, if directory permission of the user's .ssh directory have wrong permissions. D-Link's firmware has a "protective measure" that sometimes changes permissions of all files on a disk to 0777. Because of this, you should not rely solely on public-key authentication for root access! -- UNFS3 NFS server -- The unfsd.sh start script will create a default exports file in /mnt/HD_a2/fun_plug.d/etc if it doesn't exist. IMPORTANT: If you manually edit the export file, be aware that unfsd silently fails if an exported directory does not exist. -- Lighttpd web server -- fun_plug.d/etc/lighttpd.conf-sample is a sample configuration file for the web server. To use it, rename/copy it to lighttpd.conf (i.e. remove "-sample"). It will accept connections on port 8080, look for web pages in /mnt/HD_a2/www/pages, and write logs to /mnt/HD_a2/www/logs. lighttpd.conf-with-php-sample is another example that enables PHP. You need to install the extra php package! -- Add-on packages -- You can use the funpkg.sh script to install one or more of the extra packages. E.g. to install php, copy the php-...tgz package to your DNS, open a telnet/ssh connection and run: funpkg.sh /path/to/php-...tgz For imagemagick, you also need libpng and libjpeg. -- How the fun_plug works -- All fun-plug files are installed below /mnt/HD_a2/fun_plug.d. There are several directories: bin/ - all program binaries lib/ - shared libraries etc/ - all configuration files log/ - log files start/ - scripts to run at startup The main fun_plug script will run all executable scripts (*.sh) from the start/ directory. Script output is redirected to log/fun_plug.log. If the fun_plug script finds /mnt/HD_a2/fun_plug.tar, it will unpack and remove it (this is how the installation works). Have fun. 2007.07.21 tp@fonz.de